Topics Ci cd Integración continua en el desarrollo ágil

Integración continua en el desarrollo ágil


Obtenga más información sobre cómo la integración continua y las metodologías ágiles funcionan juntas.

¿Qué es el desarrollo ágil?

El desarrollo ágil es un conjunto de metodologías que se centran en el desarrollo
iterativo y la colaboración entre equipos autoorganizados. Los métodos ágiles se basan
en procesos disciplinados de gestión de proyectos y en la cooperación entre equipos, o
incluso equipos de equipos.

Si bien hay muchos entornos de trabajo ágiles para elegir, todos los proyectos de desarrollo ágil implican algún tipo de desarrollo continuo, como la planificación continua, las pruebas continuas y la integración continua (CI).

Con la CI, los desarrolladores hacen crecer gradualmente un sistema estable, y trabajan en lotes pequeños y ciclos cortos, lo cual es un concepto de Lean. La integración continua admite equipos que trabajan dentro de entornos de trabajo ágiles con pipelines de CI/CD que automatizan las compilaciones, las pruebas y las implementaciones. Mientras que la metodología ágil pertenece a la gestión de proyectos y portafolios (PMM), la CI es el proceso mediante el cual los equipos de desarrollo de software implementan cambios.

En esencia, Scrum y otras metodologías ágiles son un entorno de trabajo de gestión, no prácticas de ingeniería de software. Los equipos deben combinar los entornos de trabajo ágiles con las prácticas recomendadas de ingeniería de software para conseguir los mejores resultados. La integración continua pone en práctica el desarrollo iterativo de la metodología ágil.

Conceptos básicos de la metodología ágil

Con la gestión ágil de proyectos, se entregan proyectos complejos al centrarse en el cambio incremental. Esta metodología iterativa tiene seis elementos centrales para dar seguimiento al progreso y crear el producto.

  • Historias de usuario: describe los objetivos del producto escritos desde la perspectiva del usuario.

  • Plan de desarrollo: la vista de alto nivel de los requisitos necesarios para cumplir con la visión del producto.

  • Pendiente: requisitos para el proyecto por prioridad.

  • Plan de lanzamiento: un calendario para el lanzamiento de un producto funcional.

  • Sprint/iteración: las historias de usuario, los objetivos y las tareas vinculadas al sprint actual.

  • Incremento: el producto funcional presentado a las partes interesadas al final de un sprint.

Las metodologías ágiles pueden variar en cuanto a su enfoque, pero se mantienen fieles a este modelo. En GitLab, las funcionalidades de gestión de proyectos coinciden con estos conceptos básicos de la metodología ágil.

Concepto ágil Funcionalidad de GitLab
Historias de usuario Tickets
Tareas Listas de tareas
Épicas Épicas
Puntos/estimaciones Pesos
Backlog Listas de tickets y etiquetas priorizadas
Sprints Hitos
Gráficos de evolución burndown Gráficos de evolución burndown
Paneles ágiles Paneles de tickets

Flujo de trabajo de CI en la metodología ágil

Git es el método más popular de control de versiones y puede ser beneficioso para los equipos ágiles porque permite llevar a cabo un desarrollo descentralizado y simultáneo. Las herramientas como GitLab crean un proceso en torno al código, principalmente a través de tickets y solicitudes de fusión.

Una solicitud de fusión (MR) permite visualizar y colaborar en los cambios propuestos en el código fuente. Un flujo de trabajo de CI para los equipos que utilizan una metodología ágil incorpora conceptos básicos de la metodología ágil, así como confirmaciones, solicitudes de fusión, pruebas e implementaciones.

Usar etiquetas

Las etiquetas permiten a los equipos filtrar y gestionar épicas, tickets y solicitudes de fusión. Para un proyecto específico, los equipos pueden tener etiquetas como PlanificaciónEn cursoStagingRevisado, etc. con sus propias listas en el Panel de tickets.

Los equipos pueden colaborar en los tickets y, una vez que se hayan decidido los próximos pasos, un desarrollador asignado al ticket podría comenzar a trabajar y eliminar la etiqueta Planificación y reemplazarla por la etiqueta En curso.

Escribir código y confirmar cambios

El desarrollador puede hacer referencia al ticket correspondiente en su mensaje de confirmación. El desarrollador luego hace push de sus confirmaciones a una rama de funcionalidad y crea una solicitud de fusión. El código se crea y prueba, y un miembro del equipo puede revisar los cambios en el código.

Usar los paneles de tickets entre equipos

Una vez que un equipo termine su revisión, puede eliminar la etiqueta En curso y mover el ticket al panel de tickets Staging. Después, se notifica al equipo de implementación que el ticket está listo.

Implementar código

Una vez que se apruebe la solicitud de fusión, se puede fusionar en la rama principal y cerrar el ticket.

Por qué la CI es esencial para el desarrollo ágil

La integración continua impulsa a los equipos de desarrollo a implementar cambios pequeños y frecuentes y validar el código en los repositorios de control de versiones. De hecho, la CI puede considerarse un pilar del proceso ágil. La CI tiene un uso tan generalizado que la CI y la metodología ágil a menudo se utilizan de forma indistinta. Si bien los conceptos se centran de manera similar en los cambios pequeños e iterativos, no son los mismos.

La metodología ágil se basa en la expectativa de que los desarrolladores puedan entregar pequeñas actualizaciones incrementales a un producto o servicio. En la práctica, esto solo se logrará si una organización se compromete con la automatización de la CI/CD. Los entornos de trabajo ágiles permiten a los equipos moverse rápidamente y trabajar de forma independiente, pero si la organización no usa activamente la CI/CD, los métodos ágiles resultan prácticamente inútiles.

El propósito del desarrollo ágil es tener un producto funcional al final de cada Sprint. A medida que el producto pasa por cada sprint, mejora exponencialmente. Con la CI, los cambios de código que se realizan en el producto se validan continuamente comparándolos con otros cambios. La integración continua y las pruebas continuas garantizan que los equipos puedan entregar el producto funcional gracias a que los errores y posibles tickets se detectan antes de que lleguen al usuario final.

Conclusión

La integración continua (CI) es vital para el desarrollo de software ágil porque mejora el proceso de desarrollo con cambios pequeños e iterativos y garantiza la estabilidad del código. Al utilizar herramientas de integración continua, los equipos pueden automatizar compilaciones, pruebas e implementaciones, y mejorar así el flujo de trabajo de desarrollo general. Esta integración no solo facilita que las revisiones de código sean efectivas, sino que también mantiene la estabilidad del entorno de producción.

Al integrar la CI en las metodologías ágiles, las organizaciones consiguen una calidad de software superior y un proceso de integración continuo y fluido, lo que finalmente genera un mejor rendimiento de DevOps y una entrega de software de alta calidad.

¿Todo listo para comenzar?

Descubra lo que su equipo puede hacer con una plataforma de DevSecOps unificada.