Agile/Scrum or Waterfall?
Choosing the right methodology for a project is a critical choice. At Exsilio, we are fortunate to have PMs on staff that are well-versed in these two methodologies and understand the benefits of each. Here’s a quick primer on how we decide between them. But first let me quickly explain them.
Waterfall is the classic project methodology where you work on the solution from start to finish. At the beginning of the project, an effort is made to plan out everything, including what the team is creating and how long it will take.
Agile and Scrum – these terms often get confused, so I like to group them together. Agile is the philosophy, and Scrum is the exact methodology. (Another example of an Agile methodology is eXtreme Programming.)
At Exsilio, we use Scrum extensively, typically with a 2-week sprint cycle that features sprint planning at the beginning, daily standups in the middle, and a sprint review & retrospective at the end. User Stories are always being worked on, either actively being developed against (in the current sprint) or written & groomed (for the next sprint).
There are a lot of moving pieces in the above diagram but when it all comes together with a team & product owner that understand the methodology, it’s a beautiful thing.
What are the benefits of each?
Now for the pros & cons: Waterfall is great when you know exactly what you are building up front, and can fully lock all the requirements. Changes to the plan in Waterfall are very painful, especially towards the end of the project. When you lock requirements and can focus the team on the development and QA of what you’ve already planned, then the project goes very smooth. Problems and risks will always happen, but can be quickly solved and mitigated to ensure a successful release of the solution you envisioned.
Agile/Scrum works best when you don’t know what you don’t know. It is the methodology best equipped for creating brand new technologies and business processes that have never been done before. Because the team decides during every sprint iteration what they are going to work on, you can accommodate large changes in strategy and direction very easily. Scrum is also great when you want to make frequent, incremental releases so that you can show progress and demo the solution to your stakeholder(s). Essentially, every sprint cycle you are completing something that is “shippable” so that you can move on to the next thing.
So How Do You Decide?
Taking these benefits into account, what is the best way to approach this decision? The first thing we look at is: are there going to be a lot of changes in requirements as the project goes on? If so, avoid Waterfall because of the larger impact of changes to the project. It’s always good to have the planning discussions and requirements gathering exercises regardless of the project methodology, and by doing this you can inform the choice.
Another thing to keep in mind – do we have a hard deadline to deliver? If so, Agile/Scrum is less appealing because you typically don’t know exactly what the team is going to be working on 3-4 sprints from now – it will depend on their ability to follow the methodology, their velocity (a measure of efficiency) and other factors. So hard deadlines with a well-understood scope of work are a much better fit for Waterfall. Waterfall also allows you to better predict the resource usage in addition to the exact schedule.
Keeping these factors in mind will help you make the right decision. At Exsilio we successfully deliver both types and have lived to tell about it!