This model is a sequential style of software development that breaks down project activities into linear stages. These stages are followed successively, where each project phase depends on the deliverables of the previous one, hence the concept of a ‘waterfall’. There tends to be a series of initial phases of analysis and design to establish the full scope of work, before moving on to the build phase, system and user testing, acceptance, go live and maintenance. In between phases, a deliverable is expected and/or a document is signed off. All phases are passed through and completed only once, so all requirements are gathered as much as possible at the start to provide the information in creating the scope of work, plans, schedules, budget, and resources. This type of development is driven by clear planning and delivery milestones, so any changes after the project has started would offset the original plan and require a restart.
This linear methodology has benefits – it approaches the design of the system as a whole; it has a defined scope of work which means that there is clarity and transparency on development resource for the developer and subsequently cost for the customer; progress can be measured in terms of milestones and projects should stay on track in terms of delivery dates.
However, for others (both customers and developers alike) this approach is too structured, defined requirements can stifle innovation, it does not readily permit change and flexibility and as a result, particularly because testing only comes at the end of the project, the development runs the risk of becoming governed by the process rather than the customer’s wishes. Also, there is a danger that the development can end up costing more than originally envisaged; even though stakeholders may be confident that they know exactly what they require, their needs may change throughout the development process. By defining pre-requisites in the beginning, this makes adjusting to new changes more difficult to manage and implement and overall more costly. In the Waterfall methodology, all requirements must be completely documented and approved before any development can occur. This means that a lot of the work is done before moving onto the building phase and of course, this can either be beneficial or detrimental to the project’s success.