puzzleEstimado líder,

Hablando con los desarrolladores de su equipo, me cuentan que necesitan una máquina dedicada a compilar. En parte es mi culpa. Verá usted, les estuve mostrando  una herramienta de compilación que, luego de unos pocos minutos de configuración, se encarga de compilar contínuamente su software sin intervención humana. Esto es bueno para ellos, e incluso es mejor para usted. Déjeme explicarle porqué.

  • Si compila y testea su código una vez por hora, sus problemas no tendrán más de una hora de existencia.
  • Esto hace que resulte más facil encontrar y arreglar errores, lo que le ahorrará tiempo y dinero, y le permitirá a su equipo concentrarse en añadir nueva funcionalidad, en vez de arreglar cosas viejas.
  • El proceso de integración continua le provee de información constante y valiosa, que le permitirá gestionar mejor su desarrollo.

Así es cómo funciona: cada hora, por ejemplo, y sólo si se realizaron nuevos cambios, la herramienta se baja del repositorio de código una copia nueva de su proyecto, e intenta construir el proyecto. El proceso de construcción incluye la compilación de todos los fuentes, la ejecución de tests, y la generación de cualquier otro artefacto, como ser reportes de métricas. Si, por cualquier razón, el proceso de construcción no es exitoso, entonces la herramienta puede enviarle una notificación por email, por celular, via RSS, o con algún dispositivo visual como una lámpara de lava. También puede utilizar su navegador web para ver el estado actual del proyecto, o el estado histórico del mismo.

Ejecutar construcciones durante el día cada vez que surge un cambio es un trabajo tedioso, y es por esto que no desea que sus desarrolladores la hagan. Es mejor que enfoquen su tiempo y energíai en escribir código de calidad que, en última instancia, lo ayudará a entregar software de valor a sus clientes. Pero construir software en intervalos frecuentes es también una tarea importante porque encontrar y arreglar problemas de integración justo antes de una entrega (cuando se tiene menor tolerancia a los riesgos) es algo costoso. Con una herramienta que se encuentre realizando integraciones en forma constante, se pueden detectar problemas casi tan rapido de cómo se introducen, dándole así al equipo un mayor tiempo para arreglar estos problemas. A cambio, ustede recibirá el beneficio de saber el estado de su software durante todo el día, todos los días.

Sus desarrolladores ya comprenden el valor de la integración continua. Saben que tener un feedback constante del desarrollo les ayudará a mantener el rumbo. Saben que mantenerse en rumbo es también importante para usted. Y se encuentran dispuestos a invetir unos pocos minutos en configurar una herramienta que comence a pagar en dividendos valiosos: tiempo y dinero. Hay sin embargo un pequeño problema. Por suerte, es uno de esos problemas únicos que pueden resolverse rápidamente con un gasto de una sola vez. Aquí es donde ustede puede ayudar, aprobando este gasto. Dicho de otra manera, su proyecto no se puede permitir no tener una máquina dedicada para integración continua.

Ahora, usted podría estar pensando en todas esas computadoras que los desarrolladores ya tienen en sus escritorios, las cuales podrían usarse para integración continua. Pero el tema aquí es la disponibilidad y la independencia. Ejecutar herramientas de integración conitnua en máquinas de desarrollo va a hacer más lenta la propia compuadora del desarrollador. El dinero que ahoro por no comprar un servidor dedicado para integración continua muy pronto va a ser superado por el dinero que le paga un desarrollador que trabaja más despacio. Además, un equipo dedicado es independiente en el sentido que no está configurada para un desarrollador en particular. Se baja lo que se encuentra en el repositorio de código y es todo lo que usa para construir el proyecto. Si la construcción resulta exitosa en un equipo dedicado, significa que cualquiera en el proyecto puede crear una construcción del sistema teniendo acceso al repositorio de código. Usted obtendrá paz mental al saber que todo lo que entrará en la entrega está guardado de forma segura en un repositorio centralizado.

Por último, permitame realizar un resumen presentándole un ejemplo económico que continuo viendo es ignorado por nuestros competidores. Considere  que, en promedio, su equipo de desarrollo de 10 personas le cuenta alrededor de $500 la hora (probablemente sea algo más cercado a $1000 la hora cuando considera todos los gastos extra). Si su equipo utiliza un total de dos horas durante todo el proyecto para realizar debug de problemas de itnegración (comenzando a contar cuando escuche a algún desarrollador gritar "Pero esto andaba en mi máquina!"), entonces usted ya habrá pagado una buena máquina para integracion continua. Luego, cuando analice que estas sesiones de debug ya están afectando y retrasando a su producto, realmente usted no encontrará que no puede permitirse no tener una máquina dedicada a integración continua.

Espero que esto le permite clarificar lo que seguramente ya escuchó sobre la integración continua.

Sinceramente,

Mike.

 

(Traducido de Dear Manager, They need a build machine, por Mike Clark)

Inspiración.

"Si tú tienes una manzana y yo tengo una manzana e intercambiamos las manzanas, entonces tanto tú como yo seguiremos teniendo una manzana cada uno. Pero si tú tienes una idea y yo tengo una idea, e intercambiamos las ideas, entonces ambos tendremos dos ideas"

Bernard Shaw