Continuous Delivery: metodología y beneficios de la entrega continua
A la hora de poner en marcha un proyecto de desarrollo, los problemas de comunicación entre el equipo y el cliente, la falta de visibilidad global o las modificaciones de última hora son algunas de las causas más comunes que retrasan la entrega final.
Como solución a estos inconvenientes nace el Continuous Delivery, un modelo de gestión de desarrollo que se enmarca en las metodologías ágiles y que cada vez es más demandado por las empresas que quieren emprender proyectos de desarrollo fluidos y dinámicos.
En este post Dani Mas, nuestro CTO, nos explica todo sobre el Continuous Delivery, desde las fases a través de las cuales se desarrolla hasta qué beneficios aporta a las empresas. ¡Empezamos!
Continuous delivery, la unión de control de calidad y automatización
El primer paso para conocer qué es Continuous Delivery es preguntarse en qué consiste. El nombre ya nos da alguna pista pues, en su traducción al castellano (entrega continua), deja a la vista los dos conceptos que caracterizan este modelo de gestión de desarrollo.
En un flujo de trabajo de programación, el Continuous Delivery ofrece la posibilidad de poder subir a entornos testables por el product owner, en este caso el cliente, fracciones de código no totalmente completas, pero sí utilizables. Es decir, las entregas que se realizan son funcionales, no simplemente visuales y pueden testarse por sí mismas, sin necesidad de contar con más desarrollo para hacerlo.
Con esto, se consigue que el cliente no tenga que esperar hasta que le hagan llegar la entrega final del proyecto, sino que puede ir viendo cómo este va avanzando a medida que se va desarrollando. De esta forma, el cliente tiene visibilidad de los elementos que se van incorporando al proyecto y puede pedir los cambios que crea necesarios antes de que se siga avanzando en una dirección determinada. Así, gracias a este flujo continuo de entregas de versiones, se puede pasar a producción de forma más segura.
Sin duda, teniendo todo esto en cuenta, para que este modelo se desarrolle de forma exitosa es necesario contar con la implicación y el compromiso de todas las partes implicadas.
Dentro del Continuous Delivery no existen timings determinados de entrega y control, sino que, en cada caso, el cliente los establece con el equipo, siendo la flexibilidad un factor clave de esta metodología.
Por su naturaleza, el Continuous Delivery está muy vinculado a la metodología Agile, caracterizada por el dinamismo en el desarrollo del trabajo que incluye entregas a través de demos.
¿Cuáles son los beneficios de Continuous Delivery para las empresas?
Ahora que ya sabes qué es el Continuous Delivery, quizás te cuestiones por qué su popularidad no deja de crecer a pasos agigantados dentro del mundo del desarrollo. La respuesta la encontramos no solo en el ahorro del tiempo, y por tanto de la inversión, sino también en muchos otros aspectos, como:
- Optimización del tiempo de trabajo. El trabajo en paralelo que propone el Continuous Delivery permite que las personas implicadas en el proyecto puedan modificar su parte de trabajo con independencia del resto del equipo.
- Visibilidad integral en todo momento. Desde el principio, tanto el equipo como el cliente están al tanto de los diferentes pasos que toman, así como durante el avance y el fin del proyecto. Para los product owner esto representa una gran ventaja a la hora de transmitir a sus superiores los progresos que se están realizando.
- Las modificaciones causan menor impacto en el proyecto global debido, por un lado, al trabajo en paralelo y, por otro, a la interacción constante.
- Además del control de procesos y trabajo, el cliente también tiene visibilidad sobre los recursos y el tiempo que se están empleando.
- Expectativas que se cumplen. Al estar al día de todos los progresos y poder solicitar los cambios prácticamente al momento de realizar las acciones, se consigue que el resultado final se ajuste a las expectativas del cliente.
- Trabajo y comunicación fluidos. La comunicación bidireccional y continuada genera una relación fluida entre el cliente y el equipo, con lo que no solo se logran objetivos finales, sino que también deriva en un mejor flujo de trabajo en el día a día. De esta forma, todos los implicados en el proyecto trabajan con motivación y deseo de mejora.
El pipeline, las fases clave del Continuous Delivery
Teniendo en cuenta todos los beneficios del Continuous Delivery, en FHIOS decidimos adaptarlo como modelo de gestión para muchos de nuestros proyectos de desarrollo.
Para desarrollarlo, seguimos cuatro fases que integran el pipeline de cada proyecto: desarrollo, control de calidad, preproducción y producción.
- Desarrollo. Cada miembro del equipo genera los códigos que le correspondan, teniendo en cuenta los tiempos establecidos.
- Control de calidad. Tras la primera etapa, los QA testers, encargados del control de calidad del desarrollo de una empresa, revisan que el entregable cumple con todas sus funcionalidades y comprueban que está listo para pasarlo a preproducción.
- Preproducción. En esta fase, se añade todo lo generado a un entorno de pruebas en el que, nuevamente, se verifica que los códigos se visualizan y funcionan de modo correcto.
Durante estas tres fases del pipeline, los apuntes del cliente y los cambios demandados por los QA testers, pueden hacer que las tareas vuelvan a la fase previa a fin de que todo llegue de forma adecuada a la última etapa, producción. - Producción. Este entorno refleja el resultado final del proyecto, el cual se ve cuando todos los entregables validados por el cliente ya están agregados a preproducción.
Continuous Delivery tools y factor humano, la clave de la entrega continua
Es importante destacar que una de las características que diferencian a Continuous Delivery de otros modelos de gestión de desarrollo es la combinación de procesos automatizados con el factor humano.
Para la parte de procesos automatizados, existen las Continuous Delivery tools, herramientas de automatización que se encargan de controlar de forma autónoma los códigos que se generan. En nuestro caso, en Fhios nos valemos de Jenkins, una de las Continuous Delivery tools más potentes del mercado que, sincronizado con Jira, herramienta para la administración de tareas de proyectos, logra agilizar el flujo de trabajo y optimizar los resultados.
A estas tecnologías se suma el expertise de los profesionales de nuestro equipo de desarrollo, los cuales adaptan el desarrollo con Continuous Delivery a cada proyecto según las necesidades de cada cliente, convirtiendo la personalización en uno de nuestros factores diferenciales.
¿Tú también estás interesado en promover el control de calidad y la mejora continua en tus proyectos de desarrollo? ¡Cuéntanoslo y juntos comenzaremos a aprovechar todas las ventajas del Continuous Delivery!