The cornerstone of Agile development is the sharing of information. An Agile team that does not communicate well is destined to fail: the focus on efficiency and short, independent development cycles means development moves at a rapid pace, and there is much slack in the timeline to account for communication hiccups. Therefore, the each member of the team needs to be aware of what everyone else is working on, as well as any impacts and dependencies between her assigned tasks and those of her coworkers. With sprints lasting two or three weeks each, it’s imperative that team members be proactive about sharing the status of their work. While this can (and should) happen as informal conversations between team members, Agile provides a tool to encourage frequent communication: the daily standup.
What it Is
The daily standup is a meeting where team members discuss their own immediate goals and challenges. It is typically held at the beginning of the workday (to maximize the impact of the shared information) and should last no more than ten to fifteen minutes. You don’t actually have to be standing up; that is only a convention that encourages brevity and informality (almost as if you all ran into each other on the way to your desks!). It should take place somewhere close to the actual work area (a hallway or other open space works well); ideally this will be a place where the team has access to its chosen tracking tool (the big Post-It board, a projector screen showing the GreenHopper task board, etc.) Above all, it should be fast-paced and lively. A good standup allows the team to track its progress towards sprint deliverables, increases efficiency, and encourages open communication and commitment to the team.
What it Isn’t
The daily standup is not a status or planning meeting. If you need to discuss changing requirements or priorities, call a separate meeting. If you need to figure out how much team members are accomplishing, wait for the next one-on-one update (or look at your tracking tool!). There should be no need for minutes, and no complex technical discussions; if those are needed they should be held separately (right after the standup would be a great time) and involve only the necessary parties.
Pigs and Chickens
Who should attend daily standups? A common analogy used by Agile devotees is the one about pigs and chickens. If you think of the development process as a hearty breakfast plate, there are two types of contributors: the chickens, who supply the eggs, and the pigs, who supply the bacon/sausage/ham meat product (ignore the toast and OJ for now). The main difference between the two groups is the level of commitment. In software development, you can look at stakeholders as either chickens (product managers, executives, salespeople, anyone who provides input into the process) or pigs (developers, engineers, and anyone else who performs actual development work). Standup attendance is mandatory for the pig contingent, and they will all be expected to contribute; chicken attendance is optional (although the Product Manager should be there every day) and they should only listen, unless they are called on to provide context.
The Three Questions
During a typical standup, core team members (they usually dislike being referred to as pigs, no matter how useful the above analogy may be) will take turns and briefly answer three questions:
- What did I work on yesterday?
- What am I working on today?
- Is there anything or anyone keeping me from completing he work described in #2?
That’s it! Once everyone has had a turn, the meeting is over, and the team gets on with the day’s work. If an issue came up during the meeting (usually during question #3), then the relevant parties can meet to discuss a good solution, but again, that’s another meeting. Remember, this is not about planning or negotiation. The goal of the standup is for every team member to find out what everyone else is up to, increasing mutual awareness and strengthening team relationships and communication paths, and to surface potential issues or conflicts so they can be dealt with before they cause bigger problems.
How efficient do you think your team’s standup meetings are? Do you find it difficult to avoid planning or technical rabbit holes? What’s your favorite technique for keeping standups lively?