Cuando empecé a trabajar, unas de las primeras cosas que me pidieron fuero profesionalizar la construcción de software con integración continua.
Esto me lo pidieron como el 2010. Siempre pensé que pasaria de moda, que las máquinas montarían el software solos.
Pues esta semana del 2022, me han pedido volver a definir una integración continua para una organización.
¿Qué buscan las organizaciones con la integración continua?
Las organizaciones buscan potenciar su infraestructura para que sea escalable y gobernada, diseñada para requisitos de tamaño empresarial.
Y esos requisitos, ¿Cómo llegan a producción?. ¿Qué estamos buscando.
Estamos buscando esto que ves en la imagen. Lo que en Agile611 llamamos el circulo del requerimiento.
Cualquier requerimiento, implica 1 funcionalidad, 1 plan de pruebas, su validación y luego volver a empezar.
Si os fijáis, esto también encaja totalmente con Scrum, dónde el requerimiento puede ser un Product Backlog Item, que pega a una funcionalidad con su plan de pruebas para ser validada.
Por otra parte, también es una iteración cerrada, como lo es Scrum.
Las organizaciones con necesidades regulatorias y de seguridad de escala masiva y complejas tienen requisitos que van más allá de lo que integración continua solo puede proporcionar.
Debemos estructurar y industrializar esa construcción, ya que eso marca la diferencia.
¿Cómo debe ser mi integración continua?
En integración continua, básicamente hay 4 bloques. Esos bloques son gestión del código, construcción (build), testing y despliegue (deploy).
Esos bloques los podemos complicar tanto como queramos. Lo podemos mover a distintos stacks tecnológicos, pero un ejemplo de integración continua seria algo similar a esto.
Hemos pintado en amarillo (Devs) , morado (Operativa) y naranja (QA) los puntos donde deberían asumir más capacidades de esa area.
No significa que sea un silo, porqué al fin y al cabo, tal y como vemos Scrum y la manera de trabajar, el equipo debe mantener esas 3 competencias para entregar valor haciendo software.
Este es el esquema inicial donde tenemos varios bloques de testing y también mirad que conceptualmente a nivel construcción aún estamos como estábamos hace 20 años.
Conclusión
En la construcción estamos como cuando los romanos levantaban edificios o estructuras.
No hemos evolucionado tanto, pero si se hacen bien las cosas esa es la manera que se consolida trabajando.
Consolidar una buena estructura de integración continua, implica una modernización de tu manera de entregar software y en consecuencia de tu manera de trabajar.
Scrum se complementa a la perfección con esta manera de entregar software.