Waterfall Methodology in Project Management
How to plan & implement every phase of the waterfall model.
ProjectManager.com has the robust project management tools you need to successfully manage your waterfall projects. Try our online Gantt charts, and start planning your projects today.
What is Waterfall Methodology?
Waterfall methodology is a linear project management approach, where stakeholder and customer requirements are gathered at the beginning of the project, and then a sequential project plan is created to accommodate those requirements. The waterfall approach was first conceived by Winston W. Royce in 1970, and it was quickly adopted in a variety of industries due to its logical sequencing and ease of implementation.
Some of the industries that regularly use the waterfall method include construction, IT and software development. However, the term “waterfall” is usually used in a software context, so the rest of this post will concern the waterfall model as it pertains to software development.
The Phases of the Waterfall Model
The waterfall model is a project management methodology that has at least five to seven phases that follow in strict linear order, where a phase can’t begin until the previous phase has been completed. The specific names of the phases vary, but they were originally defined by Royce in the following way:
- Requirements: The key aspect of waterfall is that all customer requirements are gathered at the beginning of the project, allowing every other phase to be planned without further customer involvement until the product is complete. It is assumed that all requirements can be gathered at this phase.
- Design: The design phase is best broken up into logical design and physical design subphases. The logical design subphase is when possible solutions are brainstormed and theorized. The physical design subphase is when those theoretical ideas and schemas are made into concrete specifications.
- Implementation: The implementation phase is when programmers assimilate the requirements and specifications from the previous phases and produce actual code.
- Verification: This phase is when the customer reviews the product to make sure that it meets the requirements laid out at the beginning of the project. This is done by releasing a completed product to the customer.
- Maintenance: The customer is regularly using the product during the maintenance phase, discovering bugs, inadequate features and other errors that occurred during production. The production team applies these fixes as necessary until the customer is satisfied.
Waterfall vs. Agile
It can be easier to understand waterfall when you compare it to another software development process called Agile. Waterfall and Agile are two very different project management methodologies, but both are equally valid depending on the context of the project.
Waterfall Project Management
If the waterfall model is to be executed formally, each the above phases have to executed in a linear fashion. Meaning, each phase has to be completed before the next phase can begin, and phases are never repeated, unless there is a massive failure that comes to light in the verification or maintenance phase.
Furthermore, each phase is discrete and pretty much exists in isolation. This is especially true with the requirements phase. Once the customer’s requirements are collected, the customers cease to play any role in the actual development of the software.
Agile Project Management
Agile differs greatly in these two areas, linear action and customer involvement. Agile is a nimble, iterative process where the product is delivered in stages to the customer for feedback and review.
Instead of having everything planned out by milestones, such as in waterfall, agile operates in “sprints” where prioritized tasks are completed in a short window, like 2-weeks. These prioritized tasks are fluid and appear based on the success of previous sprints and customer feedback, rather than having all tasks prioritized at the onset in the requirements phase, like in waterfall.
Understanding the Difference Between Waterfall & Agile
Just remember that waterfall is a linear plan. Everything is mapped out ahead of time and customers interact only at the beginning and at the end of the project. Agile, on the other hand, is an iterative process, where new priorities and requirements are injected into the project after sprints and customer feedback sessions.