Hoy en día, Waterfall no se utiliza con tanta frecuencia, pero sin ella, nadie hubiera inventado Agile. Te lo contamos para los gestores de proyectos y aquellos que quieran serlo.
¿Qué es Waterfall?
Waterfall es el modelo «Cascada» (en inglés, waterfall model), desarrollo de productos en cascada o lineal. Al igual que un flujo de agua, dirige a los equipos a resolver las tareas de forma secuencial y estrictamente según el plan inicial. El nombre apareció en 1970 en un artículo de Winston Walker Royce, director de Lockheed Software Technology Center, y la estructura se tomó del diagrama de Gantt.
Principios del modelo de desarrollo en cascada
- Los documentos e instrucciones son importantes, todo debe registrarse.
- La siguiente etapa de trabajo no comienza hasta que no haya terminado la anterior.
- No se pueden omitir etapas.
- Si los requisitos del producto cambian después del acuerdo, se vuelve a redactar el pliego de condiciones.
- No se puede volver a la etapa anterior para cambiar algo.
- No hay iteraciones, hay un proceso general de creación del producto.
- Identificar y corregir errores solo en la etapa de prueba.
- El cliente no participa en la creación del producto después de establecer el pliego de condiciones.
Cómo Funciona Waterfall
El desarrollo utilizando el modelo en cascada se realiza en cinco etapas estrictamente secuenciales.
- Análisis
El equipo recopila los requisitos para el producto futuro. Luego, redacta un pliego de condiciones técnico detallado, planifica el cronograma de trabajo y los posibles riesgos. Pasa a la siguiente etapa solo cuando todos los requisitos estén escritos y haya un plan. Y en el plan, instrucciones sobre qué hacer y cuándo.
- Diseño
El equipo crea un prototipo y prepara maquetas de diseño. Cuando estén listas, se conectan los desarrolladores.
- Desarrollo
En esta etapa, se escribe el código del producto de acuerdo con el plan, las maquetas y los requisitos. Ni un paso al costado, todo estrictamente según las especificaciones técnicas.
- Pruebas
El código está listo, comienzan las pruebas. Aquí pueden surgir problemas. Por ejemplo, el equipo descubre errores graves en el código y dedica mucho tiempo a corregirlos. Esta es la principal desventaja del modelo de desarrollo en cascada.
- Operación y soporte
El proyecto se entrega al cliente y se monitorea durante un tiempo predeterminado para que todo funcione.
Cómo Distinguir Waterfall de las Metodologías Ágiles
La metodología clásica Waterfall es trabajar según un pliego de condiciones escrito y acordado de antemano. La flexibilidad no es bienvenida aquí. Esta es la principal diferencia entre el modelo en cascada y Agile.
Waterfall se diferencia de Agile en los principios de trabajo, de los que hablamos anteriormente.
12 principios de Agile
- Lo principal es un buen producto y un cliente satisfecho.
- Disponibilidad para cambios en cualquier momento.
- Mostrar la parte completamente funcional del producto con la mayor frecuencia posible.
- Reuniones constantes del equipo y el cliente para intercambiar información.
- El cliente y los desarrolladores deben trabajar juntos como un solo equipo.
- Es importante confiar en las personas en lo que hacen.
- Tener un producto funcional es progreso.
- Los procesos flexibles son un desarrollo continuo.
- La atención a la calidad contribuye a la flexibilidad.
- La simplicidad del proceso de desarrollo elimina el trabajo innecesario.
- Un equipo autoorganizado trabaja mejor.
- Búsqueda constante de mayor eficiencia.
Estos principios surgieron del manifiesto ágil.
Manifiesto para el desarrollo ágil de software
- Las personas son más importantes que las herramientas.
- La calidad del producto es más importante que la documentación.
- La interacción con el cliente es más importante que el contrato.
- La disposición al cambio es más importante que el plan establecido.
Si también se hubiera escrito un manifiesto para Waterfall, se vería así:
Manifiesto del modelo de desarrollo de software en cascada
- Sigue las reglas.
- Sin especificaciones técnicas, no hay producto.
- Cuanto más detalladas sean las especificaciones técnicas, mejor será el producto.
- Asegúrate de que no haya cambios.
En qué se Diferencia Waterfall de Scrum
El marco Scrum es parte de Agile, por lo que también se diferencia del modelo de desarrollo en cascada. En esta tabla, hemos recopilado sus principales diferencias.
Waterfall el modelo en cascada | Scrum el modelo iterativo |
---|---|
Todos los requisitos se conocen al principio y no cambian | Los requisitos pueden variar a lo largo del proyecto |
Extenso y detallado c.c. | Backlog |
Pruebas al final | Pruebas después de cada iteración |
Inflexible | Flexible |
El producto terminado al final | Parte del producto funcional después de la primera iteración |
El cliente no ve el resultado intermedio | El cliente ve y puede influir en el resultado intermedio |
Cuándo Utilizar el Modelo Waterfall
Los inconvenientes mencionados no impiden aplicar con éxito la metodología de desarrollo «Cascada» si:
- El cliente sabe y entiende claramente lo que quiere conseguir. Si ha pensado de antemano el concepto, sabe cómo debe ser el resultado y no tiene previsto realizar cambios.
- Al cliente le conviene que el contratista gestione todo el proyecto. El cliente no tiene intención de participar en el desarrollo, controlar y proporcionar comentarios a los ejecutores, sino que quiere ver el resultado de inmediato.
- El cliente ha determinado de antemano los plazos y sabe qué resultado habrá en cada fase del desarrollo.
- El equipo sabe de antemano qué herramientas y enfoques utilizarán sus miembros, y dispone de soluciones estándar sobre las que trabajarán en el producto.
Además, el modelo en cascada será una buena opción si el equipo trabaja en un producto especialmente complejo, cuyo proceso de creación requiere una secuencia clara y grandes presupuestos.
Si se necesita flexibilidad para realizar cambios en el producto, una interacción constante con el cliente y la posibilidad de ver el progreso en cada fase del desarrollo, es preferible utilizar la metodología Agile.
Conclusión
Waterfall es una metodología en la que todo está pensado y registrado desde el principio, y esto tiene sus ventajas. Hay proyectos para los que es adecuada, como aquellos en los que todos los requisitos se conocen de antemano y no pueden cambiar durante el trabajo y donde no hay riesgo de error.
En el entorno digital, esto ocurre con poca frecuencia, por lo que los equipos añaden prácticas flexibles al modelo en cascada: por ejemplo, verifican que el producto cumpla con los requisitos después de cada etapa de trabajo, no al final.