Den enklaste modellen inom mjukvaruutveckling är utan tvekan
vattenfallsmodellen .
Även om det anses föråldrat för många projekt på grund av dess styvhet, ligger dess enkelhet i dess linjära, sekventiella natur:
1. Krav: Definiera alla krav på förhand.
2. Design: Designa systemet baserat på kraven.
3. Implementering: Skriv koden.
4. testning: Testa systemet.
5. Distribution: Distribuera systemet.
6. Underhåll: Behålla systemet.
Varje fas är klar innan nästa börjar. Det finns minimal iteration eller återkopplingsslingor mellan faser. Detta gör det enkelt att förstå och hantera, åtminstone i teorin, för mycket små, väl definierade projekt. Emellertid gör dess oflexibilitet det olämpligt för de flesta moderna mjukvaruutvecklingsscenarier.