A couple of weeks ago I had talked about the wide acceptance of the Agile development methodology by enterprises today. However a large number of application development projects undertaken today still follow the older Waterfall approach. Also known as the linear sequential life cycle model, this methodology follows a contiguous approach. Only after the completion of one task, the next one is started.
The most obvious question that arises is why adopt this when an iterative effort gives both developers and the client so much more freedom. In reality most projects are not that complicated. The application developers and client start out with an extremely clear idea of what they want to achieve with the application. Most projects are small with very low chance of any unpredictability. In such a situation, the Waterfall methodology presents as a cheaper and quicker alternative and also requires less resources and effort. This approach comes up with a part of the output at each stage contributing towards higher satisfaction for employees and clients alike. The project is carried out with a fixed schedule and stringent deadlines. Project management becomes easy where the progress of each part can be monitored. Most applications are not about fancy ideas and complex implementation, they are often about getting the small simple aspects completely right. Waterfall methodology enables the creation of a simple and elegant application.
While it is still the most prevalent development methodology, it isn’t the greatest way to go about designing complicated apps. You have to be extremely sure about what you want from the application at the beginning of development itself. This methodology should be avoided while developing expensive apps or ones where you would need to constantly update to stay relevant. This method often leaves the client with little say about improvements and changes once development has started. As redoing portions of the application is expensive and often not feasible, developers often abandon projects when it doesn’t shape up right.
This is the perfect method to develop applications which are straight forward and simple. It is a time tested and reliable methodology. However, considering the direction in which management is shifting today and with application development becoming an iterative process rather than a linear one, it might soon become absolute.