Distributed development teams are a significant part of the IT industry. They come in many shapes and sizes, but they have one thing in common – team members are not present in one geographical location. This presents a series of challenges that should not be underestimated. Distributed development teams are a significant part of the IT industry. They come in many shapes and sizes, but they have one thing in common – team members are not present in one geographical location. This presents a series of challenges that should not be underestimated. 

Those challenges may have a severe impact on teams’ performance and thus will affect both delivery and quality of the product you are working on. In extreme cases, it can even lead to not delivering the project at all. Although there are no techniques that give you 100% certainty that building a distributed team will succeed, in this article I will give some advice on how to approach the subject.  

1. Start with bringing every team member to one geographical location

Even for a week or two. Let people establish a working relationship with colleagues who are sitting next to them. Let them talk face-to-face as frequently as possible. It is crucial that people get to know each other (even just a little bit).  

2. Organise ‘after hours’ integration activities and a party

You not only want your team members to remember their teammates’ faces. You want them to establish personal relations. An integration event will help them to understand each other and significantly reduce the number of conflicts and communication misunderstandings. 

3. Set up a group chat

A messenger app will greatly reduce the number of emails and allow team members to quickly (and in some cases almost instantly) share ideas, problems, solutions and technical decisions. 

4. Set up a project wiki

You need an easily searchable knowledge base available for every team member. You can store your project documentation, a description of development processes, meeting minutes and other useful information there. One online data repository will save you many misunderstandings. 

5. Set up core hours when every team member must be available online

The length of the core hours may vary from 1-2 to 7-8 hours per day. Of course, the more the better. Having a fixed timeframe when everybody is available online will allow you to easily schedule meetings and receive immediate feedback on the group chat. 

6. If possible set up a video conference bridge

This is usually not as hard to accomplish as it seems. Having the ability to see (and hear or mute) your team members, see if they are at their desks, having a snack or on the phone will make any interaction much more personal.   

7. Assume additional overhead and more meetings

As people in the distributed team are not sitting next to each other they will need to find a way to share all major technical decision and process changes. Using only the project wiki is a rather poor option as you want not only to share information but to get feedback and assure common understanding. In most cases, a short video conference should do the job.

8. Choose your team members wisely

Some people are better suited for remote work. Others are not so keen on it. In many cases, they will need to maintain a high level of discipline and motivation by themselves. Preferably choose people who can work without any supervision for a long period of time. 

9. At all costs avoid an “us versus them” mentality

You want team members to work as a team, not as a group of people assigned to the same area of problems. Teamwork, helping and caring for each other should be among the team’s core values. Remember: every success and failure is teams’ responsibility. 

10. Make sure that every team member has a camera and a headset with a microphone

Team members should be able to talk to each other on many occasions, many times a day. It will be much easier for them if the will be able to see each other.  

11. Periodic meetings in the same geographical location

It is a really good idea to not only make the team meet once but to make it a periodic event. It will help you maintain a healthy working relationship and should be treated as a mandatory team building activity.  

12. Establish the Code of Conduct

Your team needs a set of rules that will guide their work process. The Code of Conduct should promote proactivity, frequent communication, helping teammates and solving problems together. This way you will save a lot of time and effort on miscommunications and inaccuracies.  

There is no ultimate formula to build a fully functional distributed development team. But with the right people, right tools and the right attitude it can work really well and the payoff is huge. And what is your experience with a distributed development team? Please share your experience and leave a comment below. 

Coach, mentor and Team Leader. Certified .NET developer, Agile enthusiast and Machine Learning specialist. In his free time ̶ avid scuba diver and fantasy books reader.