Post escrito por Mariano Minoli (@marianominoli), Ana María García (@amgarciao) y Javier Garzás (@jgarzas)
Mientras escribimos el libro Como implantar un proceso de Integración Continua de 233 grados de TI, pensamos (y discutimos) mucho sobre cómo debería ser el camino que debería seguir, o que suele seguir, un equipo que decide implantar Integración Continua, e incluso uno que pretende llegar hasta la entrega continua (ya hablamos en su día de las diferencias entre estos términos)
En particular, nos preocupaba lograr expresar cuál debería ser la evolución en términos de madurez del equipo.
Después de darle muchas vueltas, como resultado de esas discusiones, logramos plasmar dicha evolución en la gráfica que ves a continuación.
Antes de explicar la gráfica, queríamos reconocer la ayuda desinteresada que nos ha brindado Manuel Villa, para ilustrar el libro, quién, además de ser un Ingeniero Informático con años de experiencia en desarrollo de software, es también un excelente dibujante. Manuel se he hecho cargo de todas las gráficas del libro que requerían cierto aporte artístico.
Desde el IDE, pasando por versionado, Builds, Integración Continua, Testing… hasta ser un “súper héroe” de la Entrega Continua.
Tener un equipo de “superhéroes”, en lo que a integración continua y entrega continua refiere, es un proceso evolutivo. No está al alcance de todos, ciertamente, pero tampoco es algo imposible. Si quieres ponerte a trabajar en ello, vamos a repasar los pasos más normales para dicha evolución.
1 – IDE
Todo el mundo comenzó trabajando solo frente a un IDE de desarrollo. En la actualidad cada vez nos encontramos menos con entornos profesionales que sólo trabajen con un IDE y es sólo común en desarrollos muy pequeños o en prácticas de la Universidad… afortunadamente.
Pero hemos de reconocer que ha sido el principio de muchos equipos y proyectos.
2 – Control de Versiones.
No deberías pensar en Integración Continua si tu equipo no está utilizando un repositorio de código, un sistema de control de versiones… y saber usarlo bien.
Este tema lo hemos tratado mucho en el blog, te recuerdo aquellos post de:
– Por qué siempre digo que la gestión de versiones es imprescindible. Una experiencia real ilustrativa
– ¿Qué estrategia de control de versiones seguir en un equipo Scrum?
– Feature toggles: ¿Qué pasa si no quiero crear una rama por historia de usuario?
Si no lo tienes en cuenta, invertirás esfuerzos en instalar herramientas que el equipo no sabrá aprovechar y pasará de ellas.
Es decir, tienes un súper-equipo en potencia, pero es un diamante en bruto y aún no está preparado para sus súper-poderes (las herramientas y las prácticas) para enfrentarse a los villanos (proyectos). Debe antes aprender a controlar esos súper-poderes.
3 – Compilación Continua.
Hemos decidido llamar de esta manera a los equipos que están en vías de implementar Integración Continua, pero que aún no lo han conseguido. Al menos no de manera madura.
Este paso intermedio no es un fin en sí mismo, pero constituye la realidad en la cual se encuentran muchos de los equipos con los que trabajamos.
Estos equipos normalmente han automatizado parte de su build (usando Maven, Ant o MSBuild) e incluso tienen un servidor de integración continua funcionando (por ejemplo Jenkins).
Pero aún no han adoptado prácticas, procesos ni herramientas que les permitan brindar todo su potencial. En la mayoría de los casos, estos equipos no han conseguido implementar pruebas automatizadas.
Van en el buen camino para convertirse en súper-equipos, pero todavía les falta madurez.
4 – Integración Continua.
Durante este proceso implantarás herramientas y prácticas que posiblemente tu equipo no haya usado antes, o lo haya hecho de manera parcial.
Durante la implantación de Integración Continua: automatizarás completamente la build, aplicarás las prácticas específicas de Integración Continua, procesos relativos, los pipelines correspondientes y automatizarás las pruebas, entre otras cosas.
En resumen, utilizarás todas las prácticas y herramientas necesarias para tener un súper-equipo ¡Capaz de enfrentarse a proyectos y sacarlos delante de manera eficiente! Es un súper-equipo joven, pero ya controla sus súper-poderes.
5 – Entrega Continua.
Sólo cuando tengas un equipo que dispone de un entorno de Integración Continua fiable te recomendamos que vayas a por la implementación de Entrega Continua.
También es importante destacar que Entrega Continua no encaja en todos los entornos de trabajo. Aquí entran aspectos comerciales, además de técnicos, y de relación con otras áreas de la organización.
Aquí hablamos del Deployment Pipeline, técnicas de DevOps, entre otras cuestiones. Cuando llegues a esta etapa, tu súper-equipo no sólo producirá software de manera eficiente, sino que podrá enfrentarse a retos muy exigentes y trabajar como los equipos de Flickr, Facebook o Twitter.
Entonces, ¿Qué estás esperando para convertir tu equipo en un súper-equipo? Bueno, sí, quizás estás esperando a que terminemos el libro de Como implantar un proceso de Integración Continua y te contemos todo esto con más detalle que el de un solo post.
- Debes crear apps sin saber programar (no hay que saber nada) + Crea Test con IA + Scrum es el nuevo Excel - 12 septiembre, 2024
- Las 6 técnicas prompting + 1ª Ley del Manager Oscuro + Mantenlo sencillo, estúpido - 5 septiembre, 2024
- Guía de Métricas Ágiles (versión agosto 2024) - 22 agosto, 2024