Also referred to as the linear-sequential life-cycle model, the Waterfall model defined early 1957, is one of the main reasons why 80% of investigated software models fail. In “The Waterfall” approach, the whole process of software development is divided into separate chained phases. All these phases below are cascaded and the next phase will wait the previous one to finish so it can start.
-Requirement Gathering and analysis
-Integration and Testing
-Deployment of system
Many reasons lead to this failure let’s state and discuss them in the points below:
-The project timeframe is defined in advance at the beginning of the project. Teams usually try to anticipate all scenarios beforehand during the “Requirements gathering and Analysis” phase. However as we all know, requirements are prone to change throughout the project. Consumed valuable time, could have been better used to implement functionality with a higher added value for the business.
-The deliverable product will be released only at the end of the project. So if the project is large and complex it might take years to have a working solution, at that time the market can change and the client might not need it anymore.
-The client has no idea about what is happening during that time(from system design up to the delivery phase), almost zero interaction betweeen him and the development team. Sometimes the deliverable is not what the client really asked for.
-The devil is in the detail, It is very hard to measure the team progress within stages. The “Requirement gathering” phase can take up to three month sometimes before any code is written. Then analysis is double that time, this is where all the requirements are captured and documented in the “software requirements specification (SRS)” document. Not to mention the implementation and testing phase.
-A strict sequential chain of phases needs to be followed when deploying. Most of the process phases are inseparable and work together in parallel. If any issue or delay occurs during the execution, the whole project will be delayed. Estimating each phase seperately is a bad practice.
-Adjusting scope during the life cycle can end a project. Change on projects is inevitable, so the possibility for scope creep is inevitable – Richard Larson and Elizabeth Larson. Dynamics change and managing change well is one of the most important things for controlling scope of a project. Scope cannot always be restricted and getting people on board is one of the key challenges for even the most successful project managers.
-Fixing a bug at latest stages of this methodology is very expensive. The team will have to move the issue back to the requirements phase and go down the whole cycle again which is very risky especially is the issue is related to a core functionality. Integration is done as a “big-bang. at the very end, which doesn’t allow identifying any technological or business bottleneck or challenges early.
In a nutshell, “The Waterfall” methodology is good for developing small and simple projects. It is highly risky for large projects, costly for complex ones and less effective than Agile Project Management Framework.