In Scrum, on each day of a sprint, the team holds a daily scrum meeting called the "daily scrum.” Meetings are typically held in the same location and at the same time each day. Ideally, a daily scrum meeting is held in the morning, as it helps set the context for the coming day's work. These scrum meetings are strictly time-boxed to 15 minutes. This keeps the discussion brisk but relevant.
There is an old joke in which a chicken and a pig are talking that illustrates a key concept in the daily scrum ...
Chcken: "Let's start a restaurant."
Pig: "Good idea, but what should we call it?"
Chicken: "How about 'Ham and Eggs'"
Pig: "No thanks. I'd be committed, you'd only be involved."
The joke is meant to point out the difference between those who are committed on a project and those who are only involved. Scrum affords special status to those who are committed, and many teams enforce a rule in which only those who are committed are allowed to talk during the daily scrum meeting.
All team members are required to attend scrum meetings. Since both the ScrumMaster and product owner are committed team members, they are expected to attend and participate. Anyone else (for example, a departmental VP, a salesperson or a developer from another project) is allowed to attend, but is there only to listen. This makes scrum meetings an excellent way for a Scrum team to disseminate information -- if you're interested in hearing where things are at, attend that day's meeting.
The daily scrum meeting is not used as a problem-solving or issue resolution meeting. Issues that are raised are taken offline and usually dealt with by the relevant subgroup immediately after the meeting. During the daily scrum, each team member answers the following three questions:
- What did you do yesterday?
- What will you do today?
- Are there any impediments in your way?
By focusing on what each person accomplished yesterday and will accomplish today, the team gains an excellent understanding of what work has been done and what work remains. The daily scrum meeting is not a status update meeting in which a boss is collecting information about who is behind schedule. Rather, it is a meeting in which team members make commitments to each other.
If a programmer stands up and says, "Today, I will finish the data storage module," everyone knows that in tomorrow's meeting, he will say whether or not he finished. This has the wonderful effect of helping a team realize the significance of these commitments, and that their commitments are to one another, not to some far-off customer or salesman.
Any impediments that are raised in the scrum meeting become the ScrumMaster's responsibility to resolve as quickly as possible. Typical impediments are:
- My ____ broke and I need a new one today.
- I still haven't got the software I ordered a month ago.
- I need help debugging a problem with ______.
- I'm struggling to learn ______ and would like to pair with someone on it.
- I can't get the vendor's tech support group to call me back.
- Our new contractor can't start because no one is here to sign her contract.
- I can't get the ____ group to give me any time and I need to meet with them.
- The department VP has asked me to work on something else "for a day or two."
In cases where the ScrumMaster cannot remove these impediments directly himself (e.g., usually the more technical issues), he still takes responsibility for making sure someone on the team does quickly resolve the issue.
The vast majority of teams conduct the daily scrum meeting by having each person answer the three questions in order. You answer all three, then the next person, the next and so on. An interesting alternative that some teams find helpful is to talk through one product backlog item before moving on to the next. In this way, an individual may give an update at multiple different times during the same meeting.
For more information on daily scrum meetings, check out these blog posts: