Aquí la pregunta de las "40 mil lochas" es como hacer para lograr estos controles de tal forma que los desarrolladores puedan trabajar de forma estable sin verse afectados por los otros, y si ocurre el caso en que un desarrollador introduce un problema en el código este sea detectado de forma rápida. Bueno, la respuesta a esta pregunta la podemos encontrar aplicando el concepto de Integración Continua el cual es descrito en uno de los artículos mas famosos de Martin Fowler.
Básicamente el articulo indica que la mejor forma de mantener la integridad durante el desarrollo de software es que cada programador integre sus cambios al menos una vez por día y que una herramienta automatizada se encargue de verificarla además de ejecutar los unit tests respectivos, de tal forma de poder detectar errores lo mas pronto posible.
Actualmente existen una gran cantidad de herramientas que nos permiten realizar estas tareas. A continuación las enumero:
- Control de versiones: Es importante tener un repositorio donde se mantengan los fuentes y se lleve la historia de todos los cambios y quen los hizo. Varios ejemplos son Subversion, CVS, PVCS, Source Safe, etc. Todos los cambios en la aplicacion se ven reflejados en el repositorio, y la herramienta automatica genera los componentes a partir de alli. Es recomendable usar uno que este integrado al IDE de desarrollo.
- Generación de componentes (Build & Test) : En vez de realizar compilaciones manuales se deben usar herramientas que permitan la construcción de los componentes de una forma rapida, basicamente con la ejecucion de un solo comando, y que ademas permitan ejecutar una serie de test unitarios para verificar la integridad funcional de la aplicación. Varios ejemplos son make, Maven, Rake, Ant, Nant, etc.
- Automatización de la generación (Automate): La idea es tener una herramienta que permita obtener la ultima versión del repositorio, generar los artefactos de forma automatizada y ejecutar los test que permitan verificar la integridad funcional de la aplicación. En este grupo tenemos Cruise Control y Continuum. Adicionalmente la herramienta puede notificar los problemas encontrados usando diferentes medios como emails, irc, messengers, etc.
En un próximo articulo voy a explicar como implementar una solución completa de Integración continua usando algunas de las herramientas mencionadas arriba.
No hay comentarios.:
Publicar un comentario