Adapting Scrum

That’s not a typo in the title – I see lots of articles about adopting scrum (i.e. getting started) but I wanted to touch on adapting scrum, for those who have been doing scrum “by the book” and are wondering what’s next.

The most common start point for groups as they step into the agile world is scrum. It makes sense because the official scrum guide details many of the things which they need to do, which may well be quite alien to them, for example having regular retrospectives to look for ways to improve how they work. I’ve heard people use the analogy of learning ten pin bowling with “bumpers” to prevent balls from going into the gutter, however, even following the scrum guide word for word won’t prevent a team from encountering problems. Instilling the practice of retrospection should give teams a fighting chance at tackling those challenges, but there are no guarantees. It’s worth understanding that scrum won’t fix your problems – all it can do is shine a light on them, and then it’s up to the people involved to resolve them.

Over time a team becomes familiar with scrum’s pillars (transparency, inspection, and adaptation), values (commitment, focus, openness, respect, and courage), events (sprints, sprint planning, daily scrum, sprint review, and retrospective) and artefacts (product backlog, sprint backlog, and increment). Once they find a cadence that works for them, a team can become restless and wonder “what’s next?” – ideally their mindset of continuous improvement has the team looking beyond scrum.

One area I encourage teams to investigate is XP because scrum focuses on how teams can organise their work and deliver value when faced with complex problems – it doesn’t mention anything about software engineering, and that’s where Extreme Programming fits in. XP provides some concepts which will be familiar to scrum teams (iterations, stand ups, sustainable pace) but also some which are commonly associated with scrum and yet aren’t in the scrum guide, for example, user stories and velocity. Scrum and XP fit together so well there ought to be a name for it!

Just like scrum, XP can appear simple at first but (as claimed by some games) it takes a minute to learn, a lifetime to master! Some of the concepts seem obvious, maybe even redundant, and yet I have seen teams struggle to do them well – “Code the unit test first“, “All production code is pair programmed“, and “Refactor whenever and wherever possible” to name a few; “Simplicity” is maybe the hardest because any half-decent developer can write code which works, but producing clean & simple code takes practice.

Fortunately, unlike scrum, XP doesn’t say you have to do it in its entirety. It was created in the 1990s, so some specifics of XP could benefit from a revamp but on the whole the values, principles and practices would still be valuable to most dev teams. Take an agile approach: understand your needs, find a part of XP which might help, try it, then inspect and adapt. 🙂

It’s often about this time that I find teams want to try Kanban – it’s important that teams are doing it because they want to find better ways of working, and not because they think it’s a way to avoid the parts of scrum that they don’t like. Whereas scrum has “bumpers” which provide a lot of guidance on how to get started, kanban does not mandate any process – this means the team need to provide that discipline themselves.

The simplicity of kanban might seem like freedom or even anarchy, but I feel it is a lot more work – the team need to pursue incremental, evolutionary change, constantly looking for ways to improve the way they work. Moving from scrum to kanban should be an incremental process – scrum is a good starting point from which to evolve. This is scrumban – a hybrid of scrum and kanban, not (as some people seem to use the term) a lesser version of scrum.

Many scrum teams may have started incorporating elements of kanban without realising it, for example the board that most people associate with scrum is actually a kanban board. Visualisation is key in kanban, but as many teams are now working remotely diagrams and images are essential tools in sharing knowledge whether you’re a kanban team or not.

Hopefully, the team is still inquisitive and hungry to improve because there are many other areas to explore – the agile umbrella is quite broad, but there are also many things not considered to be “agile” which can prove fruitful; the two which spring to my mind are Lean and Systems Thinking because they can be the basis for expanding the way the team observes, comprehends and tackles problems.

Some people consider Lean to be part of agile, some people don’t, but regardless of that I think there is a lot to learn from it. I recommend starting with eliminating waste; for me, this opened a whole range of more areas to explore but even a superficial appreciation of the types of waste can help teams see ways to improve. The other principles should resonate with those experienced in scrum and XP: Amplify learning; Decide as late as possible; Deliver as fast as possible; Empower the team; Build integrity in; Optimize the whole. The fact that these same themes keep appearing in different forms should reinforce their importance; if your team struggles with any of these, I hope this will make you revisit them and try to find ways to improve.

Systems Thinking is an area that I am still exploring. (Realistically I’m still learning in all these areas but systems thinking is one I feel I have the most to learn.) I feel that if XP can take a lifetime to master then I need to become a cat in order to fully get to grips with systems thinking! Fundamentally it’s about understanding how everything is connected to everything else.

In scrum, for example, you may observe a challenge in sprint planning but it could be that tweaking the way the team do refinement will address it. Perhaps adding another refinement session will help… but that takes time away from the planned sprint work… so the team may need to reduce their commitment… but we have a deadline to meet so we can’t commit to less (if anything we’re being pushed to do more)… so instead we end up shortening the refinement session… so we’re less prepared for sprint planning… so our forecasts are worse… so our stakeholders push harder… and so on.

So for those who have been doing scrum “by the book” and are wondering what’s next, I think there are many options; I recommend looking at Kanban, XP, Lean and Systems Thinking as a start, but <coach_voice>it depends</coach_voice> – as always, every team’s challenges are different so understand your situation, where you want to grow, and then look for alternatives.

Don’t follow the book if it’s not helping you; maybe there are other sources that can help; maybe you need to create a cocktail from a few things. Not only are teams different, but a single team changes over time, so what worked for you last year may not be right this year. In fact, if you are striving for continuous improvement then working in the same way that you did a year ago should be an indication that you might want to think harder about how to improve in that area. And remember: not every change will result in an improvement; inspect and adapt, constantly.