The waterfall model of development process was first introduced by Winston Royce in 1970 and has been widely used in IT industry ever since. It is considered the classic approach to software development. The waterfall model is also called linear-sequential life cycle, since it involves sequential series of stages that start from the concept and system requirements analysis, through design, implementation, testing, and finishing with product release and maintenance. After the completion of each stage and approval from the client, service provider smoothly moves to the next stage.
Waterfall approach differs from the agile development model, because it demands fully described product documentation before any code is even written. Thus waterfall methodology suits short-term and small projects that have requirements to features, design, and functionality fully specified and understood by clients and service provider.
Waterfall model has clear goals for each stage of development. Schedule must provide deadlines and workload for each stage. The resulting departmentalization and managerial control are ensured by the strictness of the model – each stage has specific deliverables and review process.
Total cost, timeline, and size of the project may be accurately estimated when the product specifics are unambiguously defined. Clients know what to expect. This model enforces discipline and structure. Every stage has predicted start and end point, so it is easy to measure progress by clearly defined milestones. Stages are processed and completed one at a time. Design errors are captured before any software is written saving time during the implementation stage. Meticulous documentation allows to understand product more, even if development team will be dispersed in future.
Disadvantage of this model is that it depends on the level of clearness of client’s requirements. There is no place for any changes, reflection, or revision during the development cycle. If a requirement error or change is found, or a change needs to be made, the project can’t just go back to the previous (approved) stage and has to start from the beginning with all new code.
Though waterfall model is often criticized, it still can be successfully applied to certain types of projects and with proper implementation and management can be very time and cost effective. Quintagroup uses this approach for small scope projects, like Plone themes development, Web design, Plone add-ons, simple Python solutions, etc., though in most use cases we prefer agile methodology.