If we talk about project development approaches we can highlight these two: Agile and Waterfall. These two development models are applied, not only during software development, but also used for solving certain complex programming tasks serving to reach set up goals. It is important to decide in the initial stage which approach will be used.
For example, if a person wants to climb Everest Mountain he would need two years of preparation to learn many successive steps which he does not know from the beginning.
So, for any project it is necessary to understand:
- Which step sequence takes place
- Whether we are able to forecast everything in advance
- The degree of possible changes and variations in the process. If an action plan is clear and a chance that nothing in the process will change is high, then the desired goal is reached without any difficulties. On the contrary, it is necessary to have a complete understanding of how to make certain changes in the process and how to work with these changes.
Can you imagine any real life situation where there is a big and very complex project, but it’s not clear if it has a solution and how much time the solving would take?
In the programming, the final goal is clear and understood, but there is a series of changes happening in the process of development — predictable and unpredictable.
For example, rocket construction takes place based on two concepts:
- As much as possible to calculate everything in advance, aim and shoot hoping that a rocket would hit the target;
- To make a controllable rocket able to adjust its direction during the flight, then a chance of hitting a target is higher.
In development, everything is the same. The only difference is that a specialized terminology which scares everyone was invented, but it is rooted in common sense.
Waterfall project management is «as much as possible to calculate everything in advance, aim, shoot.» This is the same as the first paradigm of rocket construction. Developers operate within certain time frames, let’s say, more than three months or about half a year. It means that the Waterfall project approach implies there is a development stages cycle which does not allow any changes.
Agile project management allows the correction of tasks and to make changes in the process of development. This approach is more flexible, allowing the client to evaluate the result of work after completion of short sprint distances.
In big projects Agile and Waterfall approaches complement each other.
However, there are cases when a border between these two development approaches gets fuzzy. For example, at a sprint run during a certain period of time. When there is a precise plan of clear actions, a Waterfall project management is applied.
To avoid certain Client’s risks and in order to involve him in the working process, one-two-week sprints are set up. However, if we apply the Waterfall approach during half a year, then there are big risks in case the external context of the project would change.
Big projects should be planned out the way that their development could be carried out by using weekly sprints. Having finished those, there would be room to correct any mistakes which could be made on the way or make changes in the previous stage of the development.