Thursday, April 24, 2008

Standups need a Scrum Master

You really need a Scrum Master (or Iteration Manager) to do proper standup meetings. Sure, you can still do them the casual way, but I dare to say that most likely they will be of not much use.
Let me describe two scenarios: The first is done by developers only. The second is run by a scrum master and she makes sure that the standup follows the protocol.

Scenario 1
Depending on the time the standup takes place, most developers are still waiting for the cafeine to kick in and try to remember what they did yesterday; at least the parts worth mentioning.
One after the other, they describe what they did, how great a job they did and what they are planning to do today. Often they mumble to themselves like lonely souls in a bar. Now, imagine a group of, let's say, 6 developers doing the round. Without some mental help, could you remember what each of the developers did the day before or even only which problems they encountered? Maybe, for one or two, but I doubt that you could do that for all of them. So, if no one has to remember and to follow up, how is it guaranteed that issues have been resolved?
How do you know that a specific feature has really been implemented? In short, it is not possible to track and therefore not possible to manage. So, at the end of the iteration it is common if not accepted that there will be surprises. Most likely of the unpleasant kind.

Scenario 2
The scrum master brings out the story board with all the story cards on them and spents a minute or two to memorize important key elements. All of the story cards which are currently played feature the owner's name and estimate and the progress done so far. Some of the cards feature red stickers to indicate problems which needed to be resolved. Once she is setup she calls out and officially starts the stand up meeting.
The developers gather and start in the same way as the other group from scenario 1 did. The scrum master looks up the card currently played by the reporting developer. She listens careful to every word and makes notes. Developers will be reminded to speak clearly and audibly for everyone if needed. If the card features a red sticker, she removes it if the problem has been resolved.
After the standup, which is a really busy moment for a scrum master, she has lots of notes and her engaged day starts. First, if not done on the fly, she will update the story board ie. moving cards to different stages, noting progress, placing red stickers, ...
She then will start to work out solutions for the problems reported. That could be to get new hardware, borrow a resource for a couple of hours from another department, etc.. The scrum master keeps the engine going all the time and knows at any moment the state the current iteration is in.
The next day, the procedure repeats. She listens again to each of the short reports and takes notes. She even might ask a couple of questions during the standup -- if short -- or address developers off-line to make sure that the story is working out as planned and that resolved issues are really resolved.

Comparing those two scenarios. Which one do you think is more effective, which one has the least chance of issues being overseen or worse forgotten? The answer is obvious. In the 2nd scenario, the scrum master is on top of things and chases loose ends and essentially herds the cats.

What can you do if your environment does not provide a scrum master? Well, this is a hard question. In best cases someone steps up to the challenge and tries to be as much of a scrum master as possible. Often, this is already an individual with leader capabilities like the tech lead or project manager. Which one of those two will fit the bill better? I won't try to answer this question as this needs to be decided on a case by case basis. Both have advantages and disadvantages which need to be evaluated against their personal role and agenda.

Now, if I reconsider the title of this blog it should be: 'Software Projects need a Scrum Master'.