Diferencias entre Agile y Waterfall en desarrollo de software

Clase 11 de 53Curso de DevOps con GitLab

Contenido del curso

Planificación

Verificación

Seguridad

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.