There have been a number of criticisms of the standard waterfall model, including
- Problems are not discovered until system testing.
- Requirements must be fixed before the system is designed — requirements evolution makes the development method unstable.
- Design and code work often turn up requirements inconsistencies, missing system components, and unexpected development needs.
- System performance cannot be tested until the system is almost coded; undercapacity may be difficult to correct.
The standard waterfall model is associated with the failure or cancellation of a number of large systems. It can also be very expensive.