First presented by Herbert D. Benington at the Symposium on Advanced Programming Methods for Digital computers in 1956, the original and most commonly used software development life cycle model, the Waterfall Model, has withstood the test of time. Referred to as the pioneer of the SDLC processes, it has outlasted nearly seven decades of newly invented models, as well as evolved models of itself.
So, what is this model and why is it so great?
The waterfall model is a sequential model in which the activity of the software development process is divided into separate phases each with its tasks and objectives. It is a top-down model that also advances in the progression of the project. For this reason, a graph of the model goes down and to the right, cascading like a ‘waterfall.’ New phases do not begin until you complete the current step, and there is no overlap or regression to previous phases.
Below are the stages, listed in sequential order:
- Requirement Analysis: Requirements are listed and analyzed, and the development team assesses their testability.
- System Design: You document the design and capture the hardware and software requirements.
- Implementation: Programs and code are created per design and codes are unit tested.
- System Testing: Unit tested code is integrated to make sure it is executed as designed, and the functional and nonfunctional testing is performed to make sure the system meets the requirements, anomalies are reported, and testing progress is tracked and reported.
- System Deployment: Once the environment is up, there is no severity that one of the defects will open, the test exit criteria are met, and the application is deployed. You can now perform sanity checks.
- System Maintenance: The application should now be up and running. Defects are noted and fixed, and code is updated accordingly.
When should waterfall be used?
- When all of the project requirements are stable, clearly understood, and will not change throughout the process.
- When the application is small and brief, and does not need a prototype or strong risk management.
- When the environment is stable.
- When the tools and technology being used are stable, not dynamic, and well understood by the development team.
- When the development team is well trained and will be readily available throughout the project.
Why is the waterfall model so great?
- The model is simple and easy to use.
- With no overlap or regression, each phase must be defined, providing an incentive to plan well from the start.
- Because the stages are rigid and precise, the phases are done one at a time. This makes a given project organized and easy to maintain.
- The entry and exit criteria are well defined, so it is easy to proceed with systematic quality.
- Results are well documented.
Even in the arrival of Agile, and other software development life cycle models, the Waterfall Model continues to be a reliable model for smaller projects, with straightforward and testable requirements, yielding great results repeatedly.
Related Content: Agile VS Waterfall: An In-Depth Look