Have you ever thought of remote tech-teams as a solution for the developer-shortage or as a cost-effective solution to expand your current team? Do your customers need service outside the ‘9 to 5’ of your local time zone?
Remote tech-teams are a great option for these and many other cases as long as your company is prepared for it. With my current employer (US Mobile), we have years of experience with geographically-distributed remote tech-teams.
It has been a steep learning curve and we can now say we have figured out how to make it work. In fact it works so well that US Mobile is one of the top 100 fastest-growing privately held company of 2019 in the United States.
In this article, we will present our five most important tips that made it possible — keep in mind that there are no silver bullets. You must have your basics in good shape to have working foundations for everything else (f.e when you are growing rapidly).
Here are my top 5 tips to make remote teams work:
1 Improve Internal Communication
Communication is the key to success in any team-work activity. However, for remote team-work, it is one of the most important cornerstones. The amount of information you get from the official communication channels in your company are already insane — and that doesn’t even include unofficial discussions or ad-hoc meetings.
When you add remote-work to the equation, you need to make sure your remote teams have all the necessary information from the projects they will be working on. Chances are, that it will be a hassle for a remote worker to keep up to date with all the daily chats, unofficial discussions or ad-hoc meetings inside the company.
Remote-teams can only be efficient if you make sure that key information that goes through all these different info-streams is being shared in a centralized way. If already these basic layers of communication are not working inside your company, you are probably not yet ready for remote teams.
When it comes to hiring remote developers, you must share a common language. The threshold of not being able to meet face to face is already big enough to add another layer of “misunderstandings”. When you are hiring for your remote team, make sure to focus on the candidates’ language level.
If you are struggling with the language during the interview, you may have hard times ahead of you. Keep in mind, that even if the language level is not perfect, the person will improve when they are faced with using the language daily.
Example: US Mobile had to terminate a contract after 4 months because the developer and the team did not have a common language which made the daily communication impossible. But we have also hired a Ukrainian developer whose English was on a beginner level and whose daily meeting was held in Russian language — 3 months later he was speaking English just like any of us without any communication problems.
2. Use project and issue management tools extensively
The project and issue management tools of your choice are equally important for you and your remote team — for different reasons. When it comes to you, the tools should provide you with clear visibility overall current, past, and future tasks without asking for updates. You should be able to see the status of each task, to whom it is assigned and an estimate of when it will be ready.
For the remote team, these tools are the main source of information for their daily work. It must provide a clear understanding of priorities, tasks, and deadlines. That way, the team can independently choose the next task and can implement it without any blockers — like the need for extra information.
The dependence of these tools grows the more geographically distributed the team becomes. For example, it is common for our European team members to work when the U.S. team is enjoying a public holiday — and vice versa. Whatever the case, they need to be able to work efficiently and you will need to know what is going on.
With plenty of these tools on the market, what matters is how you use the tool. The tools of your choice must have a structure that supports the processes of your company and allow you to create detailed specifications for the tasks.
3. Create detailed specifications for projects
You should treat the tickets in your project management tool as the main source of information about the tasks. Make sure the tickets contain detailed specifications that allow the remote team member to perform any task without additional information.
Don’t assume anything — remember that local team members have typically been part of many office discussions about the upcoming tasks and have a better understanding of what needs to be done.
While the “voicemail password reset” feature makes sense for some of your developers, the newly on-boarded engineer might not know that he needs to extend an existing feature on the internal admin tool, instead of creating a new feature for our customers. You probably didn’t know that either before I explicitly explained it.
Before starting the development of a new feature, the team should go through all the related tickets and specifications and provide feedback. The feedback makes sure there are enough information and fewer blockers during the implementation phase. You will be surprised how many things are clear for you but not for the remote team.
4. Have defined processes for each project
One big benefit of a geographically distributed team comes with different time zones. The team members can work ‘9 to 5’ local time but as the team spans over multiple time zones, the work time covers a big portion of the day.
At US Mobile, some of our major releases are done at 3 am EST to minimize the possible impact on our service and customers. These releases are typically handled by our team members in France where they can do the release at 9 am local time.
The team needs to know what the release process is. They can also fix a bug, test the changes and deploy it to production hours before anyone starts working at our main office.
With clearly defined processes the team knows how to act when necessary. Without the processes, you will lose some of the benefits of remote tech-teams and it will be harder for them to work independently.
It is also worth noting that most people love processes as it will make the tasks easy for them. If you hear several complaints about the processes, make sure your processes are flexible and that you are open to feedback.
5. Have Kick-off Meetings and Retrospects
When the communication works and you have proper tools, specifications, and processes, it’s time to have a kick-off meeting before starting any major feature.
During the kick-off meeting, you will go through the business requirements, design specifications and technical details to keep the whole team up to date. You should also provide clear reasoning why the feature is important and when it is expected to be ready so that the team is committed to it.
It also acts as a forum where the developers can ask questions and fill in the blanks — especially the ones you have been discussing at the office but forgot to share (extensively).
You should also have retrospect meetings regularly with your team. During a retrospect meeting, your team can discuss the tools, specifications, and processes of what works well and what should be improved.
Listen carefully for the feedback and select 1–3 items that you will improve during the next weeks. It is also important to do a follow up on the next retrospects to make sure there has been progressing.
Even though a team-wide meeting for every major feature may seem like a waste of time, it makes sure the team can be efficient during the development and testing phases — and it will save a lot of time. Trust me, I’ve been there done that.