Diferencias entre Agile y Waterfall en desarrollo de software
Clase 11 de 53 • Curso de DevOps con GitLab
Resumen
Entender la diferencia entre modelos de desarrollo permite tomar decisiones rápidas y efectivas. Aquí verás cómo Agile y Waterfall cambian la forma de trabajar, cuándo conviene cada uno y qué implicaciones tienen en tiempos, entregables y equipo. Con ejemplos claros, fases comparables y el rol de GitLab en ambos enfoques.
¿Qué diferencia a Agile de Waterfall?
En Agile se trabaja con un proceso iterativo. Se ejecutan sprints y al final de cada esfuerzo se obtiene un entregable listo para producción. En Waterfall el proceso es secuencial y previamente definido: el entregable llega al final del proyecto.
¿Cómo funcionan los sprints y entregables?
- Sprints con alcance claro y entregable al final de cada ciclo.
- Entrega continua: lo construido puede ir a producción.
- Analogía de la casa: uso modular, primero la sala funcional mientras se construye el resto.
- En Waterfall: la casa solo se usa cuando está totalmente terminada.
¿Qué riesgos tiene el modelo Waterfall en la práctica?
- Meses de trabajo en especificaciones sin una sola línea de código.
- Posible “lujo” en contextos de monopolio, como gobierno.
- En entornos competitivos: no puedes esperar 6 meses para validar con el mercado.
- Experiencia real: trabajar con gobierno en Waterfall fue una “pequeña pesadilla” por el exceso de papeles sin entregables.
¿Cómo se comparan las fases del proyecto?
Se definen cuatro fases para contrastar: especificaciones, build, test y release. En Waterfall se realizan de forma lineal; en Agile se repiten en ciclos.
¿Qué pasa en Waterfall durante build y test?
- Especificaciones: qué y por qué del proyecto, todo por adelantado.
- Build: verificar si compila, resolver dependencias y problemas de construcción.
- Test: equipo de QA ejecuta pruebas no automatizadas para validar especificaciones y comportamientos diseñados; se pueden hallar algunos bugs pero no es el foco.
- Release: solo al final. Es una forma lenta y cansada de entregar software, común en los 80 y 90.
¿Cómo iteran Agile, Scrum y eXtreme Programming?
- Ciclos sin principio ni fin: iteraciones continuas.
- Por sprint: definir alcance, ejecutar pruebas, generar artefactos y hacer release.
- Al liberar, el ciclo se reinicia: se vuelve a definir “lo siguiente en la mesa”.
- Metodologías como eXtreme Programming y Scrum entran en el paraguas de modelos Agile.
¿Qué entregas y mantenimiento habilita Agile?
- Entrega frecuente y validación temprana con usuarios.
- Mejora continua del software “mientras la empresa siga viva”.
- Mantenimiento constante incorporado al ciclo.
¿Qué herramientas y habilidades se destacan con GitLab?
GitLab ofrece herramientas para ambos enfoques, dentro de la misma plataforma. Sirve si trabajas en una startup con prácticas ágiles o en una entidad de gobierno con regulaciones que exigen especificaciones antes de comenzar a codear. El siguiente paso es definir el flujo de trabajo del proyecto dentro de GitLab.
- Habilidades clave:
- Comparar proceso iterativo vs modelo secuencial.
- Planificar sprints y definir alcance por ciclo.
- Gestionar build: compilación y dependencias.
- Coordinar QA y tests no automatizados de verificación de especificaciones.
- Ejecutar release continuo y mantenimiento.
-
Diseñar flujo de trabajo en GitLab para ambos modelos.
-
Conceptos y keywords:
- Especificaciones, build, test, release.
- Sprints, entregable, producción.
- QA, bugs, dependencias, compila/no compila.
- Timeline, artefactos, mejora continua.
- Scrum, eXtreme Programming, modelos Agile y Waterfall.
- Contexto startup vs gobierno, monopolio y industria competitiva.
¿Qué modelo te funciona mejor y por qué? Comparte tu experiencia y contexto para enriquecer la conversación.