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 Scrum about a chicken and a pig that illustrates the differences between being committed and being 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.
The team and Scrum Master are considered committed by nearly everyone in the Scrum community. There is some disagreement about the product owner. My view is that a product owner should be considered a dedicated participant of the project. (And should behave as one, too.)
All team members are required to attend scrum meetings. Since both the Scrum Master 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.