WHAT IS WATERFALL?
Waterfall is a classic software development life cycle, which is liner and sequential in nature, it has 5 main phases (Requirement Analysis, Design, Development, Test, Release), each of which has its distinct goals. In Waterfall you start the life cycle phases one at a time, each phase output is an input for the next phase. You can find more details about Waterfall here.
WHAT IS SCRUM?
Scrum is a lightweight agile project management framework mainly used for software development. It describes an iterative and incremental approach for project work. You can find more details about Scrum here.
WHAT MAKES WATERFALL SOFTWARE DEVELOPMENT MODEL FAIL IN MANY WAYS?
Studies have shown that in over 75% of the investigated and failed software projects, the usage of the Waterfall methodology was one of the key factors of failure. But why?
Phases in the Classical Waterfall Software Development Model
As shown above, when deploying the waterfall methodology there is a strict sequential chain of the different project phases. A previous phase has to be completed before starting the next phase. Going back is in most cases difficult, costly, frustrating to the team and time consuming. The project timeline is planned at the start. A releasable product is delivered only at the end of the project timeline. If one phase is delayed all other phases are also delayed. To avoid this users of the waterfall methodology normally try to anticipate all possibilities beforehand. This means that in one of the earliest phases of the project they try to define all requirements as fine grained and complete as possible. However, requirement definition in such an early phase of the project is often very difficult and therefore many requirements change (or should change) throughout the project. Studies have shown that in larger and complex projects about 60% of the initial requirements are changed throughout the project. Other requirements are implemented as defined but are not really needed by the customer and consume valuable time that could have been better used to implement functionality with a higher added value for the customer. The separation into different project phases force users to estimate each phase separately. The problem is that most of these phases are normally not separate. They are working together and in parallel. The waterfall approach for developing software can be used for implementing small and simple projects. But for bigger and more complex projects it can be said that this approach is highly risky, often more costly and generally less efficient than Scrum Project Management Framework.
WHAT MAKES THE SCRUM FRAMEWORK SUCCEEDS?
The Scrum framework changes the classical triangle of project management. The compromise is no longer between Time, Budget and Quality. It is now becoming the triangle of Budget, Time and Functionality.
Triangle of Project Management
Quality is no longer an option. In Scrum the factors that define when a feature is complete (in terms of quality, required testing, documentation etc.) are defined by the Definition Of Done (DoD) right at the start of the project. No incomplete or untested feature will be released to the customer. Now the functionality to implement will be defined throughout the course of the project and implemented incrementally. This incremental development allows to remain flexible and to change in a controlled manner without the additional costs and risks of jeopardizing large chunks of previous work. At the end of each increment (Sprint) a result is available that can be shown and discussed with the customer to get and incorporate feedback as soon as possible. As this flexibility does not only apply to software requirements, but also to the operational processes themselves, the Scrum Framework allows optimizing resources usage (time, budget) and minimizes waste. Studies have shown that Scrum has following positive effects in practice:
- Increased productivity
- Better product quality
- Reduced or stable project costs after introducing agile methods
- Higher customer satisfaction
- Increased satisfaction and motivation of the employees
So even if introducing and using the Scrum Framework is sometimes non-trivial, the flexible and iterative approach of the Scrum Framework eases handling of complexity and better copes with the fact of ever-changing customer and business requirements. Thus, Scrum is in most cases a better alternative to the classical methodologies.