Agile Development and the Daily Standup Meeting
This is the first installment of a new online column for Visual Studio Magazine written by Aaron Bjork. Aaron is a senior program manager at Microsoft working on Agile experiences and tooling within Team Foundation Server (TFS). The column will focus on Agile practices and how to use them effectively on your teams. Check back here monthly for tips, ideas and thoughts on how Agile is shaping software development.
Rise of the Daily Stand-up Meeting
There is no questioning the fact that Agile practices and methodologies are becoming more mainstream every year. In a recent survey sponsored by CA Technologies titled "Balancing Agility with Governance -- A Survey of Portfolio Management for Agile IT," 82 percent of the respondents indicated that Agile-based development drives both business change and innovation. As organizations look for ways to compete in today's global economy, they are turning to Agile practices and methodologies as a way to innovate and get ahead of the competition.
One of the practices that literally "stands out" among the crowd is the adoption of a daily stand-up meeting. Version One's 2010 State of Agile Survey polled more than 4,700 participants from 91 different countries and found that 83 percent of respondents indicated they hold daily stand-up meetings. The daily stand-up meeting is here to stay.
Why are so many teams finding success with daily stand-ups? To answer that question we need to go back and look at the goal of the daily stand-up. In simple terms, the goal of the daily stand-up is to promote the culture of a self-managed team. The first principle of the Agile Manifesto states "We value individuals and interactions over processes and tools." A healthy team is one that has a high degree of interaction and knowledge sharing. The daily stand-up promotes this principle creating a forum for everyone on the team to listen and share. Not only is each team member expected to participate, but each team member is given equal time and equal footing.
This isn't reporting up to your manager. This is sharing with your peers on the team. Sharing and listening promotes a self-managed team culture. As obstacles arise, it's the job of the team to decide how to overcome them. As daily plans are shared, it's the job of the team to interact to find dependencies, overlap and opportunities to improve. The daily stand-up is the team's first and best tool to ensure it meets its commitment.
Effective Stand-up Meetings
If it's clear that a daily stand-up can help the team succeed, how do you ensure that the daily stand-up is effective? Listed below are guidelines I use and guidelines I've seen others use to ensure stand-up meetings are effective.
Get to the Point: The traditional approach to a stand-up meeting is well-tested and effective for sharing information. Every day during stand-up, each team member answers three simple questions:
- What did you do yesterday?
- What are you planning to do today?
- Is there anything blocking your progress?
The questions provide an opportunity to share progress, to set direction and focus, and to share anything blocking progress. Work with your team members to get crisp about answering these questions. Team members should come prepared so that answering the three questions does not result in a series of "Hmm... let me try to remember what I did yesterday" phrases. A lack of preparation leads to a slower pace, which in turn drains energy from the team. Get crisp, and get to the point.
Pigs and Chickens: Agile has long relied on the fable about pigs, chickens and a ham and eggs breakfast to describe two types of project members. Pigs are committed to the breakfast (a pig must be slaughtered to produce ham); while chickens are merely involved in the breakfast (a chicken lays an egg and gets on its way). This fable describes two types of project members: pigs, who are 100% committed and accountable for a project, and chickens who are simply involved. Projects need both pigs and chickens to be successful; however the standup meeting is all about pigs. Don't let your stand-up meetings turn into a status meeting for the many chickens involved with your project.
Timeliness: Just like lack of preparation, late-starting meetings waste everyone's time and quickly extinguish both energy and momentum. Create an environment on your team where everyone knows and understands that the stand-up meeting starts on time. Don't wait for late comers to arrive, and don't move the meeting to accommodate individual schedules. Pick a time and stick to it... daily.
Short and Sweet: A stand-up meeting should take no longer than 15 minutes. It's not uncommon however to hear stories of teams that suffer much longer "stand-up" meetings. These by definition are not stand-up -- they're just meetings. The daily stand-up is not a forum to recount everything you did in the past 24 hours. And it is not a meeting to solve problems or get feedback on designs. Instead, the daily stand-up is a meeting to learn and share how the team is progressing toward meeting its commitment. As issues arise, note them and take them "off-line" so that team members not involved in the outcome can get back to work.
Have Fun: Having fun at work and producing great results are not at odds with one another. In fact, I'd argue that teams that work in environments where fun is encouraged produce greater results. The daily stand-up is no different. It can and should be a meeting that team members look forward to. It can and should be fun.
A team I work with here at Microsoft has found a unique way to add a bit of fun to their daily stand-ups. Instead of going around the room in order during the meeting, the team uses a rubber chicken to indicate who is next. The first person to talk starts by picking up the rubber chicken (named Ralph, of course) and answer the three daily questions (yesterday, today, obstacles). When done, he or she tosses Ralph to someone else in the room. It is now that persons turn to answer the daily questions. The process continues until everyone has had a turn.
It's simple, it's fun, and it keeps everyone in the meeting engaged. Find ways to make your teams stand-up meetings fun and see if it doesn't produce a more energizing and productive atmosphere.
In summary, stand-up meetings are now commonplace among Agile teams and a great tool for creating self-managed teams that deliver great results. As your teams start holding daily stand-up meetings, be sure to create an environment that makes the best use of everyone's time and promotes a culture of sharing, timeliness, and fun.
Aaron Bjork is a Principal Program Manager at Microsoft working on Agile experiences and tooling within Team Foundation Server (TFS). Prior to joining TFS in 2008, Bjork worked as a software engineer and development lead in Visual Studio. He is passionate about Application Lifecycle Management solutions and has a strong desire to see teams improve their software engineering practices. Follow Bjork on his blog at blogs.msdn.com/aaronbjork.