[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Sobre integración continua, automatización de proyectos y lámparas Lava



Hola a todos,

La integración continua es una de las prácticas clave de XP (eXtreme Programming) [1], si bien es una práctica que venía usándose mucho antes de la aparición de las metodologías ágiles. Consiste básicamente en que cada uno de los miembros del equipo de desarrollo integre sus cambios en el repositorio de código del proyecto frecuentemente (cada pocas horas), comprobando después que todo siga funcionando correctamente, es decir, que el código compile y pase todos los tests definidos.

Normalmente se entiende la integración continua asociada a un sistema de construcción (build) automatizado que verifica continuamente el código del repositorio, compilándolo y ejecutando los tests y notificando al equipo del resultado por algún canal (Web, e-mail, RSS, system tray, etc.). En mi opinión, tal proceso de construcción y pruebas totalmente automatizado es una de las herramientas más valiosas en cualquier proyecto de software, ya que permite al equipo construir y probar su código varias veces al día.

Sobre el tema de la automatización en proyectos de software, recientemente Mike Clark [2] ha publicado un libro perteneciente a la famosa serie "The Pragmatic Programmers" [3] titulado "Pragmatic Project Automation: How to Build, Deploy, and Monitor Java Apps" [4]. Aún no lo he leído, pero el índice [5] parece bueno.

Otro recurso interesante es la tabla comparativa de las distintas herramientas de integración continua que ha elaborado CodeHaus [6]. La herramienta de IC más extendida es sin duda CruiseControl, un proyecto open source impulsado por Martin Fowler [7] y otros "ThoughtWorkers", pero como puede verse en la tabla existen otras muchas herramientas disponibles.

Si os interesa el tema, no os perdais el weblog "Pragmatic Automation" [8]. Estos posts sobre el uso de lámparas Lava como dispositivos visuales de monitorización del proceso de build harán las delicias de los más geek: "Bubble, Bubble, Build's In Trouble" [9] y "Lights, Camera, Action!" [10] (no se trata de una broma, esta gente ha creado un plugin de CruiseControl para controlar dispositivos eléctricos mediante el protocolo X10... de locos!).


Un saludo, Rafael Luque

[1] http://www.extremeprogramming.org/rules/integrateoften.html
[2] http://www.clarkware.com/cgi/blosxom
[3] http://www.pragmaticprogrammer.com/
[4] http://www.pragmaticprogrammer.com/starter_kit/au/index.html
[5] http://www.pragmaticprogrammer.com/starter_kit/au/contents.pdf
[6] http://damagecontrol.codehaus.org/Continuous+Integration+Server+Feature+Matrix


[7] http://www.martinfowler.com/
[8] http://www.pragmaticautomation.com/
[9] http://www.pragmaticautomation.com/cgi-bin/pragauto.cgi/Monitor/Devices/BubbleBubbleBuildsInTrouble.rdoc


[10] http://www.pragmaticautomation.com/cgi-bin/pragauto.cgi/Monitor/Devices/LightsCameraAction.rdoc