Waterfall (predictive) model
The waterfall model, or aside of the software development environment commonly called predictive model, refers to a technical approach to plan and breakdown projects[1]. Originally intended for software development, this method has been evolved and assimilated to different scenarios including distinctive styles of project management. Today’s definition of the waterfall model refers to linear sequential planning of steps or phases, but over time various adjustments, extension and further developments to the original model have been made. In the context of project management, it is often referred to as the predictive or planned approach because of the high level of detailed and advanced planning for the complete project scope[1].
Contents |
History and Evolution of the Model
Originally designed to structure the increasing complexity in software development, the first definition of the different phases for the program production life cycle have been described in 1956 by Herbert D. Benington based on a hardware development approach [2]. After publication of similar models, the first formal description for the waterfall model is based on Beningtons model and has been published by Winston W. Royce in 1970, which became popular as the main reference today[3]. However, his interpretation formed the inclusion of feedback cycles compared to the first expression by Benington. In 1976, Thomas E. Bell and T. A. Thayer used the term “waterfall” for the first time when referring to Royce paper[4]. Later in 1983, Benington republished his paper and clarified that the phases were not intended to be used in a non-iterative or strict top-down fashion[5].
As described by Royce, there are inefficiencies in the later waterfall model, due to the lack of verification. Therefore, each step should refer to the previous one and verify their results. At that time the model was based on 7 phases: System requirements, software requirements, analysis, program design, coding, testing and operations [3]. The fast-changing environment of software development and increasing complexity continuously evolved the model and the need for a more iterative behavior increased, which resulted in today’s adaptive and agile approaches. Today, different variations and extensions of the model can be found in literature. Some variations contain extensions to the original model such as cascades, in which not only a top-down direction is intended, also a bottom-up verification after each step is anticipated as described by Barry W. Boehm in 1988 [6]. Therefore, applications of the original waterfall model in other areas than software development changed the model to the more generic stages of feasibility, design, build, test, deploy and close[1]. The basic model used today for project planning contains 5 stages, while the model prevailed used in software development uses the 7-stage variant of the waterfall model[7].
The Model
Depending on the source, different variations of models with different phases can be found in literature. The model primary used in project management contains 6 phases and is based on the four-step life cycle: Initiation, planning, execution and closure. For each phase there are defined start and ending conditions as well as output from previous phases is used in the subsequent phase. After each step, the progress gets documented. Furthermore, each phase is finalized with a stage-gate process. Based on this process the following phase can only be started if the previous stage and their defined goals and criteria have been met. The 6 generic phases are:
Requirements
Variants
Application in Project Management
Examples
Advantages
Limitations
Connections
Annotated Bibliography
Project Management Institute. (2021). The Standard for Project Management and a Guide to the Project Management Body of Knowledge (PMBOK Guide).
References
- ↑ 1.0 1.1 1.2 Project Management Institute. (2021). The Standard for Project Management and a Guide to the Project Management Body of Knowledge (PMBOK Guide). Project Management Institute, Incorporated.
- ↑ Benington, H. D. (1983). Production of Large Computer Programs. IEEE Annals of the History of Computing, 5(4), 350–361. https://doi.org/10.1109/mahc.1983.10102.
- ↑ 3.0 3.1 Royce, W. W. (1987, March). Managing the development of large software systems: concepts and techniques. In Proceedings of the 9th international conference on Software Engineering (pp. 328-338).
- ↑ Bell, T. E., & Thayer, T. A. (1976, October). Software requirements: Are they really a problem?. In Proceedings of the 2nd international conference on Software engineering (pp. 61-68).
- ↑ Kneuper, R. (2017). Sixty Years of Software Development Life Cycle Models. IEEE Annals of the History of Computing, 39(3), 41–54. https://doi.org/10.1109/mahc.2017.3481346.
- ↑ Boehm, B. W. (1988). A spiral model of software development and enhancement. Computer, 21(5), 61–72. https://doi.org/10.1109/2.59.
- ↑ International Organization for Standardization. (2020). Project, program and portfolio management - Guidance on project management.(ISO 21502:2020).