Many large organisations are embarking on the journey from a waterfall methodology to an agile methodology. Sometimes this journey is underestimated. At Adatis this is a journey we have assisted clients with and in this blog I will share with you what we have learnt.
At Adatis we exclusively work in a scrum agile methodology, we work with agile clients, waterfall clients and ever increasingly, clients in the process of transitioning from waterfall to agile. This transition can be difficult, leading to both methodologies being in practise at the same time, and this can cause friction.
This blog will outline a hybrid approach, between waterfall and agile, which will assist in crossing that bridge between the two methodologies, making everyone’s life easier.
To better explain the technique, I have gone through an example using the scrum agile methodology. This blog assumes some basic understanding of the scrum methodology, if you do not have this, please refer to this website to get you up to speed.
How to navigate the agile waterfall
First things first, education, as is the case with most things in life, if you don’t understand something, then it can be daunting! Often people concentrate on the buzz words involved in agile and relate the buzz words back to waterfall, without really understanding the true definitions of the terms. Make sure everyone understands exactly what agile is, how it works and crucially why it works.
In true agile fashion, you should focus on one sprint at a time, but this is where the compromising starts and what defines this hybrid approach. As always, carry out detailed sprint planning for the current sprint. Everything else that is on your backlog should have high level, worst case estimates. Using those estimates, combined with your average capacity for a sprint, and your prioritised backlog, you should be able to work out which story point fits into which sprint. This is not fixed and will change over time, but the key here is that there is always a plan right up to a deadline in place.
In the diagram above, we have the prioritised backlog on the right-hand side, with the estimate in days in brackets. Our average capacity is 12 days per sprint. We pick story points off the backlog in order, and try to squeeze them into each sprint. For example, the customer dimension takes 8 days to complete, so easily fits into sprint 1. We have 4 days left, our next highest priority is the product dimension, we squeeze in as much as we can into sprint 1. There will still be 1 day left of the product dimension, making it our first item in sprint 2. We continue to do this until all story points fit within sprints.
Once it’s decided which story point fits into which sprint, you must calculate a more detailed capacity, featuring people, so that the sprint duration can be decided. Taking the sprint duration, you can start to map out dates, which will put you on a path to start satisfying the waterfall methodology.
Contingency, deprioritisation and delaying deadlines
If from here to the end of the project every single sprint goal is met then the project will be a roaring success. However, this will not always be the case and steps should be taken to proactively deal with potential issues.
To allow for minor issues, contingency should be added. For major issues, expectations should be set and bad news should be delivered as soon as possible. If a sprint goal is not met, and therefore carries over to the next sprint, this has ramifications. Do not fall into the trap of thinking you can make that time back later in the project, all these little setbacks add up. You must face up to it now, in this scenario there are two choices. Either you add in a new sprint and reshuffle everything around, thus extending the deadline. Or, you deprioritise a story point and everyone accepts that will no longer be delivered as part of the final solution.
It is perhaps that last paragraph that is most important and most critical to this hybrid approach. By mapping everything out in a structured waterfall approach based upon the agile methodology. This allows you to utilise agile - staying flexible and dynamic, and allows you to utilise waterfall - to plan and to identify and deal with problems early on. Thus, the two competing methodologies are playing to their strengths and working well together.