Friday, February 8, 2008

How Does an Agile Team Work from Day to Day

I got a question the other day about how an agile team works on a day to day basis. It is an interesting question because the individual that asked me was trying to figure out how to explain it to his vice president. It got me to thinking about a couple things: what really does happen on an agile project each day? Sure, there is the daily scrum (or stand-up, depending on your preference), potentially pair programming, test driven development, etc. But, can those activities be characterized in such a way that someone who is not familiar with agile software development can understand it?

Boehm and Turner have a good description about a day in the life of an agile project and a more traditional plan-driven project in their Balancing Agility and Discipline: A Guide for the Perplexed (it is in Chapter 3). Nevertheless, our organization has the additional challenge of using distributed (or, more correctly dispersed) teams. While the basics of Boehm's and Turner's "day in the life" does not change, I have outlined a couple small adaptations that are important for a distributed team:

The Stand-up Meeting

When the team is sitting together (collocated), communication is generally face-to-face. In most cases, this is the most efficient form of communication (an exception is when personalities are so strong that face-to-face is detrimental). For a team with dispersed personnel, communications need to be by another means. Nevertheless, a stand-up meeting needs to be near real-time to be effective (this is based on my own research). Instead of standing in a room, the team needs to agree upon a time to meet and hold the meeting by teleconference. We have typically enhanced this audio-only medium with instant messaging support and a shared web conference (with our without a digital white board, depending on the topic). At the end of the meeting, a diary (or minutes, if you prefer) entry is made on the team's wiki page.

Just like a normal stand-up or daily scrum, each individual gives a brief summary of what they accomplished yesterday, what they intend to accomplish today, and whether they have anything blocking their progress.

Communication Throughout the Day

Unlike their collocated counterparts, dispersed and distributed teams cannot just call across the room if they have a question they need answered. Instead, we have used instant messaging. At the beginning of the day, a group instant message chat is begun for the day. When a team member has a questions, they enter it in the chat. This includes clarification questions for the customer and their responses. If a more comprehensive discussion is necessary, the phone is the primary medium.

Summary

The fundamental difference between collocated teams and dispersed teams performing agile software development is not in the activities, but the modes and methods of communication. Dispersed teams are not as efficient in their communications, but it can be made to work when all of the members are dedicated. I hope my colleague's description goes well.

No comments: