Daily Scrum

The daily scrum should start exactly on time, every day at the same place. It should happen in the team room right in front of the taskboard. Nothing can beat that.

We normally do the meetings standing up, since that reduces the risk of surpassing 15 minutes.

How to Update the Taskboard
Update the taskboard during the daily scrum. As each person describes what he did yesterday and will do today, he pulls post-its around on the taskboard. As he describes an unplanned item, he puts up a post-it for that. As he update his time estimates, he writes the new time estimate on the post-it and crosses off the old one. Sometimes the Scrum master does the post-it stuff while people talk.

Regardless of what format your sprint backlog is in, try to get the whole team involved in keeping the sprint backlog up-to-date. If this is a responsibility of the Scrum master, the disadvantages are:
 * The Scrum master spends too much time administrating stuff, instead of supporting the team and removing impediments.
 * Team menbers are unaware of the status of the sprint, since the sprint backlog is not something they need to care about. This lack of feedback reduces the overall agility and focus of the team.

Immediately after the daily scrum meeting, someone sums up all the time estimates and plots a new point on the sprint burndown.

Dealing with latecomers
Some teams have a can of coints and bills. When you are late, even if only one minute late, you add a fixed amount to the can. No questions asked. If you call before the meeting and say you'll be late you still have to pay up. You only get off the hook if you have a good excuse such as a doctor's appointment or your own wedding or something.

The money in the can is used for social events. This works well. But it is only necessary for teams where people often come late. Some teams don't need this type of scheme.

Dealing with "I don't know what to do today"
If someone, during the daily scrum meeting, don't know what to do today just move on and let the next guy talk. Take note of which people didn't have anything to do. After everybody's had their say, go through the taskboard with the whle team, from top to bottom, and check that everything is in sync, that everybody knows what each item means, etc. Invite people to add more post-its. Then go back to those people who didn't know what to do and they hopefully will have an idea about what to do today.

If not, consider if there is any pair-programming opportunty. If that doesn't work, try the following:
 * **Scrum master:** "OK, who wants to demonstrate the beta-ready release to us?" (assuming that was the sprint goal)
 * **Team:** confused silence
 * **Scrum master:** "Aren’t we done?"
 * **Team:** "um... no"
 * **Scrum master:** "Oh darn. Why not? What’s left to do?"
 * **Team:** "Well we don’t even have a test server to run it on, and the build script is broken."
 * **Scrum master:** "Aha." (adds two post-its to the task wall). "Joe and Lisa, how can you help us today?"
 * **Joe:** "Um.... I guess I’ll try to find some test server somewhere".
 * **Lisa:** "... and I’ll try to fix that build script".

If you are lucky, someone will actually demonstrate the beta-ready release you asked for. You have acheved your sprint goal. But what if you're in mid-sprint? Congratulate the team on a job well done, grab one or two of the stories from the "next" section at the bottom right of your taskboard, and move them to the "not checked out" column to the left. Then redo the daily scrum. Notify the product owner that you have added some items to the sprint.

But what if the team hasn't yet achieved the sprint goal and Joe and Lisa still refuse to come up with something useful to do. Consider one of the following strategies (none of them are very nice, but then this is a last resort): we’ll all just stand here and take it easy until you come up with something to do that will help us reach the goal."
 * **Shame:** "Well if you have no idea how you can help the team, I suggest you go home, or read a book or something. Or just sit around until someone calls for your help.".
 * **Old-school:** Simply assign them a task.
 * **Peer pressure:** Say "feel free to take your time Joe and Lisa,
 * **Servitude:** Say "Well you can help the team indirectly by being butlers today. Fetch coffee, give people massage, clean up some trash, cook us some lunch, and whatever else we may ask for during the day." You may be surprised by how fast Joe and Lisa manage to come up with useful technical tasks :o)

If one person frequently forces you to go that far, then you should probably take that person aside and do some serious coaching. If the problem still remains, you need to evaluate whether this person is important to your team or not.

If he isn't too important, try to get him removed from your team.

If he is important, then try to pair him up with somebody else who can act as his "shepherd". Joe might be a great developer and architect, just that he really prefers other people to tell him what to do. Fine. Give Niklas the duty of being Joe's permanent shepherd. Or take on the duty yourself. If Joe is important enough to your team it will be worth the effort.