The process of scrum can be compared to the process of obtaining six-pack abs. Just like a personal trainer can benefit an individual seeking physical improvement, a ScrumMaster can provide invaluable benefit to a development team seeking process improvement.
How to get physical abs
Eat fewer calories than you burn each day by carefully planning the amount of calories you will eat each day and how many you will burn. You will not be able to absolutely calculate how many points of calories you will eat or burn each day or iteration, so you will have to estimate the amounts based on past velocity of calories burned and eaten. Once you have a plan of diet and exercise effort you must stick to the plan and measure your progress each 1 or 2 week or 4 week iteration. It is often useful to hire a personal trainer to help you stick to the diet and exercise program you have committed to.
How to fail at getting physical abs
You may notice I purposely used Scrum words in the description above on how to get abs. I want to draw a simple parallel here between Scrum and a diet. (When I use diet I'll refer to what you eat and to exercise.) How many of us have gone on a diet for the purpose of “losing weight”, “getting in shape”, “getting 6-pack abs”, “being able to see my toes again”, or some other reason? Ok, now how many of us have failed? What was the primary reason you failed? Was it because the diet was no good and just didn't work, or was it because, just like me, just like many others, you didn't stick to it? You said to yourself “ahhh… I am really tired today, don't feel like going to the gym”, or “yeah, I mean I had such a hard day, I can eat a double fudge sunday just tonight, I've been so good the rest of the week.” Then that happened every day, because every day was hard, and every day you were tired. Sound at all familiar? Are you really still going to blame the diet? Really?
How to get software abs
One way to get “software abs” is to get a good team of cross functional people together who want to do the right thing. Get one of them to be the team's personal trainer or ScrumMaster. Follow the Scrum diet. Measure yourself every iteration and course correct if needed. Don't deviate from the plan.
Or, to transform the previous metaphor in to Scrum methodology:
Take in slightly less work than the team can complete each sprint by carefully planning the amount of work the team will commit to each sprint and how much the team will complete. The team will not be able to absolutely calculate how many effort points of work the team will do or commit to each sprint or iteration, so the team will have to estimate the amounts based on past velocity of effort points completed. Once the team has a committed sprint of effort the team must stick to the plan and measure the team's progress each 1 or 2 week or 4 week iteration. It is often useful to hire a ScrumMaster to help the team stick to the sprint and Scrum rules the team has committed to.
How to fail at getting software abs
We can draw a parallel again to the same reasons why we fail to succeed at a physical diet as the reason why we fail to deliver quality software, using the metaphor and format from above:
How many of us have started on a Scrum process for the purpose of “building higher quality software”, “getting a working system to the users faster”, “building what the customer really wants”, “increasing productivity”, or some other reason? Ok, now how many of us have been part of an organization that failed? Ok, now what was the primary reason the organization failed? Was it because Scrum was no good and just didn't work, or was it because, just like me, just like many others, the organization didn't stick to it? Your organization said to the scrum team “ahhh… I really need to get this work done, we can break the scrum process this sprint”, or “yeah, but this is an exceptional problem, your team can add this one backlog item you didn't commit to, you need to be agile!” Then that happened every sprint, because every sprint had important work come up that wasn't planned for. Sound at all familiar? Are you really still going to blame Scrum? Really? Worse yet, are you really going to blame the team? Really?
Tying it all together
My basic point is this. If you want to get results from a diet you have to follow it, you can't make exceptions every day, you can't go and eat a double hot fudge sunday, just because you had a bad day. If you do, you will not see the results that you were looking to get from the diet. If you don't follow the diet you cannot achieve the results you are expecting from it. Most people don't have enough will power to do it on their own, so they hire a personal trainer.
Question: Which personal trainer is better?
- One that when you say “yeah I don't really feel like doing 10 pushups today. I'd rather do 9 sit ups”, and he says “ok, you're the boss you're the one who is paying me. In fact we can do whatever you want today.”
One that when you say “yeah I don't really feel like doing 10 pushups today. I'd rather do 9 sit ups”, and he says “that's not an option, when you signed up to hire me to be your personal trainer, I committed to give you my best and you committed to give me your best. You're paying me to help get you in shape, and I want to help you achieve that goal. I'll help you do the 10 pushups with correct form, or next week we can change your diet plan, but we need to stick to what we committed to this week, so we can achieve those results.”
Would you really pick #1? Would you pick the “yes man?” If so you might as well hire anyone off the street to be your “yes man.” Most of us would prefer #2. Think about why you would pick #2.
It's the same with software development. It's the same with Scrum. Is scrum the ultimate software diet? No! Is Scrum a software diet that will work if you stick to it? Yes! Will it work if your organization constantly breaks the Scrum rules because of whatever the emergency of the day is? No! Of course not. And if your organization values a ScrumMaster who has the answer “ok, you're the boss you're the one who is paying me. In fact we can do whatever you want today,” over a ScrumMaster who teaches, enforces and works within the framework of Scrum, will your organization fail? Not necessarily, but you definitely won't get the results you were hoping for.