Integración contínua

Suelo leer los artículos que escribe Martin Fowler. La primera vez que leí algo suyo fue su libro sobre UML, que siempre recomiendo cuando me preguntan qué leer en esa materia. Me gustó su forma de explicar temas técnicos y su opinión pragmática sobre el mundo de la informática.

En este caso voy a hacer referencia a la última versión sobre el artículo de Integración Contínua que redactó hace ya bastante tiempo. Es un documento que reune una serie de buenas prácticas ya conocidas, pero que juntas forman la mencionada integración contínua. Yo empecé a tener contacto con éstas prácticas a finales del 99, cuando tuve oportunidad de trabajar en una verdadera factoría de software.

La esencia de esta práctica, una de las 12 originales del proceso Extreme Programming, es la de que cada desarrollador realice integraciones periódicas de su trabajo, al menos una vez al día, con un repositorio de código compartido. Como señala el autor del artículo, mucha gente cree que es un trabajo imposible de lograr y que realmente no aporta mucho: dos errores muy graves. Es muy sencillo de poner en marcha, con las herramientas de hoy en día es casi inmediato, y los beneficios son enormes. Detectar problemas de integración rápidamente ayuda a que el propio proceso de integración sea más rápido ya que los problemas no aparecen de a miles y que el código sea más estable. Como consecuencia de ello, también se acelera el proceso de pruebas.

El artículo propone las siguientes prácticas como parte de la Integración Contínua:

  • Mantener un único repositorio de código
  • Automatizar el proceso de compilación y generación de ejecutables
  • Integrar pruebas automatizadas dentro del proceso de compilación
  • Todos envían su código a diario
  • Con cada cambio de código, se debería lanzar el proceso de compilación en un entorno de integración
  • Mantener el proceso de compilación rápido
  • Realizar pruebas en un entorno igual al de producción
  • Obtener la última versión de los ejecutables debe ser fácil
  • Que todos puedan ver el estado actual del código
  • Automatizar el proceso de despliegue de las aplicaciones

La lista de prácticas que propone el autor es muy completa, pero no es necesario ponerlas en marcha todas a la vez. Yo propongo plantear una introducción paulatina, dependiendo de la madurez del equipo de trabajo y de las prácticas que ya se estén aplicando, hasta completarlas todas.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s


A %d blogueros les gusta esto: