November 07, 2007
Scrum: Are distributed teams an oxymoron?
As an Agile practice, Scrum puts great emphasis on frequent daily colloboration among the team members. As an example, the Daily Scrum is a 15-minute, daily, stand-up meeting where the Team comes together to discuss the all important 3 questions - what did I do/finish yesterday, what am I working on today, and what is holding me up? Often, Scrum teams work in large, open rooms where dedicated workspace is eschewed in order to work more closely together on common tables. Whiteboards are hung on the walls with notes, product backlog items (PBIs), impediments, the Scrum burndown chart, and so on. So it would seem that a team that needs or wants to be distributed outside of a single space is a no-can-do in Scrum, right?
Wrong.
Actually, the new normal in today's business world is to find ways of producing products and services ever more cheaply by going to other parts of the country (the U.S. in my case), or the world. Usually referred to as "outsourcing", it's an increasingly used method of driving down costs. So if your company typically outsources part or all of its product development, the question then becomes how to use Scrum effectively.
In my own case, we have outsourced some non-core business functions to outside company's, some staff have elected to move to other lower-cost jurisdictions, and yet there are staff here at the main office. Together they form the Team of people around a project. Since for us this is the way we run the business, the challenge is to find ways to adapt to the various aspects of Scrum.
The first consideration is whether the Daily Scrum is still meaningful if some or all of the Team members are distributed.
The short answer is Yes, and quite possibly even more meaningful since people are distributed. The Daily Scrum functions as a point of coming together as a Team to ensure everyone knows what is going on in the Sprint. It's quick and as I mentioned earlier has a particular structure. However, the essence of the Daily Scrum is its focus on communication. The aspects of the Daily Scrum such as the standup, the dedicated time, and so on serve to keep the meeting on track and regular so it's effective. They are important but only as support aids for the purpose of the Daily Scrum - ensuring everyone knows what is going on day-to-day. For a distributed team, getting everyone together for a stand-up is not possible obviously. The challenge then becomes how to accomodate the lack of physical proximity with the need for regular, effective communication.
A solution I've found effective is the use of teleconferencing. We use WebEx as our meeting software since it's web based, and supports the need for video and audio access by a group of people. So to support the Daily Scrum, I setup a recurring meeting that meets at the scheduled time for the Daily Scrum. An email was sent out to the Team that included the call-in number and access codes. This also gave people the ability to call-in who were offsite and away from their usual work location. In our case, sure enough at the dedicated time, people start appearing in the conference call and we get started once everyone "arrives". 15 minutes later we're done. The communication among team members has happened, people know what's going on, what happened yesterday and likely events for today. They also know where the burndown of the Sprint stands.
Can you retain the standup aspect to a Daily Scrum with a WebEx call. Clearly not. But the standup aspect helps keep the meeting to 15 minutes since people get tired of standing. A well-running Team that understands and has internalized the meaning of the Daily Scrum is usually anxious to get going with talking about their status in a brief manner so everyone can speak and be heard. I've rarely found a Daily Scrum running past 15 minutes, and typicall they finish much faster than that. People walk away from the WebEx call with the information they need, and the Team continues working effectively in the Sprint. That's the essence of the Daily Scrum.
This extends to planning and review sessions with the Product Owner. In our case, we use WebEx to do the review of a finished Sprint by showing the software via a projector on a wall in our conference room. We also use Microsoft Team Foundation Server along with a Scrum template that manages our PBIs and SBIs. So after the demo review of the Sprint, we continue with planning the next sprint by reviewing together on-screen the backlog. Editing of the backlog can happen during the meeting if the PO provides additional detail during the discussion that we want to capture. Everyone is on the phone who is away from the main office and can view the on-screen interactions as they happen.
Agile is all about adapting to local experiences and observations. In today's business climate, distributed teams are common and are only going to increase with the relentless drive for efficiency. Scrum is a process that adapts very well to this type of environment with a little help from modern technology.
Posted by Mark M. Baker at 12:50 PM Permalink
|