[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Sobre integración continua, automatización de proyectos y lámparas Lava
- To: mindfood@xxxxxxxxxxxxxxx
- Subject: Sobre integración continua, automatización de proyectos y lámparas Lava
- From: Rafael Luque <rafael.luque@xxxxxxxxxxxxxxx>
- Date: Mon, 08 Nov 2004 00:49:12 +0100
- Delivered-to: mailing list mindfood@orange-soft.com
- Delivered-to: moderator for mindfood@orange-soft.com
- Mailing-list: contact mindfood-help@orange-soft.com; run by ezmlm
- User-agent: Mozilla Thunderbird 0.7.2 (Windows/20040707)
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