From my experience while working with multiple distributed Agile projects, following things are very important:
- Frequent collocation (every quarter at least) with clearly defined goals to achieve from each side. At the end of collocation it’s important to do a retrospective on the effectiveness of collocation based on goals achieved or over/under-achieved.
- Scrum Master at customer location
- Distributed standup every day on Skype or with some other video-conferencing tool
- Good microphones for distributed group conversation (for instance http://www.samsontech.com/products/productpage.cfm?prodID=2010)
- Good bandwidth for Skype video conversations
- Good headphones for each individual for distributed pairing
- Distributed pair programming and if required distributed knowledge sharing sessions
- Pre-planning meetings to understand user-stories better
- Peer to peer communication between distributed teams
- Local retrospective if required.
- Prepare for distributed retro and demo before doing it
- Define a slot for technical discussion after standup is over.
- Some time overlap ( due to timezone difference ) between distributed teams for better communication. This increases productivity for sure. If time-zones are completely different, teams have to shift their work timings.
Bob MacNeal says
Distributed teams are often a red flag that the stakeholders don’t care about the quality of the product. But, distributed teams are an unfortunate (often short-sighted) reality, so your post has a few practical suggestions for making the best out of a sub-optimal situation.
Ralph Mack says
I’ve worked on some pretty good distributed teams and I agree with the practical suggestions in the post. One question, though – when you say frequent collocation, do you mean flying the entire part of the team between two continents or rolling collocation of a few individuals at a time until everybody has had face time? I usually find that a small amount of face time cements a relationship of personal trust that can then be nurtured effectively through media. This can be diluted somewhat if folks show up in a great mob. It is also good if collocation doesn’t mean the frequent-flyer miles are all logged by residents of one country. 🙂
ShriKant Vashishtha says
The statement below is partially correct:
” or rolling collocation of a few individuals at a time until everybody has had face time?”
So it’s not always the entire team but representatives of team (1 or 2) who go for collocation. It’s not only one side which goes but representatives from both sides going is much more preferred.
Where I differ is – it’s not that only until everybody has face time we keep on doing it. If project is large, the same people may go multiple time over a course of time. Here is a simple reason:
Communication through media like Skype or phone is two dimensional.
You talk to the person but you don’t actually get the feeling of talking to that individual in person. You get the personal feeling when you talk stuff other than technical. I mean knowing individual personally which happens when you share some jokes, some personal anecdotes, having lunch together etc. This brings a personal touch and is durable.
However in distributed team as you fall apart and come back to your location, the bond which got created during collocation gets filled by too many other things.
It’s similar to cases when somebody leaves from your life, you actually feel void but after certain period of time, TIME itself fills it up because of the things happening in surrounding. Thats why we say Time is the biggest healer.
The personal interaction through media is limited. Most of the time I should say it’s more technical. You talk only when you feel you have a business need as you have to make sure if the person is available on other end and if he is not working on something else.
You talk business and as soon as business talk is over, both side would like to finish the conversation. Occasional funny conversations happen but that lacks real meat as both individuals have two different surrounding and their own world.
At the end, after 2-3 months you lose the touch with the individual on other end as personal bond which got created during collocation gets filled with so many other things.
I have seen mistrust cropping up after certain period of time (2-3 months) because of mis-communication, lack of communication etc which is very natural considering the distant talks they have. That’s why I feel the need of collocating again in order to rejuvenate the personal touch. In my experience it doesn’t have any other alternative.
So even one single individual visits other side makes a huge difference for the team environment.
Ralph Mack says
I can see that if the business culture is one where Skype conversations don’t lead to the usual general family talk after the technical discussion is concluded, it could need a refresher after a few months. It was somewhat like that in my early distributed teams before I got comfortable with it, but I still touch base with a few people even after I’ve left the company where we worked together, especially from the later projects.
Is it always the same representatives who go? I’m always nervous about narrow channels. I like to have the information culture be as porous as possible.
How do you deal with language issues, where some members of the team have more bandwidth coming and going in the common language than others? I have a devil of a time with parsing through the vowel shifts in accents but thankfully the people I’ve worked with are patient with me even though I’m sure this makes me tiresome to get through to some times. On occasion we’ve done mixed voice and IM as it has helped where I can read the words I’m clearly not understanding when spoken. Also, many people whose English isn’t fluent are much more articulate in text than speaking on the fly (more relevant to many other countries than to India).
This, of course, affects how porous the communication can be, how many people are talking to one another. It is easier to talk with people that it is easier to talk with… 🙂 There have been some folks on my teams that I wish I’d had the opportunity to get to know better.
ShriKant Vashishtha says
I can see that if the business culture is one where Skype conversations don’t lead to the usual general family talk after the technical discussion is concluded
I think it’s more about cultural differences rather than business culture which makes short lived Skype/phone conversations. In case I talk to someone from my own country, the comfort level is much more different.
Is it always the same representatives who go? I’m always nervous about narrow channels. I like to have the information culture be as porous as possible.
Sorry about using wrong term representative in this context, it’s rather any and every team member who should go. So the guys are not repeated unless there is business need to do that.
I see the value on having conversation on text rather than speaking on the fly in case of language issues. But I see it takes longer to communicate with text. Same thing could be expressed in 5 minutes which may take half an hour.
I have worked with French team where communication was tough as English is not their native language. It’s really a hard time and sometimes lead to reversing effects if people can’t communicate freely. So I see common language or in other words at least understandable common language a MUST for effective distributed communication.
Mix of IM and voice always works as for both sides sometimes it’s difficult to understand the accent which may get easier over time. However making things clearer on text in any case always helps.
Jon Friedman says
Assembla has published a white paper on this subject, based on our own experience managing distributed Agile projects (and based on our own software tools).
The paper is called “Distributed Agile, Six Keys to Success,” and it makes the following suggestions:
1. Run daily online scrum/chat meetings
2. Share a daily build
3. Manage all tasks on tickets
4. Use tickets to organize iterations
5. Fix release dates and let features move
6. Use a developer activity stream
The white paper can be downloaded at http://offers.assembla.com/whitepaper/distributedagile/index.html
(Registration required)
Vinay Aggarwal says
There is another blog on the same subject:
http://vinayaggarwal.com/2011/07/28/recipe-of-successful-collaboration-distributed-global-teams-2