Inscrivez-vous ou connectez-vous pour rejoindre votre communauté professionnelle.
When (for what kind of projects) it's better to use waterfall, and when it's better to use Scrum?
Some of the factors to consider while making your decision:
1) Requirements:
If your requirements are well defined and frozen waterfall will work.
However, in case requirements are constantly changing and continuous feedback is required for the project, then Scrum would be more beneficial
2) Dependency with other system
If you foresee any dependencies with other systems / modules out of your control and there is no way of planning for those decencies it might be a better option to choose Scrum. Scrum works on sprints hence you can plan for the dependencies sprint wise rather than the whole project.
3) Technical complexity
If the project has technical complexities, you can make use of a device called “research stories” in scrum to avoid any delays.
During the activities of backlog grooming and sprint planning, if you come across a technical glitch, you can break it down and create a story for R&D know as research story. This allows tracking of all efforts (even those that go unaccounted for in waterfall)
4) Length of the project
Waterfall best works for shorter duration of projects. If your project spans over long durations, there can be the likelihood to finding requirement leaks or changes. These problems can easily be tackled in Scrum by simply creating a new story for the changes and adding it to the backlog. These changes can then be taken up based on their priority
5) Rigidity of releases
In Scrum, you only plan for the sprint. Hence you may not be able to give a fixed release date until the second last sprint. (Usually last sprint is taken as a regression and bug fixes)
Hence if you have to commit on a fixed date and don’t have the flexibility to choose a release date, the waterfall approach may be more beneficial.
Let me explain it in simple terms here.. Waterfall is a baking method. Agile is cooking method.
If you go to a bake house and ask for a1 KG round cake with vanila flavour, the cake is made by preparing the batter and baked in oven. Inbetween this process you cannot ask them to change the shape to Square and add chockolate flavour. These change requests cannot be accepted as the req were frozen when you ordered. This is baking method or Waterfall.
But if someone is preparing you a dish (let it be any curry), you can ask them to add salt as per your wish, ask them to ignore some vegetables, or even add more quantity of a particular vegetable.. Here the end product is the curry that is being prepeared with regular interaction between the maker and the client. This kind of cooking can be related to as agile.
If the project is simple, short term with fully defined requirements, then use waterfall model. In other case, use AGILE SCRUM. The reason is that the waterfall model doesnt have iterations and each stage comes after the previous stage completes.
Waterfall: Requirements analysis -> Desing & Planning -> Development/Implementation -> Testing -> Deployment -> Maintenance
As you can see that it will be a total wastage of time to use this model for complex and long term projects because if you find out a missing requirement or some other design level issue at the testing level, you would have to go to the initial step again to redo the whole thing.
The scrum, on the other hand, is specially used in conditions when requirements are not fully mature initially and are to evolve with time called Rolling Wave process. It devides a complex project into smaller deliverable and fully functional releases. Each release goes through the planning, development and testing processes and reviewed at the end of its development, time span called a SPRINT in Scrum which is not more than one month. Hence it easier to ensure that the project is on the right track all along.
I hope, this helps.
A project with already Known risk and requirements details can be lead by Waterfall method, because this method is predictive and plan driven. If all project's bounds are delimited and mastered, there is no need to use an agile method.
On the other side, if there are many unknown or un predictable risks, or requirements are not very clear, sometimes it can be very clear but many changes can occurs during development, because product owners don't know really what they want at the begin ... in this kind of situation SCRUM will do the job ;)