¿Por qué debería mi equipo de desarrollo tener un servidor de compilación?


Sabemos que es bueno tener esto, pero me encuentro justificándolo a mi empleador. Por favor, explique por qué un equipo de desarrollo necesita un servidor de compilación.

Author: Midhat, 2010-03-02

8 answers

Hay múltiples razones para usar servidores de compilación. En ningún orden en particular y fuera de la parte superior de mi cabeza:

  1. Simplificas el flujo de trabajo de los desarrolladores y reduces la posibilidad de errores. Su servidor de compilación puede encargarse de varios pasos, como revisar el código más reciente, tener instalado el software requerido, etc. No hay posibilidad de que un desarrollador tenga algunas DLL perdidas en su máquina que puedan causar que la compilación pase o falle aparentemente al azar.

    Su servidor de compilación puede replicar el entorno de destino(sistema operativo, etc.) y hay menos posibilidades de que algo funcione en los escritorios de los desarrolladores y rompa la producción.

  2. Si bien es una buena práctica para los desarrolladores probar todo lo que comprueban, a veces simplemente no lo hacen. Entonces es bueno tener el servidor de compilación allí para detectar errores de prueba y dejar que el equipo sepa que el producto está roto.

  3. Las compilaciones centralizadas proporcionan un fácil acceso a las métricas de código which que las pruebas pasaron, qué falló, con qué frecuencia, qué tan bien está su código cubierto por sus pruebas, etc. Tener una sólida comprensión del estado de calidad de la base de código reduce los costos de mantenimiento y pruebas al proporcionar información oportuna que permite corregir los errores de forma rápida y fácil.

  4. La implementación del producto se simplifica: el desarrollador o el control de calidad no tienen que recordar varios pasos manuales. Se puede automatizar fácilmente.

  5. El vínculo entre los desarrolladores y el control de calidad se simplifica. El personal de QA puede vaya a una ubicación conocida para obtener las versiones más recientes y correctas.

  6. Es fácil configurar compilaciones para las ramas de lanzamiento, proporcionando una red de seguridad adicional para los productos en su etapa de lanzamiento, cuando los cambios de código se deben hacer con cuidado adicional.

 19
Author: Adam Lear,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-03-02 19:46:46

Para evitar el problema "pero funciona en mi caja".

Tener un entorno consistente y conocido donde el software se construye para evitar dependencias en cajas de desarrollo locales.

Puede usar un servidor virtual para evitar (mucho) costo adicional si es necesario.

 20
Author: Eric J.,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-03-02 19:38:57

LO antes posible saber qué pruebas unitarias funcionan actualmente y cuáles no; además, también sabrá si una vez que pasa las pruebas unitarias comienza a fallar.

 4
Author: Frank V,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-03-02 19:39:14

Esto debería resumir por qué es crítico tener un servidor de compilación:

Http://www.codinghorror.com/blog/2006/10/the-build-server-your-projects-heart-monitor.html

 3
Author: James Campbell,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-03-02 19:39:29

Es un panel de prueba de calidad continua; le muestra estadísticas sobre cómo está funcionando la calidad de su software, y se las muestra ahora. (JUnit, Cobertura)

Se asegura de que los desarrolladores no estén paralizados por otros desarrolladores que rompen la compilación, y alienta a los desarrolladores a escribir mejor código. (FindBugs, PMD)

Le ahorra tiempo y dinero durante todo el año al obtener un mejor código de los desarrolladores la primera vez, menos dinero en pruebas y retesting , y al obtener más código de los mismos desarrolladores, porque es menos probable que se tropiecen entre sí.

 3
Author: Dean J,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-03-02 19:40:44

Dos razones principales con las que la gente no técnica puede relacionarse:

  • Mejora la productividad del equipo de desarrollo porque los problemas se identifican antes.

  • Esto hace que el estado del proyecto sea muy obvio. He mostrado a mi administración el panel de estado de compilación y ahora lo ven todo el tiempo.

Una cosa más. Algo como Hudson es muy simple de configurar - es posible que desee simplemente ejecutarlo en algún lugar en una esquina por un tiempo y luego mostrar más tarde.

 3
Author: leonm,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-03-02 19:44:09

Este es mi argumento principal:

  • todas las versiones oficiales deben ser compiladas en un entorno controlado. Excepción.

Simplemente porque nunca se sabe cómo los desarrolladores crean sus lanzamientos personales.

Tampoco es necesario hablar de construir servidor como en "hoja que cuesta un brazo a una pierna". El primer servidor de compilación que configuré fue una máquina de escritorio que se sentó desconectada en una esquina. Nos sirvió muy bien para más de 3 año.

Una vez que tenga su máquina de compilación, puede comenzar a agregar algunas características (Hudson es genial) e implementar todo lo que los otros carteles mencionaron.

Una vez que su máquina de construcción se vuelva indispensable para su organización (y todos vean sus beneficios), podrá solicitar una hoja nueva brillante si lo desea :-)

 2
Author: Vladimir,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-03-03 20:01:27

Lo más simple que puede hacer para convencer a su empleador de tener un servidor de compilación es decirles que serán capaces de liberar más rápido y con mejor calidad.

Las versiones más rápidas provienen de la retroalimentación inmediata sobre la calidad de la compilación. Si alguien rompe la compilación, él o ella puede arreglar la compilación rota inmediatamente, evitando así un retraso en el calendario de compilación y publicación. Sin un servidor de compilación, el equipo tendrá que pasar tiempo tratando de encontrar qué y cuándo sucedió y cómo arreglarlo.

La mejor calidad se logra mediante el servidor de compilación que ejecuta herramientas de detección de errores automáticamente cada vez que alguien comprueba si se cambia a un sistema de control de versiones. No mencionas cuál es el principal lenguaje de desarrollo en tu organización, pero estas herramientas, avanzadas pero comerciales y simples pero gratuitas, existen prácticamente para todos los idiomas. Pelusa, FxCop, FindBugs y PMD vienen a la mente.

También puede comprobar esto presentación sobre los beneficios de la integración continua para una discusión más extensa.

 0
Author: Slava Imeshev,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-03-07 00:53:04