Scrum is a minimal framework for providing feedback so we can constantly improve our development process yet many teams use Scrum prescriptively without using the feedback that Scrum makes available for ongoing improvement.
Here are seven strategies for using Scrum to improve your development process.
1. Use retrospectives
Scrum offers many subtle feedback loops to see how development strategies are working. One of the most explicit forms of feedback are retrospectives, which should be done at the end of each iteration (sprint) to see what went well and what needs improvement.
2. Blame process not people
Rather than blame a person for a problem, which can be disempowering and make someone defensive, blame the process instead. This helps shift the conversation from what went wrong to how we can improve in the future.
3. Focus on small improvements
If a team focuses on a few small things they can do to improve productivity by a few percent after each sprint, they can double productivity at the end of a year. Little improvements may not seem to make a big difference but they can add up and they are often easy to implement.
4. Understand all the practices
Scrum gives us feedback to deepen our understanding so we can learn how to improve. Many of the practices are simple but they should never be done by rote. Everyone on the team should understand the purpose behind each practice to use it effectively and keep it dynamic.
5. Look for root causes
A presenting problem is rarely the real problem. Often, the real cause of a problem can be hidden and take some digging to discover. Practice the “five whys” when looking for the root cause of a problem.
6. Reward the right things
Humans are incentive driven and often what really motivates us relates more to our identity than our salary. Make sure you are rewarding things that improve work in the long term as well as the short term.
7. Strive for technical excellence
The key to successful agile development is technical excellence. Nothing in Scrum can save you if you write crappy code. Rather than using a heavy-weight process to try to force compliance, Scrum is lightweight so more time can be spent focusing on building quality code.
I like to say Scrum is about telling smaller lies. In waterfall, we often couldn’t tell there was a problem until it was too late. In Scrum, we get feedback much more rapidly but it is up to us to do something about it. The news that we are about to fall off a cliff is only valuable if we can do something about it, if we can’t we may as well stay in ignorance a few seconds longer.