revista pensamiento para lecturas las horas home hacer gubernamental gov etico etica ethos desarrollo como certificacion centro continuous-integration

continuous-integration - pensamiento - etica revista ethos



Romper la construcción, ¿Por qué es una mala cosa? (11)

Cuando comencé a construir un servidor de integración continua, encontré la frase "Es malo romper la compilación [del código]". Después de terminar ese proyecto llegué a la conclusión de que

  1. "Rompiendo la construcción". era una frase pegadiza que se lanzaba mucho debido a la aliteración, o
  2. No entendía un elemento clave de la integración continua.

Así que mi pregunta está en el espíritu de # 2: ¿por qué romper con construir es algo malo?


De Martin Fowler http://martinfowler.com/articles/continuousIntegration.html

El objetivo de trabajar con CI es que siempre se está desarrollando sobre una base estable conocida. No es algo malo que se rompa la compilación de la línea principal, aunque si ocurre todo el tiempo, sugiere que las personas no tienen el cuidado de actualizar y construir localmente antes de un compromiso. Sin embargo, cuando se rompe la construcción de la línea principal, es importante que se solucione rápidamente.


No creo que romper la compilación sea necesariamente algo malo, siempre que haya una rama o etiqueta de trabajo bien conocida en el repositorio. Dicho esto, cree su propia sucursal en el repositorio si sabe que su código está terminando la construcción hoy, pero la arreglará la próxima semana. Luego, más tarde, puedes volver a unirte al tronco.


Porque si otras personas comprueban los cambios, no podrán trabajar ... Esta imagen tiene copyright de Geek & Poke bajo una licencia de Creative Commons


Porque si otras personas revisan sus cambios rotos, no podrán trabajar, o si lo hacen, lo harán de manera menos eficiente.

También significa que no está probando correctamente sus cambios antes de comprometerse, lo cual es clave en CI.


Porque significa que alguien ha hecho algo malo (o al menos, algunos cambios se han enfrentado) y ya no puede compilar e implementar su sistema.


Romper la compilación significa que confirmó el código en un repositorio compartido que (a) no compila, o (b) no funciona (falla las pruebas unitarias). Cualquier otra persona que se esté desarrollando desde ese repositorio compartido tendrá que lidiar con el código dañado que cometió hasta que se solucione. Eso causará una pérdida de productividad para todo el equipo.


Romper la construcción tiene graves consecuencias para el cronograma del proyecto (y la presión arterial de los compañeros de equipo) => Otros desarrolladores que obtienen la última versión ya no pueden crear sus propios cambios, retrasándolos => La integración continua se interrumpirá, lo que significa que las pruebas formales puede ser retrasado

Muchas herramientas de control de versiones (por ejemplo, TFS) pueden evitar que los desarrolladores comprueben un código que no compila o pasa pruebas de análisis de unidades o códigos.


Se rompe la construcción como me ha pasado ayer. Cuando tus compañeros de equipo intentan usar el código fuente. No se construirá. Por eso lucharán para probar el trabajo que están haciendo. Se pone peor cuanto más grande sea tu equipo.


Seguramente todo el punto de la integración continua es identificar los problemas temprano. Se requieren registros diarios o más frecuentes para reducir los conflictos a un tamaño manejable.

Debe obtener una copia actualizada del repositorio y compilarlo localmente. Esto le dirá si su registro propuesto interrumpirá la construcción. Usted resuelve cualquier problema y luego se registra.

De esta manera, los problemas de integración se mantienen locales y fáciles de solucionar.


Tenga mucho cuidado al etiquetar "Romper la construcción" como algo malo. Es algo que necesita atención inmediata, pero también es una parte muy normal y esperada del ciclo de desarrollo. Esta es la razón por la que la integración continua es tan útil: le informa de inmediato cuándo se rompe la compilación y qué conjunto de cambios la causó. Te ayuda a volver a la pista rápidamente.

Si su cultura penaliza "Romper la construcción", entonces está en peligro de cultivar un ambiente de trabajo tóxico. De nuevo, considérelo como algo que necesita atención inmediata, pero no lo etiquete como "malo".


Una vez que las construcciones comienzan a romperse, las personas se resisten a obtener los últimos cambios, y usted comienza la espiral mortal hacia la integración de cambios de Big Bang.