Integracion continua
En mi nuevo trabajo hace tiempo que me preguntaba por que habia un programa llamado CruiseControl compilando y ejecutando tests continuamente a nivel de integracion. Hoy me ha picado la curiosidad de saber por que se hace esto.
Cuando varios programadores trabajan en un mismo proyecto con un sistema de control de versiones como Subversion o el antiguo CVS es normal tener conflictos entre desarrolladores cuando alguno de ellos envio sus ultimos cambios al servidor.
Es decir, si te mandan desarrollar una nueva caracteristica en un proyecto web o arreglar algun bug, normalmente te actualizas tu version del programa con un update, haces los cambios, compilas, ejecutas tests, y si todo va bien, envias tus cambios al servidor para que los incorpore al repositorio del proyecto. Pues bien, es normal que otros desarrolladores tambien envien nuevos cambios al repositorio y que esos cambios, a veces, puedan entrar en conflicto con los de otros programadores.
La Integracion Continua consiste en compilar y ejecutar los tests de todo el proyecto contenido en el repositorio compartido por los programadores para detectar lo mas pronto posible esos posibles conflictos y arreglarlos cuanto antes. Esto puede ser manual, pero lo habitual y recomendable es hacerlo automaticamente con una herramienta como CruiseControl para evitar fallos humanos.
Si quieres ampliar informacion sobre esto, te recomiendo que leas el articulo de Martin Fowler sobre Integracion Continua (en ingles).


