Monday, 2 May 2022

Waterfall (cascade) Model - Waterfall Development Methodology

Waterfall, or waterfall model, is a classic in the world of product development. It has been around for more than half a century. During this time, it has proven its effectiveness, but has acquired powerful competitors. The main one is flexible Agile, which is actively trying to replace the sequential cascade. Is it time to give up the waterfall or will the classics never become obsolete? 

 

We understand the pros and cons of Waterfall and talk about projects in which the waterfall still has no equal.  Waterfall's methodology is the oldest of all. It was first outlined by American computer scientist Winston Walker Royce in 1970 in response to the need to manage an increasingly complex software development process. Since then, it has become widespread, especially in the field of software.


The waterfall model is characterized by consistency. Beyond that, it's heavily demand-driven.
It is necessary to have an absolutely clear idea of what the project needs in order to continue working with the Waterfall methodology.



When the project is already in development, you will not be able to adjust its course.


Waterfall's methodology is divided into three separate phases. First, you need to collect and analyze the requirements, then develop a solution (and approach), implement the solution, and fix the problems if they appear.


Each stage of this process is autonomous. To move on to the next step, you must complete the previous step.


The above applies to software development. For a quick start to planning, use the ready-made Gantt chart template for software development.


In other projects, such as creative ones, the stages will be different, but the approach will remain the same.


What is Waterfall and who invented it


Waterfall is a classic model of product development. American computer scientist Winston Walker Royce invented and described it back in 1970, and in 1976 scientists Thomas Bell and Thomas Thayer gave it its name. At first, Waterfall was used in the creation of any software, but then the Agile model appeared and the waterfall dried up. Now the cascade model is used in the aircraft industry, military or space industries, medicine and the financial sector. Waterfall is the place there, because these areas need clearly built processes and deadlines, and this is the essence of the cascade. Hence the comparison with the waterfall: each stage of creating a product, like a stream of water, continues the previous one and cannot begin until the last one is completed.

Principles of the Waterfall Development Model

1.    Documents and instructions are important, everything must be recorded.
2.    The next stage of work does not begin until the previous one is finished.
3.    You can't skip steps.
4.    If the requirements for the product have changed after approval, we rewrite the TK.
5.    You can't go back to the previous stage to change something.
6.    There are no iterations, there is one common process of creating a product.
7.    Identify and fix bugs – only during the testing phase.
8.    The client does not participate in the creation of the product after the production of the TK.


Pros and cons of Waterfall


Pros:


•  The presence of instructions and rules throughout the process. The work begins with a detailed analysis of the customer's requirements and how the project will be implemented. Plans, stages and processes are approved in advance, recorded in documents and do not cause questions. The performer just needs to follow them.
•  Certainty in timing and budget. The cost of the product and the deadlines for the delivery of the project are calculated and approved at the very beginning and do not change in the process.
•  No additional costs for communication in the team. Even if a new developer or tester comes, you will understand the task and get to work quickly: for all processes there are described rules.
 

Cons:


•  Lack of flexibility. It is impossible to foresee all the problems in the project in advance. Due to the rigid sequence of stages, the shortcomings will become known only at the end of the project, you will have to make additional iterations and start work anew, and this is a new cost and extra working hours.
•  The customer is not allowed before development and testing. He cannot comment on mockups or prototypes and only sees the result at the end of the project. If the requirements or conditions have changed, it is impossible to take this into account in advance.
•  Problems only pop up when testing. It is impossible to do part of the work and immediately test or combine development and testing to find vulnerabilities. Testing begins after the end of development, so often the shortcomings are discovered too late.


According to Waterfall, work on the project should go in several stages, following each other, from the first to the last. Their number from project to project, from scheme to scheme may vary, but the essence is the same.


What stages does Waterfall consist of?


Walker Royce came up with the waterfall cycles 50 years ago, and they haven't changed since. In addition, the stages of creating a project always go in the same sequence and you can not skip any of them.
•    Analytics. The longest stage. The contractor discusses the product with the customer, receives requirements, prescribes and approves plans, goals and budget, work schedules, processes, risks. After that, you need to draw up a technical task and instructions. It is impossible to deviate from them at the next stages.
•    Projection. At this stage, a software prototype is created. You also need to choose a platform for programming and approve roles in the team.
•    Development. Here it is necessary to write the product code clearly according to the technical task.
•    Testing. At this stage, check the compliance of the code with the technical task.
•    Exploitation. The contractor produces the product and coordinates it with the customer. After that, you need to analyze the result, collect feedback and specify critical bugs. If there are a lot of them, the whole process will have to be started anew.
•    Support. At the final stage, it remains for the performer to maintain operability, eliminate failures and collect feedback from users in order to expand or replace the functionality.

Advantages of waterfall model


By spending time in the early stages of project development, managers create conditions for the timely fulfillment of requirements. This allows you to save time and effort on correcting shortcomings and solving problems in the future.
Thus, the Waterfall methodology has a number of advantages:
•    Easy to use
This model is easy to understand and use. The division into stages is quite intuitive, it is easy to master it regardless of experience.
•    Structure
The rigidity of waterfall's methodology is both a disadvantage and a clear advantage. A clear division into stages allows you to organize and distribute the work. Since there is no going back, it is necessary to perfectly cope with the implementation of each stage, which often allows you to achieve better results.
•    Documentation
 

Because there is a lot of focus on collecting and understanding requirements, the Waterfall model relies heavily on documentation. This makes it easier for new resources to join and start working on a project.


Disadvantages of waterfall model


•    Increased risk
 

The rigidity of the methodology means that if you find an error or need to make changes, you will have to start the project over. This means that you may not complete the project on time.


•    Complexity of the first stage
 

Waterfall's entire approach depends on how correctly you understand and analyze the requirements. If you fail to do this or if the requirements change, you will have to start over. Therefore, this management methodology is not suitable for complex long-term projects.
For which projects Waterfall is best suited


Waterfall's management methodology is often used in software development. It is best suited for:


•    Short simple projects.
•    Projects with clearly defined requirements.
•    Projects that change resources that depend on detailed documentation.


Conclusion


Waterfall is a methodology where everything is initially thought out and fixed, and this has its advantages. There are projects for which it is suitable – those in which all the requirements are known in advance and cannot change in the course of work and where there is no risk of making a mistake.
In Digital, this is rare, so teams add agile practices to the waterfall model: for example, they check the product for compliance with the requirements after each stage of work, and not at the very end.


No comments:

Post a Comment