DEV Community

Cover image for Practices of Managing a Software Development Team Across Time Zones
Django Stars for Django Stars

Posted on • Updated on • Originally published at djangostars.com

Practices of Managing a Software Development Team Across Time Zones

With globalization gaining momentum, work practices have changed and evolved. Finding the best people for the team has become less of a challenge, since the whole world has been turned into a giant hiring pool. Over the past few years, businesses have collected ideas and working practices that can help them to make the most of remote work and allow everyone to be as effective as possible, no matter their zip code. Numerous successful companies and startups have been working without a central office from day one, and this has always been their strength. It can be yours as well.

I’ve worked on half a dozen projects with Django Stars and managed some amazing development teams. With them, I’ve gained experience and learned the best ways to manage outsourced employees, which I’ll share with you below.

When working with outsourced teams, it’s not enough to give the software development team a checklist and have them work through every part of it. If that was the case, life would be so much easier! Each project, at every stage, can and should be optimized depending on the circumstances, the team members’ competencies, their roles and backgrounds, as well as the obstacles typical of each market.

My task as a Project Manager is to not just give the recipe or a checklist for the team to follow, but to provide guidelines on how to create a truly efficient team, understand the tasks, and deal with the problems team members might, and most probably, will encounter.

But most importantly, every Project Manager has to see the big picture. They need to understand the whole project and recognize immediately if something is wrong and how to fix it. They have to be persistent when communicating with the client. There should be no informational gaps. And finally, they have to be sure that every team member knows and understands their task, which is a top priority for any Project Manager.

Of course, teams and management aren’t exactly new sciences, and there are plenty of lists and instructions that are important to know if you kick off a project with a team. However, they don’t really explain how to manage a team if it’s located in a galaxy far, far away.

How We Work Remotely Across Time Zones

As a Project Manager with a solid portfolio, I was able to compare various approaches and practices associated with working on the technical partner side, as well as with remote teams. Making my own conclusions allowed me to improve my processes going forward.

Again, dealing with remote workers is different from having your own in-house team. Here are some key considerations to take into account when building a communication approach for a remote team:

remote-team-challenges

When working with teams located around the world, Project Managers physically can’t control every single factor in the development process. However, they can influence the team’s dynamics and the factors mentioned above. Their task is to use them to the team’s advantage, and to know how to use them to identify and solve problems, monitor effectiveness, and do this across the miles and miles that separate the team members.

manage-the-outsourced-projects-overcommunication

Communication Tools for Remote Collaboration

Communication is an important issue in every team. There are a couple of basic rules for successful communication. First, choose one communication channel for everyone. This way, you minimize the chances of any information getting lost, which is crucial when setting tasks for a development team. Chances are that different team members prefer different communication tools but in the interest of the project, you and your team should settle on one, with one or two others used as a backup or for special functions.

As soon as you choose the communication tools that work for everyone, you’re set to go.

Over the years, I’ve tried many communication tools for day-to-day communication. Here’s a short overview that might help you choose yours.

Google Hangouts. In my view, this is the most stable messenger platform, one that syncs with your Google account, mailbox, Calendar, etc. You can use audio and video calling, see all participants thanks to a shared screen, and mute and ping individual users. It’s important to pay extra attention to colleagues on the phone or on the video, since there’s always a risk that you might forget about someone on the speakerphone.

On top of its basic functions, Google Hangouts allows you to stream your meetings on YouTube and/or record them for editing. The mobility of this tool allows you to sync it across different iOS and Android devices.

In  comparison, Skype (for instance) isn’t suitable for teams over 8 members, and is seen as more of a tool for private conversations rather than business.

In general, different countries prefer different video conference software. You can research what is most widely used in the region the team is working in.

Slack. Remote team communication can be done through more common channels like Slack, which is used even by co-allocated teams. But since everyone is more accustomed to everyday communication on Slack, Project Managers need to pay attention to the conversation flow – they need to mediate, set up official channels, and discourage private chats.

Zoom. This tool may be useful, if you need to record your conversation, but the application is free only for the first 40 minutes. This is a big disadvantage compared to other free platforms offering similar services.

Of course, there are many more platforms for audio and video chats and conference calls, so you’re free to choose whatever fits you and your project. The goal, however, is to pick one that the team members will consistently use and that works reliably on everyone’s infrastructure.

Good Communication Channel Setup Standards

As it happens, many remote teams have never worked together before and have never met the other members. To set up effective and successful communication, it’s important that the team members know each other’s roles and responsibilities, as well as their personal features. And it’s the Project Manager’s job to ensure everyone feels comfortable.

The first step to getting everyone to know the team and its team members is to set up comprehensible and informative profiles. This way, everyone will have the background they need to understand the context of every communication session.

This background must include, at the very least:

  • Their complete profile, with bio and contact fields filled in;
  • A profile picture (one that’s not a cartoon character);
  • Their title and role, clearly stated;

and

  • a phone number or another way to get in touch quickly, with a 100% response guarantee.

No matter what communication channel you choose, as long as everyone properly introduces themselves, the communication will be more comfortable and efficient.

The next step is to establish certain communication practices.

Good Practices for Working Across Time Zones

outsourcing-team-Practices-for-Working-Across-Time-Zones

Remote development teams aren’t new to the IT industry, but working across time zones adds new challenges to organizing day-to-day operations. And since time differences can limit the time for interactive feedback and interpersonal communication, time overlaps should be used as effectively as possible.

Choosing one communication channel is the first step to avoiding distractions and losses of information. But where do you go next?

Organize Schedules for Structured Overlaps

Different locations for team members may appear to be a disadvantage, if they’re not used properly for the greater good. For a better communication, use time overlaps for conference calls and/or joint team assignments. Plan them in advance and in detail, prioritize, and make every minute count. A bit of time pressure will keep everyone in shape and focused on the most important matters. But the most critical part about the schedule is that you stick to it and be consistent. Also, don’t try to work 24/7. It’s never done anyone any good.

Communicate Questions in Checklist Format

In circumstances like these, it’s important to keep tabs on things, make sure every task gets the necessary attention and that all questions are answered in time, in order not to stall the process. A great tip is to compile checklists for every workday, divided by project. For better efficiency, link these checklists to the project depository of your choice.

To keep track of the work being completed by a remote team, many teams turn to various SaaS tools for communication, project management, and running effective meetings. A key feature common to most of the tools for remote workers is real-time collaboration. A tool like Coda, for instance, is a real-time collaborative doc, but also has spreadsheet and database capabilities that allow for more advanced task tracking and resource utilization. They have developed various meeting notes and agenda templates that are heavily used by remote employees to keep in sync with their co-located team members.

Have a Single “Source of Truth”

Any project relies on certain formal and informal agreements, which, to avoid further confusion, should be easy to track. To ensure no critical information is missed, you should establish one “Source of Truth”, a kind of safety deposit box that holds all the important documentation and project decisions.

My team uses Confluence, but you can use whatever works best for you. This tool allows us to maintain our documentation in order and keep it properly structured. Don’t overcomplicate the structure – don’t go further than three levels. If you have any requests or comments, just add them to the page of the related topic.

Establish Processes for Remote Teams

When it comes to remote teams that work across time zones, structure and order are everything. The more people work on your team, the more important is it to establish processes and procedures for everyone to follow.

For example, I once discovered that three different members of the team kept separate Excel files that were convenient for them to keep track of the project’s progress. Of course, that doesn’t really work well in a team context, but getting – and keeping – all of the team on the same page is very important. Sometimes this means changing your own habits and adopting a less feature-rich tool compared to what you’ve been used to, just so that everyone can stay on board. Ideally, you’d agree on official project tracking tools ahead of time, but sometimes you’ll discover contributors whose various files and documents will need to be merged into one system that works for the majority of team members, not just one.

Create a Communication Line with an Escalation Path

Not every team member has the authority or the knowledge to make certain decisions or solve problems. Obviously, not solving an issue can stall the project or cause deadline delays. The worst-case scenario is it may cause a breach of contract and major money loss. As a PM, you should implement a communication line for all team members to follow that works for all team members, with a clear escalation path if an issue arises.

The communication line could be a document containing a diagram with names, titles, and areas of responsibility. The escalation path is essentially a clear management chain. If a team member doesn’t have the power or resources to resolve an issue themselves, they should know all the higher-ranked individuals who can. And if a client representative can’t reach an understanding with a team member on the remote software development team, they should know who to address on a higher level to solve the issue.

Agree on Request Communication

When a large number of people are working on a project, it’s not uncommon for something to get lost in the communication, or responsibilities to shift from one team member to another. Something as important as requests or remarks by the Product Owner can’t get lost or ignored. Establish a process for important feature requests that is clear and transparent, and agreed upon in advance. Assign one person to be in charge of taking requests and comments from the Product Owner at any time. Or establish a time – like regular team meetings or calls – when they can be introduced to the team at once.

Get Approval For Every Change

Seemingly minor decisions can lead to big consequences when dealing with code. Sometimes, the technical team sees a different (better, in their opinion) way to reach the goal of the customer, or maybe even to introduce something entirely new to the project. But what is logical and clear to the development team may not look the same way to the client. For cases like this, there’s only one rule: every single change should be approved by the business side. This way, every decision can be traced and clarified.

Technical Team Remote Collaboration Must-Haves

Obviously, the remote team needs a transparent and clear structure to follow when working on a project. But the technical team also needs some special processes and algorithms to work effectively. While managerial issues can be open for discussion, the technical workflow is much more complex. How do you proceed?

  • Collaboration flow
  • Checklist for pull requests and commits
  • Code style guide
  • Channels to quick Q&A chats

Establish a Standard, Intuitive Collaboration Flow

From the very beginning, establish who communicates with whom, who sets the schedule and deadlines, who decides the tasks to be approved or sent for reworking. It should be clear to everyone who is responsible for what areas of the project, and who is in charge.

Define an Agreed-Upon Pull Request and Commits Flow

When it comes to the technical side of the project, you have to be really thorough with your processes. Otherwise, one little defect might jeopardize the whole project. A checklist for pull requests and commits will make sure deployments are smooth, predictable, and include timely feedback.

Introduce or Develop a Code Style Guide

For the whole project to function well, the code must follow certain standards and be of high quality. When multiple hands are touching the code, there’s a danger that every pair will want to bring in something of their own. Which is why it’s important to settle on some guidelines in advance. This will make the code clear for everyone who may join the team in the process and/or is involved in maintenance, and also ensure that no important logic is hidden in comments.

Any Project Manager should be able to evaluate the level of team member knowledge prior to the project kick-off. To do so, they should:

  • Find out what team members know and don’t know about the tools that will be used;
  • Take measures to fill in knowledge gaps – for instance, by conducting workshops; and
  • Create instrument and process guides that team members can consult whenever they need to.

Managing Outsourced Teams Takeaways

manage_outsourcing_team_time_zones

We’ve just covered a serious amount of information about managing remote software development teams. Of course, it needs time to be processed. In conclusion, here’s a short overview of what works best:

  • Single channel for communication
  • One “source of truth” for requirements
  • Agreed-upon request communication, so no important request is missed
  • Any important policy decision should be approved (ask “please approve” to key logic additions)
  • A well-structured work schedule for better efficiency during time overlaps
  • Use linked question checklists

My bonus tip would be, as a Project Manager, to focus on doing everything humanly possible (and impossible) to make time for personal meetings. This will help build mutual respect among the team members and allow them to understand each other better. To get a more “real” feel for time, put up physical clocks to visualize the time of each of the team member’s time zone. And when you actually get to work with a visiting team member, write a short resume about the results of your work to keep everyone on track.

In my experience, all this should help you successfully manage a great team of outsourced vendors that is easy to work with and easy to manage. But most importantly, using the approach I’ve laid out, a remote team offers the following advantages:

  • Increased efficiency. Even if the team members haven’t previously worked together, they will be able to better understand each other and the whole process.
  • Clear status. The risk of questions remaining unanswered is close to zero.
  • Customer orientation. The team shows that it actually cares that the product turns out they way the customer wants it.
  • Great time management. The team will save their time – but more importantly, the time of their customer, which again is proof of customer orientation.

Good luck!

This article about managing a software development team across time zones is written by Nataliia Peterheria. Originally posted on Django Stars blog.

Top comments (0)