What are the pros and cons of the waterfall method and what other project management methodology could one consider?
The waterfall methodology is a project management planning process that uses a linear, sequential life cycle; whereby each phase of the project must be completed before the next one starts (Pinto, 2020). In software development, there are six phases: planning (also known as process of gathering requirements for the project), design, implementation, and testing, deployment, and maintence. Designing software using the waterfall planning process works well under certian circumstances, specfically:
- When requirements are fixed and well understood at the very beginning of the project.
- The software project being developed is stable, therefore no changes or modificatons are needed.
- The technology, programming language, and frameworks are well understood
- Resources and expetise are freely available to focus on thier specfic role in their given phase.
- The projects that work well in the waterfall are relatively short.
As one can see, the waterfall methodology works well with projects that are repetitive in nature, levargaging the specialization at each phase of a project. If life were only that simple.
The waterfalll methodology falls short when a project is not fully understoood or set in stone. Based on today’s rapidly evolving competitive arena where new innovations in technology are introduced, the decision to define an unchanging and rigid project scope is highly unlikely. Below, are the conditions for which projects shoud not adopt the waterfall model:
- When the project is prone to changes due to external factors (i.e. consumer trends, innovations in technology, legal constriants)
- When competition is fierce and the likelihood of change is high due to meeting or exceeding consumer expectations
- When the scope of the project is not fully understood or are loosely articulated.
To address the shortcomings of traditional project management methodolgy, newer and much more innovative techniques were adopted. One popular project management methodology is Agile. Agile recognizes the mistake of assuming that once a project is conceptualized and planned, that the project can not simply be executed without change. In the Agile way, a project’s success is amplified by it’s ability to embrace and implement change throuhoug the SDLC, paving the way for adding incremental value, through steadily developing subfeatures or elements in the overall project. In Agile software development (Campbell, 2020):
- Projects are relatively short spanning one to four weeks
- Projects are long enough to provide value but short enough to respond to changes
- Complexity and uncertainty of inefficient and costly traditional approaches are avoided
- Projects are about provding value to customers by listening to their needs and desired features, whereas traditional approches relied on the expertise of the software developer and focused more on detailed product descriptions.
The flexibility leveraged by Agile project management process, especially in software development, creates a process that listens to customers and defines the project’s critical deliverables in terms of features. Whereas in traditional approaches like in the waterfall model, the focus was on a set of clearly defined parameters, and the relationship between customer and developer was clearly defined by rigid expectations. In Agile, the critical nature of the ongoing, closely-linked relationship between the Agile team (the Scrum) and clients must maintain be maintained throughout the entire SDLC process.
Campbell, A. (2020). Agile- Essentials of team and project management: Manifesto for Agile software development. Apple Books.
Pinto, J.K. (2020). Project management: Achieving competitive advanatage (5th Edition). Harlow, UK. Pearson Education Limited.