Developed in the 1970s, the Waterfall method is the first method of software development.
The first publication of this method is credited to Walter Royce in a 1970 article1. He developed this method which represents his vision of the development of complex software. But, the term Waterfall was only introduced later, in 19762. This is probably the most used method in software development. Depending on the companies and contexts this method has evolved, but initially, Royce had defined a 7-step process that he called « implementation steps to develop complex software to deliver to the client ».
The method is based on a sequential development of activities. At each stage of the process, we have a checklist representing the acceptance criteria to move on to the next step.
The disadvantages of the method
Developed in the 1970s, we understand that what was valid in the context of the time is no longer in the current context. Now everything is going much faster and customers are increasingly asking for specific and tailor-made products. So, software development has evolved a lot and organizational methods of the 70s are no longer efficient enough.
Thus, in a world of flexibility and speed, the Waterfall method has the following disadvantages :
- The immutability of the specifications and the functional needs : in view of the requests of evolutions always more frequent, which will be delivered via the method Waterfall will be partly obsolete at the time of their delivery.
- Feedback too late: we give the customer a whole set, which means that we only have his return after a significant delay.
- Sectorization of stakeholders : teams work in compartmentalized ways and not together. In case of problems, they will incriminate themselves.
- We forget where the added value of the project is and we focus on the strict respect of the specifications. But these are often misunderstood and evolve.
- The method requires to document all the needs and actions. This adds cumbersome processes and makes it more difficult to integrate changes.
1 – W. Royce (1970) – Managing the development of large software systems
2 – T. Bell et A. Thayer (1976) – Software requirements : are they really a problem