Skip to main content

Introduction

The Waterfall model is a sequential process where the development is divided into phases. Each phase must be completed before the next phase can begin, without the possibility for overlapping phases. In the Waterfall model, the result of one phase impacts the next, meaning that the next phase can only commence when the previous phase is complete. The name Waterfall derives from the design of the model, a steady flowing process resembling a waterfall.

The Waterfall model is a linear approach, in that it moves from one phase to another without revisiting previous phases. Phases cannot be veered from either, so think of the Waterfall model as building a house. You start at the bottom by laying the foundations and work your way through each phase until finally, you are putting on the roof. Importantly, you cannot decide to change the foundation of the house (project) when the roof is being put on. Returning to a previous phase would require an overhaul of the entire house (project), not just the foundations.

Sequential Phases

  • Requirements: Detailed requirements of the potential product are gathered from the client.
  • System Design: The requirements obtained in phase 1 are studied allowing for decisions to be made relating to specifying hardware choices, programming languages, database design and other technical details.
  • Implementation: The product is built using the input from the previous phase.
  • Testing: The product is tested to verify the requirements and specification of the client is being met.
  • Deployment of System: The product is deployed into the market.
  • Maintenance: Modifications can now be made to the product. Any modifications arise due to requirement changes or defects uncovered.

Pros vs Cons

Pros icon

Pros

  • Each phase must be completed before moving onto the next
  • Suited for small projects with distinct requirements
  • Intricate documentation is required at every phase
  • Once started, there is minimal client interaction and the project is dependent on the project team
  • Changes are made during the development process
Cons icon

Cons

  • Defects can only be fixed during the phase
  • Not suited for projects where requirements are likely to change
  • Testing documentation occupies a lot of time
  • Client feedback is not ongoing
  • Problems can arise from changes made in the completed product

Agile vs Waterfall

Agile Methodology icon

Agile

  • Agile testing is generally unstructured
  • Suited for small projects
  • Defects can be fixed during the project lifecycle
  • Less documentation
  • Each iteration has a dedicated testing phase. Regression tests can be run based on the integration of new functions
  • Testers and developers work closely together
  • User acceptance is undertaken after each sprint
  • Testers and developers communicate plan and analyse requirements
Waterfall Model icon

Waterfall

  • The testing process is more structured
  • Waterfall is suitable for a variety of projects
  • Testing only occurs at the end of development, the process repeats for any changes
  • Requires intricate documentation
  • Testing only begins after the development phase
  • Testers and developers work separately
  • User acceptance can only commence at the end of the project
  • Minimal communication between testers and developers. Developers are not involved in planning or requirement analysis
Return to the top
User Sitemap