Home

lunes, 30 de abril de 2012

Entrega Continua, un enfoque para aumentar la calidad de nuestros productos


Muchas organizaciones que desarrollan software, poseen un proceso de pruebas, liberación y entrega de productos que pueden demorar varios días o semanas, según la complejidad del producto de software y la agilidad del equipo de desarrollo y del cliente para quien se implementa la solución. Esto se debe a que estas actividades se ejecutan, en su mayoría, de forma manual y pocas veces logran ser probadas en su totalidad, con suficiente tiempo de antelación, para detectar errores; típicamente es cercana a la fecha de liberación del producto, cuando se establece el foco en todo lo relacionado con la construcción, empaquetamiento y pruebas del entregable. Como resultado, los problemas más complejos, que ponen en riesgo la calidad, se encuentran en las fechas más próximas al momento de una entrega.

La situación planteada anteriormente, convierte la actividad de liberación de un producto de software en una actividad riesgosa y de alto impacto  y la tendencia es tener una frecuencia de entregas baja, donde la distancia en tiempo entre una entrega y otra puede llegar a ser de varias semanas o en ocasiones algunos meses.

El enfoque de Entrega Continua (http://continuousdelivery.com/) propone automatizar el proceso de construcción, empaquetado y despliegue de un producto de software, desde su extracción del sistema de control de versiones hasta su despliegue en ambientes de: Desarrollo, Pruebas o Producción del cliente para el cual está dirigido. Para ello, se basa en una gestión efectiva de la configuración de la aplicación y en un grupo de pruebas automatizadas comprensible, que permita al equipo de desarrollo darse cuenta rápidamente cuando un cambio ha roto la estabilidad del mismo.

Gestión efectiva de la configuración implica tener todo lo necesario para crear y probar la aplicación: código fuente, scripts, pruebas automatizadas, scripts de migración de datos, opciones de configuración de los componentes según los diversos ambientes donde puede ser desplegada, en un sistema de control de versiones. También significa tener software de gestión de dependencias (librerías y componentes). Por último, tener los medios para gestionar cambios a la infraestructura y los ambientes de una forma totalmente automatizada.

Un grupo de pruebas automatizadas comprensible, implica desarrollar las pruebas respetando ciertos principios y prácticas que permitan garantizar la mantenibilidad en el tiempo de estas pruebas a medida que aumenten en número.

Una vez instanciada esta práctica, en DBAccess un producto en construcción se empaqueta y despliega diariamente en ambientes de integración continua. Contar con este ambiente no se disminuye el riesgo de ciertas etapas, también permite mayor cercanía para todo el equipo con el producto en construcción pudiendo detectar desviaciones oportunamente.

Autor: Juan Bustamante

1 comentario:

Anónimo dijo...

Excelente articulo Juan! Después de llegar a Entrega Continua uno se pregunta... ¿cómo podíamos vivir sin eso antes?

pa'lante

Angelo