Las respuestas a continuación de Quora User y Robert William Allen son absolutamente correctas, pero no se detienen en “¿por qué?” Estoy tratando de responder esa parte.
Cualquier software creado debe tener los siguientes pasos
- Requisitos
- Especificaciones
- Diseño
- Desarrollar
- Prueba
- Lanzamiento
- Producción y comentarios / errores de los clientes
Cascada o Ágil (Scrum, XP, etc., etc.) ninguno puede evitar esto.
- ¿Qué nugget de oro de ingeniería de software has descubierto en Internet?
- Programación vs diseño: ¿Cuál es más fácil de aprender y cuál tendrá más valor en la industria tecnológica en los próximos años?
- ¿Cómo describirías el hashing a un niño de 10 años?
- ¿En qué se diferencia un trabajo de finanzas de un trabajo de ingeniería de software?
- ¿Hacia dónde avanza la industria del software en India?
Waterfall realiza el paso 7 una vez por lanzamiento, también hay una entrega al final de cada paso, por lo que Requisitos tiene una entrega que es una entrada para especificaciones cuya entrega es a su vez entrada para Diseño y así sucesivamente. Todo esto abarca todo el lanzamiento.
Hay un adagio de software, y significa más o menos “Cuanto más tarde se descubre un cambio / error, más cuesta arreglarlo”.
notará que hay una entrega en cada paso del modelo de cascada, por lo tanto, si descubre un problema en los Requisitos cuando está en Diseño, debe dirigirse a las personas que escribieron la Especificación y pedirles que la cambien. Luego rediseña en función de la Especificación.
Cuanto más lejos detecte el problema, menor será el contexto que tienen las personas involucradas en los pasos anteriores (por ejemplo, podrían haber seguido haciendo otras tareas), por lo tanto, la solución lleva más tiempo o es subóptima, por lo tanto, más riesgosa.
En resumen, Waterfall no espera cambios y si los hay serán caros y / o riesgosos.