Esta es una pregunta sobre logística, no una pregunta técnica.
Mi empresa ha externalizado algunos trabajos de software integrado. Específicamente, le hemos pagado a un contratista para que desarrolle un sistema integrado para nosotros, ya que no tenemos el conocimiento interno adecuado para hacerlo nosotros mismos (solo tenemos desarrolladores de aplicaciones de escritorio).
Entonces, los contratistas han terminado el software y han preguntado si pueden entregárnoslo en una máquina virtual. La VM es una máquina con Windows 8 que contiene el IDE CodeWarrior preconfigurado con el código fuente como un proyecto CodeWarrior. La idea es que esto nos permitirá realizar cambios de código dentro de la VM que ya está configurada para un mayor desarrollo de este proyecto.
¿Hay algún inconveniente en hacer esto en lugar de que nos guíen a través de cómo configurar nuestras propias máquinas de desarrollo para realizar cambios de código en el proyecto? El único problema que puedo prever es que la VM se ejecuta lentamente y que tarda mucho en reconstruir el proyecto cuando hacemos cambios en el código. Pero, por otro lado, me gusta la idea de obtener un entorno de desarrollo de sistema integrado preconfigurado para no tener que agregar otro IDE en mi máquina de desarrollo de aplicaciones de escritorio.
Realmente no puedo pensar en una buena razón por la que no aceptar una entrega de VM, pero solo quería ejecutarla en esta comunidad en caso de que haya algo que me falta.
fuente
Respuestas:
El problema que veo es que el conocimiento de la configuración y la configuración de la máquina virtual no es interno, y si la configuración no es trivial, dependerá de la otra compañía cuando el software deba configurarse para diferentes versiones de el sistema operativo / bibliotecas / hardware / lo que sea. Aceptar la VM está bien para comenzar a funcionar más rápido, pero insisto en obtener una guía sobre cómo configurar su propio sistema para el mantenimiento futuro.
fuente
No veo un inconveniente masivo con él, pero diría que aceptar una VM con el código fuente debería implicar la misma paranoia que aceptar un envío de una máquina con el software y el entorno de desarrollo instalados, así que haga Asegúrese de que no haya nada malo instalado en la VM antes de activarlo en un entorno que tenga acceso a su red interna.
Si / cuando tiene la VM en funcionamiento, debería poder plegar el código fuente en sus repositorios de código normales, como lo habría hecho (probablemente) con solo un archivo de código fuente entregado.
fuente
Me preocuparía que haya algo configurado en la máquina que no esté documentado, que sea difícil de reproducir o que no sea aceptable en su configuración estándar.
Ymmv, pero realmente no considero el desarrollo realizado hasta que se pueda demostrar que el proyecto se basa en las máquinas de desarrollo estándar y se implementa en los servidores / clientes básicos.
fuente
En algunos de mis proyectos, he tenido que luchar mucho para que el software se entregue de esta manera. Es un excelente formato.
Asegúrese:
Beneficios adicionales:
Yo diría que lo haga.
fuente
Ese es realmente el tipo de cosas que deberían haberse resuelto en el contrato original. Puede que ya estén yendo más allá. No esperaría recibir instrucciones de configuración sin pagar más, porque requiere más trabajo de su parte.
He estado en una situación similar a la tuya antes. Nuestro entorno de desarrollo es Windows / Cygwin y tuvimos una visita del proveedor durante una semana para escribir un código de interfaz con nosotros. Utilizan principalmente Linux, por lo que nos instalamos con máquinas virtuales Linux durante la semana que estuvieron aquí. Funcionó bastante bien mientras estuvieron aquí y tuvimos pocos problemas para trasladarnos a Cygwin después de que se fueron.
Me parece que estás subestimando tus propias habilidades. Configurar un IDE no es tan difícil, incluso sin un ejemplo de trabajo para compararlo. Me preocuparía más la violación de los acuerdos de licencia de Windows y CodeWarrior. Si tiene la licencia adecuada, debería poder obtener soporte de Freescale para cualquier problema de configuración.
fuente
Como dijo FrustratedWithFormsDesigner , debe saber cómo configurar la máquina usted mismo. Sin embargo, me gustaría agregar que potencialmente podría pedirles que proporcionen una secuencia de comandos que configure la máquina para usted, en lugar de una máquina virtual completa. Si el script está escrito lo suficientemente bien, tendrá una documentación actualizada exacta de cómo configurar la máquina (leyendo el código fuente), además el script lo hará por usted, ahorrándole tiempo cada vez que necesite un nueva máquina.
Una herramienta con la que estoy experimentando para ayudar a estandarizar / automatizar la configuración de una nueva máquina con Windows es Chocolatey .
Potencialmente, puede crear sus propios paquetes de Chocolatey con bastante facilidad, luego crear un script de PowerShell que instalará y configurará prácticamente todo.
fuente
El entorno que se ejecuta lentamente no debería ser un problema, solo arroje memoria y CPU. La sobrecarga de la VM moderna para el trabajo de tipo escritorio como la mayoría del desarrollo de SW es muy pequeña, se guarda muchas veces al no tener que hacer ninguna configuración al cambiar el hardware.
fuente
Hubiera pensado que el contrato de desarrollo estipularía los entregables y las obligaciones del contratista para usted.
Como mínimo, solicitaría un recorrido y documentación sobre cómo funciona la configuración y qué es vital para que pueda recrear el proyecto, construirlo e implementarlo usted mismo.
En términos de tener algo listo para usar, creo que la VM es perfectamente aceptable.
Sin embargo, definitivamente estaría presionando para obtener documentación. Dudaría sin él porque, a menos que tenga un alto nivel de comprensión de cómo funciona, podría estar en el futuro, especialmente si necesita apoyar la aplicación usted mismo.
fuente
Incluso para los sistemas integrados desarrollados internamente es importante tener un documento que describa cómo configurar el entorno de compilación. También debe archivar todos los archivos binarios / instalar herramientas y las bibliotecas necesarias para configurar el entorno de compilación.
fuente
No aceptaría VM como entregable de código porque dificulta la realización de actualizaciones. Tienes que tener esa VM como una imagen dorada para hacer el trabajo de desarrollo. Eso hace que sea más difícil hacer modificaciones. Un desarrollador tiene que formatear u obtener una nueva máquina, tiene que instalar una VM y extraer la VM.
Cuando realiza ediciones, debe confirmar una nueva "copia dorada" de la VM. ¿Por qué querrías administrar un gran archivo binario como ese en el control de código fuente? No es posible diferir, y en mi experiencia, intentar controlar la fuente una copia dorada de cualquier cosa binaria no termina bien. A menos que pueda mantener un control estricto sobre quién edita la copia dorada, terminará con cosas indocumentadas que nadie sabe.
Si un desarrollador quisiera entregarme software de esa forma, encontraría un desarrollador diferente. Esto me dice que no son lo suficientemente profesionales como para escribir sus dependencias, o al menos documentarlas.
Yo también los tendría:
Cree un archivo de texto que se verifica en el control de origen con el código. Enumera todas las dependencias que necesita para poner en marcha el proyecto, que no forman parte del repositorio de control de origen (por ejemplo, CodeWarrior, cualquier herramienta de línea de comandos u otras aplicaciones externas de las que dependa).
Un script para instalar las dependencias. Dado que está en Windows, no debería ser demasiado difícil crear un script Chocolatey para automatizar la configuración del entorno de desarrollo. Cualquier dependencia que tenga que aún no sean paquetes de chocolate, puede hacerla. Por ejemplo, puede instalar herramientas comerciales pesadas como Visual Studio y SQL Server a través de Chocolatey. Esos paquetes instalan las versiones de prueba, que tienen todas las funciones y se pueden desbloquear ingresando una clave de licencia. Por lo tanto, es posible que se pueda hacer lo mismo con CodeWarrior y cualquier otra dependencia que tenga para su entorno de desarrollo.
Tal vez su desarrollador sea lo suficientemente bueno como para que aún quiera trabajar con él / ella, pero no es bueno en estas cosas de automatización. Eso también está bien, si ese fuera el caso, yo haría la parte de automatización yo mismo, trabajando con él / ella para identificar las dependencias y hacer que el script funcione, o conseguiría otro desarrollador que sea bueno en la automatización para hacerlo . Debe hacerse al inicio del proyecto. Una copia limpia y básica de una VM Win8 aún sería útil porque puede usarla para probar su script chocolatey.
fuente
No creo que haya un problema con esto, he visto sistemas de administración de contenido que se instalan como máquinas virtuales, y por lo que usted dice, los contratistas le han dado la capacidad de mantener y ampliar la aplicación.
Sin embargo, como han señalado otros carteles, hay dos cosas que debería hacer. Primero, asegúrese de que cuando instale la VM, póngala en una máquina que esté separada de su red. No descargaría un EXE desconocido de Internet y lo instalaría en su máquina.
En segundo lugar, si es posible, mantenga esta copia aislada como referencia para configurar la versión interna. Digo si es posible porque no sé las presiones comerciales a las que está sometido. En última instancia, serán los departamentos / programadores de TI de su empresa los responsables de esta aplicación. Por lo tanto, cuanto más sepa, mejor.
fuente