• Post author:
  • Reading time:4 mins read
You are currently viewing 7 Risks in Waterfall Development

Waterfall development is a popular phased approach to product development and typically involves 5 stages of requirements gathering, design, development or coding, testing, and delivery or deployment. Let’s use an example of building house:

  1. Requirements is when you sit with the architect and tell the architect what kind of house you like. How many bedrooms, bathrooms, floors, etc…
  2. Design is when the architect takes the requirements and creates a blueprint of what your house is going to look like.
  3. Development is when the contractor builds the house according to the blueprint or design defined by the architect.
  4. Testing is when an inspector comes in and verifies that the house is a quality house and built according to code.
  5. Delivery is when you get the keys to the house and can move in and start living in the house.

This phased approach works well when requirements are known and there is very little uncertainty in what needs to get done or in how it will get done. There is usually a project manager ensuring that scope is met as per the requirements, there is no slippage in schedule, there are no cost overruns, and the work meets the desired level of quality.

There are however risks involved in building products in this manner. These include:

  1. Late delivery of value: It usually takes years to go from requirements to delivery and until we get to delivery, we have not delivered any value. We spend a lot of time doing great work but without delivering anything of value to the customer.
  2. Late discovery of bugs: Issues or bugs are not discovered until the testing phase or even after deployment. Discovering issues this late in development provides little time to fix them which end up delaying delivery.
  3. Cascading delays: One phase cannot start before the previous phase ends. If there is a delay in any one phase, all other remaining phases get delayed.
  4. Miscommunication dues to silos: Typically each phase is handled by a different team and teams communicate with each other via hand-offs of artifacts like requirement documents, design documents, code, and test plans. Very little collaboration happens between teams and this leads to delays, bottlenecks and miscommunication.
  5. Change is hard: Once we are past requirements, making changes becomes time consuming and expensive as any new changes have to cycle through all the phases again from the beginning.
  6. Final deliverable does not meet expectations: Once we are past the requirements phase, there is very little ongoing interaction with the stakeholders and little to no ongoing feedback. The stakeholders or customer do not see the product until the testing phase or deployment phase and the final product might not meet their expectations due to the lack of feedback throughout the process.
  7. Outdated Deliverable: Because a phased approach typically takes years to complete, by the time the product is delivered, technology or business processes might have changed, and the product is already outdated.