One of the realities of many corporate environments is that you work with a group of people called a “team” but a variety of factors prevent you from actually sitting together. At Alistair Cockburn’s keynote presentation (PPT) at Agile 2009, he showed an interesting slide about the costs of a team not being colocated.
Colocation (and it’s more effective twin, pair programming) aren’t actually Scrum practices per se. Pair Programming is an Extreme Programming practice, and Jeff Sutherland has written several articles on working as a distributed team.
But colocation is a vital practice, so how can you know when it is OK not to be colocated and not doing pair programming?
I miss you already
Since most teams end up forced into non-colocated situations, let’s talk about the organizational maturity necessary to work effectively as a distributed team. When a team is not physically in the same office, there are several important things you lose:
- Facial and Body Cues
- HIgh impact communication
- Incidental conversation
- Low impact help
- Instant reflection
Let’s start with a non-colocated team. Let’s say we have part of the development team in Florida, part in South America, part in Pittsburgh, and a product owner in New York. The team discovers that the story they are working on has a disconnect between what is being done and what they think should be done. The team lead in Florida sends an email to the BA in Pittsburgh. She schedules an urgent meeting for an hour later with the whole team and sets up a conference bridge and a LiveMeeting. The PO is already on another call and can’t join. The South American team has some minor glitches trying to connect, but after about 10 minutes everyone has dialed in.
The BA starts with the issue – the very issue the lead in South America had been trying to bring up. He rolls his eyes to his team down there, who chuckles with the phone on mute. They finally discover that the way the Florida and South America teams have been coding this one feature are using different approaches after the Florida dev lead shares a Visio diagram he put together. It is decided that they will move forward with the South American way, and that the lead down there will work with on of the devs in Florida.
After the meeting, the dev lead in South America schedules a meeting with the dev in Florida. After some technical glitches, they finally share their screen. In describing the issue, they have to keep modifying and sharing back and forth a Visio document. Finally the Florida developer understands, and is able to share that with the team.
For some reason, we consider that a good way of working, and don’t realize how much waste is truly involved in that process. Let’s look at that same scenario with the team colocated.
No, connect this square to this circle
We find ourselves with the same team, with the same issue, except all members sit together in the same office. During their stand-up, they discover a disconnect in how one pair is completing the story from how a second pair is working on it. The BA rolls a whiteboard over, and they sketch out the disconnect. One of the team members rolls his eyes, and the BA catches it and asks him about it. The team member explains this has been a common issue, but ignored.
The team quickly discovers where the disconnect is, and the two pairs swap so they can show each other what they’ve been doing and get back to the common way. The BA and team lead bring the common issue up to the entire team during the Scrum of Scrums, and it’s quickly communicated and resolved.
But the rest of us live in the real world
Unfortunately, team colocation can sometimes be out of the control of the team members. Offshoring, outsourcing, remote employees and other aspects can lead to less-than-ideal situations. So when can a team be OK with not sitting together?
- Never – This might be a strong word, but the team should never be content that they aren’t able to colocate. With that out of the way…
- Open Communication – We need to be past many of the 5 Dysfunctions to know that when we have an issue, we can bring it up
- Excellent Tool Support – Conference Bridges, webcams, screen sharing, Skype, remote pairing tools and electronic whiteboards (or digital cameras for regular whiteboards) are all vital tools for trying to keep communication open.
- Team Agreements – Perhaps the best rule that I’ve seen in place on dislocated teams is to always use the webcam first, then phone, then email as a last resort. I’ve also seen teams keep open webcam links between two sites, with voice going to help increase the incidental communication factor
- One Team / Team Identity – Perhaps the worst situation is when you have two teams acting as a “team” but who have different values, different metrics, and different goals. Offshore / Outsourced personnel should have all of the logins, access and notification that someone working right in the office does. In other words – you should act as much as possible as one team
So while colocation may not be a stated principle of Scrum, it is vital for hyper-productive teams. While there are strategies you can take to be highly productive even with a dislocated team (see Jeff’s paper for ideals of how) in general, you have to have a mature, functional, high-communication team – and you may as well just colocate them.