Standard ‘Waterfall’ methodology
In this section we will cover the standard project management methodology referred to as ‘Waterfall’, explain the parameters of each phase and discuss its advantages and disadvantages.
Waterfall methodology, as it is primarily referred to in SDLC (software development life cycle) is a systematic approach to project management. It follows a series of phases in a sequential downward manner, hence the name ‘waterfall.’ As Figure 1 illustrates, the phases of the Waterfall cycle start with Requirements, followed by Design, Implementation, Verification and Maintenance.
The background of the Waterfall methodology is not clearly defined, but most of the references lead to Winston Royce as the pioneer of this structure in the ‘70s. There is certain contradiction to Royce’ original design of this methodology, as he argued the concept of the Waterfall methodology himself to allow for repetition, which is not the primary premise of Waterfall, since it requires a sequential approach. Later in this book we will cover other methodologies which promote the iterative approach to project management versus to what Waterfall methodology proclaims to be the most effective model. In essence, those teams that follow Waterfall model are required to complete first phase and obtain sign off before proceeding to the next stage. Various project team members work on these project phases and one stage cannot begin until the previous one is completed. It is important to examine each of these phases.
Waterfall stages vary from company to company but in general they carry the same purpose. To better illustrate these phases, let’s first outline them:
- Requirements Definition and Analysis
- High Level and Technical Design
- Development, Construction and Implementation
- Testing and Quality Control
- Integration and Rollout
- Maintenance and Support
Advantages of Waterfall Methodology
Waterfall methodology offers many advantages to other more modern ways of managing projects. It is important to note that there is no right or wrong methodology but rather a right or wrong environment for a particular methodology. To avoid any biased opinions, we will attempt to highlight equal number of advantages and disadvantages. Let’s review the most effective uses and advantages of this methodology which would help you determine how and when to adapt it:
- Emphasis on proper and detailed documentation as compared to other methodologies. Each phase of the project carries a set of documented deliverables which must be properly review and approved. Moreover, detailed documentation provides effective opportunities for project hand-off and transition, especially when new members are brought into the team once the project is already under way.
- Waterfall methodology is very structured and follows a concrete step of steps and stages. This makes it easier to comprehend, implement and follow. Moreover, it makes it easier for Project Managers to track the progress of the project by measuring the established milestones.
Errors and Gaps
- Staged approach and detailed documentation provide a more effective platform for capturing errors and flaws before any development starts. Since the requirements and design documentation go through several iterations of reviews and signoffs, chances are much greater that someone will uncover any errors that may need to be addressed before the integration stage
Disadvantages of Waterfall Methodology
Waterfall methodology may be a great fit for certain organizational environments but there are several generic disadvantages that need to be pointed out:
Lack of Flexibility and Adaptability
- Requirements change all the time. Customers change their minds, they forget to include certain elements or other external factors impact the earlier documented requirements and require change. Waterfall methodology lacks significant flexibility and adaptability to changes once the process had started, especially when one stage has been signed off.
Lengthy Durations and No Deliverables for Long Periods
- Waterfall methodology is rather unsuitable for smaller projects. It takes long time to develop and document detailed documentation, obtain sign offs and agree to proceed to the next stage. It is also a major disadvantage when the customer does not see any deliverables for long periods of time, usually towards the end of the project. This could lead to needed re-work.
Ineffective Allocation of Time
- Since each stages is led by a particular project team member, other team groups (although somewhat involved during earlier stages) are required to wait until the previous stage is completed. For instance, developers are mostly remain idle until all of the requirements are fully document and approved and that could be quite expensive for the organization.