The waterfall model is a software development model first proposed in 1970 by W. W. Royce, in which development is seen as flowing steadily through the phases of requirements analysis, design, implementation, testing (validation), integration, and maintenance.
In the original article, Royce advocated using the model repeatedly, in an iterative way. However, most people do not know that and some have discredited it for use as a Real World process. In practice, the process rarely proceeds in a purely linear fashion. Iterations, by going back to or adapting results of the precedent stage, are common.
Table of contents
Analysis; Design; Coding; Testing; Maintenance.
- Good progress tracking due to clear development stages.
- Milestones and deliverables can be clearly identified.
- Project Management and control is facilitated by the need to complete each stage before moving to the next.
- Inflexible partitioning of the project into distinct stages makes it difficult to respond to changing customer requirements.
- No formal means of exercising management control over a project and planning control and risk management are not covered within the model itself.
- The lifecycle can take so long that the original requirements may no longer be valid by the time the system is implemented.
- Estimating time and costs is difficult for each stage.