Algunas Reflexiones Sobre Continuous Delivery

En esta entrevista tuve el placer de hablar con Gisela Decuzzi, una desarrolladora de software argentina con gran pasión por las prácticas técnicas del Agilismo.


Gisela se unió hace más de ocho años a 10Pines, desde donde ha participado en el desarrollo de productos para clientes en varios lugares del mundo. Además de ser una desarrolladora experimentada, Gisela es docente universitaria que contribuye a la formación de la siguiente generación de profesionales de software en su país.

Gisela comenzó hablando que Continuous Delivery, que más halla de llevar código de buena calidad frecuentemente a producción, es una colección de técnicas que llevadas al extremo provee gran valor para el producto que se esta construyendo. Gisela comentaba que el proyecto en el que trabaja actualmente tiene treinta puestas en producción por día.

Gisela habló de las cuatro condiciones para tener Continuous Delivery, estas son: tener seguridad de lo que se entrega que viene de la mano de tener pruebas en los cuatro cuadrantes, monitoreo constante del producto que incluya alarmas, un equipo comprometido que responda rápido en lugar de culparse entre ellos, y revertir cambios con la misma facilidad con la que se desplegaron.

Para Gisela correr regresiones a mano es un desperdicio de tiempo y talento, en lugar de esto se debería tener pruebas automatizadas de extremo a extremo de los escenarios más comunes. Desde su opinión no tiene sentido para un desarrollador no automatizar un caso que pueda llegar a fallar y que el usuario perciba; por el contrario las pruebas automatizadas evitaran que él desarrollador pase vergüenza por el código que implementó.

Gisela puntualizó que hacer desarrollo desde un repositorio central sin ramas es mucho más sencillo, esta práctica se potencia aun más cuando se combina con funciones alternas que se puedan poner en producción incompletas y que se harán visibles para el usuario solo cuando se hayan terminado. Gisela recomendó contar con herramientas que permitan gestionar banderas de funciones de tal manera de activarlas cuando estén terminadas y no dejarlas olvidadas por accidente. Las banderas de funciones permiten que la gente de negocio pueda probar funcionalidad no terminada en producción sin mayor riesgo ni impacto en el producto, dijo Gisela. Gisela advirtió que la mala gestión de las banderas de funciones pueden llevar a tener código espagueti.

Invertir profundamente en los procedimientos que permitan reconstruir y volver a tras es otro punto clave que Gisela volvió a enfatizar. Poder recobrar la base de datos a un estado estable es clave. Los patrones de despliegue Azul/Blue y Canario son estrategias fundamentales apoyadas por la tecnología de contenedores, señalo Gisela.

Gisela comentó que a ella le gusta eXtreme Programming por ser la primera corriente que realmente le dio el mérito necesario a las prácticas técnicas de desarrollo. DevOps y Agile también se suman a esta mezcla y entre todas acaban posibilitando las prácticas de Continuous Delivery. Para cerrar Gisela recomendó comenzar a investigar la información disponible acerca de Continuous Delivery y empezar a experimentar con estas técnicas y herramientas.


Sobre el Autor: Juan Banda

Juan se especializa en entrenar, mentorear y hacer coaching de equipos Agiles para que en corto tiempo puedan alcanzar resultados asombrosos. Juan es también un agente de cambio que ayuda a que empresas completas vuelquen sus prácticas hacia formas más humanas de trabajo. Juan es un Certified Scrum Trainer (CST) y LeSS Friendly Scrum Trainer. Su formación universitaria incluye un grado de Magister en Administración de Sistemas de Información conferido por The University of Illinois at Chicago.