Si bien se considera anticuado para muchos proyectos debido a su rigidez, su simplicidad radica en su naturaleza lineal y secuencial:
1. Requisitos: Defina todos los requisitos por adelantado.
2. Diseño: Diseñe el sistema en función de los requisitos.
3. Implementación: Escribe el código.
4. Prueba: Prueba el sistema.
5. Implementación: Implementar el sistema.
6. Mantenimiento: Mantener el sistema.
Cada fase se completa antes de que comience la próxima. Hay bucles mínimos de iteración o retroalimentación entre fases. Esto hace que sea fácil de entender y administrar, al menos en teoría, para proyectos muy pequeños y bien definidos. Sin embargo, su inflexibilidad lo hace inadecuado para la mayoría de los escenarios de desarrollo de software modernos.
