The main rule of Waterfall is that the next stage cannot be started until the previous one is completed. In this case, arbitrary transitions forward or backward are not allowed, and the steps do not overlap. This is the main difference between the waterfall methodology and other flexible processes, such as Agile, DSDM, Scrum, FDD. The workflow of Waterfall is based on a ‘cascade’. Let’s have a look at it.
The emergence of an idea and its discussion
At this stage, there is no question of development as such, just a certain idea that has appeared that is interesting to one or several people is considered.
Requirements analysis
The stage at which the customer’s requirements for the project are described in the smallest detail, it is also decided in what ways the goal will be achieved, the deadlines for the completion of work, and the financial component are indicated. At the same time, a certain amount of time and money is usually laid for each link of work. At the end of the analysis of the requirements, there is TOR for programmers and a budget.
Software design
At this stage, specific steps are taken:
-
programming platform is selected (Python, PHP, JS, etc.);
-
technical details are specified (for example, how the service or product will interact with the servers, whether they will use the API, what will be the logic of the external and internal interface, etc.);
-
security issues of the project are being resolved (for example, will HTTPS, SSL encryption, etc.);
-
describes the roles of users of the software product (administrator, client, manager, etc.);
-
the issues of reliability, performance, and further technical support of the target product are finalized;
-
a specific team is being formed.
Software development
The stage at which the code is written matches the documentation developed earlier.
Software Testing
The finished version of the product is tested by specialists in conditions close to combat, bugs are identified and fixed. The most disastrous software for the operation as a whole – are fixed, the less critical – may not be fixed if there is no time or budget is exhausted.
Software technical support
A suitable software product begins to be used for its intended purpose and to provide its support. That is: monitor performance, eliminate operational disruptions, plan functionality expansion based on feedback from users.