Introduction to Distributed Development

Distributed development is a term used to describe geographically distributed people or teams working on projects together.  It has become a more and more common and accepted way to work as the Internet has made it easier for us to communicate and it will, without a doubt, become even more prevalent.

Having a distributed team can be extraordinarily difficult and many people will dismiss the idea out of hand but there are a lot of potential benefits – the increased diversity of the team, insights into foreign markets, the potential to “follow the sun” to keep work going around the clock and so on.  The pros and cons of distributed development are worthy of long and passionate discussions but for now let’s assume you’re involved in or leading a distributed team.

I’ve spent a lot of time thinking about how to make distributed teams successful because it has been crucial to my success several times in my career.  I’ve developed a model around how to think about what makes distributed teams succeed or fail and there are three different angles I look at.

The first, most obvious thing to look at is Collaboration Tools & Practices.  How do you use email, how do you handle planning and schedules, how do you handle bug tracking and task assignments?  Obviously a physical scrum board with sticky notes doesn’t work when one or more of your team members is an ocean away.  Is there an opportunity in how you schedule work to take advantage of time differences?

What kinds of meetings do you have, at what time and does anybody take notes?  When you have a distributed team you can’t rely on hallway conversations the way co-located teams are wont to do, you have to make a point of including remote team members.  This means scheduling daily meetings to touch base when everyone can be included and not having meetings that only local members of the team can attend.  One thing we found immensely valuable was a rule that if any one person had to dial into a meeting then everybody had to dial into a meeting.

Even more important than process issues though are Team Dynamics.  Who works for who, who has what goals, who are your most influential people and how healthy is the organization in general?  Who has a stake in whether the entire distributed team is successful and who would benefit if it were not?  Distributed development is one of those things a lot of people love to hate and some of those folks will sow discontent at every opportunity.

The good news is that focusing on how to make your distributed team work often helps improve local teams too. When I was managing teams in Europe and China I made a huge investment in building the team that was my direct reports – the leads in each country.  When those four people felt like they were working towards a common higher purpose they did a lot of the work to bring their teams along (and they were happier too).

The third angle to consider is the Division of Work, i.e. what is the purpose of each office and what are the dependencies between the offices. Some companies setup remote offices to address a specific market and some do it to take advantage of cheaper labor.  If there are a lot of dependences between offices it can slow down work and demoralize teams.  On the other hand when leaders go overboard in compartmentalizing work satellite offices often end up with the least important work, which makes them feel unappreciated.

The trick then is to divide up the work in a way that creates positive dependencies between offices.  That’s even harder than it sounds because there is so much to consider – the work that needs to be done, the cost of doing business in each market, the skills and aspirations of people in each office and so on.  It’s complex and it can take several tries to get it right but it’s critical if your distributed team is to succeed in the long run.

There are entire books written about each of these topics but in this introductory post I just wanted to introduce the model.  Even without specific guidance just thinking about your circumstance through the lenses of Collaboration Tools & Processes, Team Dynamics and Division of Work can help you make better choices.