Following the waterfall model, the developer moves from one stage to the next in a strictly sequential manner.
First of all, the “requirements definition” phase is absolutely completed, resulting in a list of software requirements. Once the requirements are fully defined, a transition to design takes place, during which documents are created that describe in detail for programmers the method and plan for implementing these requirements.
After the complete completion of the design, the programmers perform the implementation of the resulting project. The next step in the process is the integration of individual components developed by various teams of programmers. After implementation and integration, the product is tested and debugged; At this stage, all the shortcomings of the previous stages of development are eliminated. After that, the software product is implemented and its support is offered – the introduction of new functionalities and the elimination of errors.
Advantages of the waterfall model:
• Full documentation of each stage;
• Clear planning of terms and costs;
• Transparency of processes for the customer;
When to use the waterfall model:
• In projects with clearly defined requirements, for which no changes are envisaged in the development process;
• For projects that migrate from one platform to another. That is, the requirements remain the same, only the system environment and / or programming language changes;
• When the development company is not required to conduct testing – for example, the customer or a third-party firm will be engaged in providing it.
The waterfall model is simple and straightforward; therefore, today the waterfall model is used mainly by large companies for large and complex projects that involve comprehensive risk control.
Waterfall development principles
1) Documents and instructions are important, everything must be recorded.
2) The next stage of work does not begin until the previous one is completed.
3) You cannot skip stages.
4) If the requirements for the product have changed after approval, we rewrite the TOR.
5) You cannot go back to the previous stage to change something.
6) No iteration, there is one general process for creating a product.
7) Identify and fix errors – only at the testing stage.
8) The client does not participate in the creation of the product after the statement of the technical task.
Development using a waterfall model is five strictly sequential steps.
The team collects requirements for a future product. Then he writes a detailed technical assignment, plans a work schedule and possible risks. Proceeds to the next stage only when all the requirements are spelled out and there is a plan. And in the plan – instructions on what to do and when.
The team creates a prototype and prepares design layouts. When it’s ready, the developers connect.
At this stage, the product code is written according to the plan, layouts and requirements. Not a step to the side, everything is clear according to the TK.
The code is ready, testing begins. Problems may arise here. For example, the team will find serious bugs in the code and spend a lot of time fixing them. This is the main disadvantage of the waterfall development model.
Operation and support
The project is handed over to the customer and a predetermined time is monitored so that everything works.
To conclude Waterfall is a methodology where everything is initially thought out and fixed, and this has its advantages. There are projects for which it suits – those in which all the requirements are known in advance and cannot be changed in the course of work and where there is no risk of making a mistake.