Guides to help you work remotely seem to have swept through the Internet these days.
Do this, avoid that, stay productive, and all those run-of-the-mill tips we’ve already tried out.
So instead of talking about how your remote team needs to schedule out their day effectively or clean their desk, here I am focusing on the hands-on tips you can apply to manage your software development team while working remotely.
First, we need to understand the exact meaning of “remote teams”.
This will allow you to clearly see that having even one individual who’s working separately means you should improve the way in which you manage your team and the process they use for remote team collaboration and task execution.
What are remote teams really?
Today, millions of companies are faced with remote work situations in one form or another. Whether they’re fully-distributed organizations, have a couple of employees working from another part of the world, or just regularly work with external collaborators.
The first thing that comes to your mind when you think of remote teams is something like: different people working from all parts of the world and distinct time zones on a single project and having the same general goals.
In reality, there are many remote teams that have employees in a single country or even in one city. It’s just that everyone works from their own home, without having to go to the office. 🥳 This saves on costs while managing remote teams.
But many companies (software development included) have offices in multiple countries. When your US team members talk to their colleagues from the UK, they’re essentially collaborating remotely. So remote team communication is a must in these cases even if everyone is in the office.
This being said, whether work is done from an office or not is not necessarily a defining factor for remote teams. The problems you could experience lie solely within the communication and work processes.
Best practices for managing remote software development teams across multiple time zones
Since you’re probably used to all the “do this to be productive” rants, I’ll try to tell you what you might not know.
Hire the right people for your remote teams
People are the heart of any team.
So if you hire the right professionals [and humans] for your team, you’re halfway to success.
On the hiring and interviewing process, here are some of the best tips from Shannon Hogue, Global Head of Solutions Engineering, @Karat:
“I always tell hiring managers to start at the review and work back to determine which core competencies should be listed in a job description. Then, to keep things standard across a global network of Interview Engineers, we put those competencies into structured scoring rubrics for each interview.
Here are 3 quick steps for building a structured rubric that can help keep everyone on the same page, be it for hiring or managing:
Identify what competencies are both relevant and important to assess.
For each competency, list observable behavior and results as checkboxes (select all) and/or radio buttons (choose one).
Write down an “algorithm” to help interviewers summarize a completed rubric into a single conclusion.
For example, if Technical Communication is a relevant competency you might list it on the rubric with a specific scale.”
Here’s what Shannon’s example could look like:
Beyond any hiring tip, effective remote work also imposes a question on whether your office workers will adapt to the new lifestyle.
If you’re switching from an office team to a distributed one or even if you want to hire someone who hasn’t worked remotely before, you need to guarantee they’ll fit in the team and work efficiently in your remote team even before day #1.
For software developers the demand is so high that you’ll often bump into this problem:
How do I make sure that who I’m hiring is the perfect fit within our team when they haven’t worked remotely at all? 🤔
Perhaps tech professionals are some of the easiest to assess beforehand. Check out any of their side projects, if they own a business or do freelancing, and even look at their online presence.
A developer who’s only been putting work for their official job and has no GitHub repositories and projects to boast is clearly not going to be someone you’ll trust right away.
Trust and accountability are the 2 main attributes to consider beyond any hard skills.
These two character traits (which we often ignore because we’re too focused on business results) can predict whether that person will fit within your team culture. And, even more importantly, if they’re willing to stay with your company for many years to come and dedicate themselves to your project.
From then on, managing remote teams is also a matter of how you handle their training.
Onboarding and training
The trial period all HR experts recommend exists for a good reason. It allows you to literally SEE how they work, collaborate, and get along with the rest of the team.
Many managers make the mistake of hiring a developer, letting them start the trial weeks, but not monitoring what they’re actually doing.
Don’t assume that someone who seems skilled and experienced will deliver the same commitment and quality of work to you too. May I say this is the best and only time to be a micromanager and literally oversee all of their actions.
But do offer your help within the first days by making sure they have all resources needed and making the appropriate introductions to your team.
Get them involved in the code writing process for your project as soon as possible so you can get a better feel of how they conduct their work. I’ll also advise you to try a pair programming session during the hiring process too. More on this procedure later in this guide.
Prepare the right work methods
This is largely the manager’s decision. Team feedback is only valid when everyone knows the relevant best practices and benefits of each work method. This doesn’t mean you can't get their input on the methods they’d prefer to use. However, letting them take care of the decision process will only give rise to conflicts and postpone the choice for the time being since there simply will be too many opinions for you to sort out.
“While you do not want to micromanage a remote team, you certainly want to set up clear minimum administrative processes. For a previous remote team I had to manage, this included setting-up very precisely the infamous JIRA workflow.
While it is good to leave a remote team some freedom, work also needs to be clearly organized, so there should be a few processes that have very precise descriptions. In development, the most important of such processes are issues management, and also the build process. This should be described in detail, and followed strictly.
To make sure key processes are respected, there should be set points when work needs to stop until the process is followed. As an example, I gave strict orders to my business team not to look at any incident that is not documented.” - Nicolas de Mauroy, CEO @Open Lowcode
But how close should supervision really be?
Surprisingly – not that in depth.
Keep your devs under your radar only enough to guarantee that all processes run smoothly and you’re able to maintain a trust both ways. Yes, 50% of data breaches across all industries are caused by insiders, but that doesn’t mean you must force everyone to track their time or record their screens.
Developers should really only have to track their time in 2 instances:
- They/you really want to improve your work processes.
- They’re getting paid by the hour.
Your role as a manager goes beyond the person who is seemingly in charge of everything. You’re a liaison. That key link between one team member and another, helping your development team collaborate with operations, marketing, design, customer support, and sales while also ensuring all team members are happy and their needs are met.
I’m super disappointed to tell you that only 35% of managers are engaged with their work. How is this going to motivate someone else?
Employees who are supervised by highly-engaged managers are in turn going to be better and happier performers themselves. This will boost your employee retention rates and create that long-lasting company-worker bond most companies can never attain.
This takes me to the importance of knowing when and how to communicate. Both ways.
Craft your remote team collaboration plan
Collaboration goes hand-in-hand with your work method and how you manage tasks. It’s the little things like crafting clear task descriptions and expectations that add up to distinguish a positive collaboration experience from a chaotic one.
Tinjo Thomas, Design Technologist @Coredes Interactive also recommends the following two tweaks you can make:
“1. Always set a due date for each task even though your developers are experts and can make estimates themselves.
2. If you are giving instructions to only one or two people, don't send the message to the whole group. Reach out to every individual in private. People spend a lot of time reading unnecessary conversations on channels.”
Meetings are honestly a very controversial topic. Managers love to call meetings. Devs, though, hate most of them but are afraid to voice their thoughts.
To keep meetings relevant, here are some actionable points to keep in mind:
“On a more macro-level, knowledge sharing can happen through a weekly team meeting with a Q&A via video whereby the members of the team can share what they learned from the codebase with each other as well as ask questions. In terms of knowledge sharing through team meetings - you can have several types of meetings.
The overall idea for these is to encourage collaboration in an effort to turn explicit knowledge into tacit knowledge. So you can have brainstorming sessions or meetings geared more towards lessons learned (this can be in the form of a demo or presentation). All done entirely remotely.” - Emil Hajric, CEO @Helpjuice
One huge mistake first-time remote team managers make is filling up entire days with meetings:
“First-time remote team managers need to be quite aware of the differences between collaborative work [like Scrum meetings and software architecture design] and individual focus work [like coding]. It is important to schedule time and ensure everyone can contribute to the collaborative session, but then leave your professionals alone to do what they were hired to do, write great software.” - Pedro Henriques, Co-Founder & CEO @BRIDGE IN
You’ll want to always remember to press that record button during meetings. We’re not necessarily fans of paper trails, but you’ll need them to avoid bothering your team with issues that have already been discussed:
“You should be recording and saving absolutely everything from remote team meetings and strategy sessions. While working remotely, we've noticed a huge uptick in productivity when managers and team members can refer directly to meetings instead of having to play phone tag or email back and forth for simple information. It's a huge boon to workflow across the board and should really become the new normal with the increase in remote team management.” - Alexander M. Kehoe, Co-Founder and Operations Director @Caveni
Keeping up-to-date with all changes is even more important when your team’s distributed. But remote teams have different approaches to how they make sure they don’t just communicate, but also apply and consider every opinion.
Here’s where the real-time vs asynchronous communication battle comes in. Everything’s already been said about this. So the conclusion is:
There’s a right time for each type of communication. A predisposition for certain types of tasks will also make your remote team more likely to go for one method of communication over the other.
Just like the video vs written communication issue.
The Voro team, for instance, has used their office and remote communication tests to conclude that written collaboration worked best for them:
“My #1 tip for managing a remote team is to default to written communication rather than video calls. This forces you to clarify your thinking and communicate succinctly. When we all worked in the same office, it was easy to walk over to someone’s desk to talk through a problem. It would waste a great deal of time to replicate that with a scheduled video call.
Since we are 100% remote, more of our communication has been written, and we try to memorialize most of that in internal documents, so we continue to move fast and share institutional knowledge seamlessly.” - Tomas Hoyos, CEO @Voro
Invest more time in one-on-ones
With one-on-ones, you’re focusing more on sharing the status of specific tasks and individual activities, while every single member on your team gets to make their own suggestions. One-on-ones are commonly held between one team leader and the other members at a time.
Having these twice a month is your best bet to make sure everything gets covered. Holding them weekly is too often as you won’t have time to focus on your other tasks because you’re too busy with meetings.
These one-on-one meetings are also a good opportunity for you to hold reviews and updates on the OKRs. To facilitate the feedback and ideation process, Charles Ahmadzadeh, CTO @Bunch uses checklists during these meetings:
“I like to use checklists with my team. I'll ask each team member to create a checklist each day of what needs to be done before ending the day and before submitting their work. We review these checklists in 1:1s to spot patterns.
I mostly use this to help others around me grow or keep myself accountable to the feedback I receive from the team.
The good thing about them is that they work no matter how senior you are (even astronauts live by checklists). They’re easy to share in 1:1, even if your team is remote, and very simple to use, as long as you’re committed to improving yourself.”
NOTE ON OBJECTIVES AND KEY RESULTS: Team leaders can establish these at a team and individual level by also taking into account suggestions from developers.
For instance, each department or team can have specific targets: to release a feature on time, avoid more than 2 major bugs after a release, keep the error rate low, etc. Individually, each member should take care of one release so that every single team member will know how to handle them.
Here’s an actionable idea: Use TrackJS [or other error tracking tool for your programming language]. Every member can choose a top error and fix it. This allows members to increase their accountability and learn new things to avoid freezing their skills.
Pair programming finally getting the attention it deserves
Now is also the best time to experiment with pair programming. This practice allows two developers to work simultaneously, often on the same tasks. While this is usually done from the same computer, you can switch it up a bit and make use of tools like TeamViewer or screen sharing.
Pair programming also helps distributed teams improve the quality of their code, tighten bonds between colleagues, transfer information and know-how from one dev to another, increase their own accountability, and speed up the entire development process.
Does this make you feel like you’ve been missing out on all its benefits? 🦄 Just keep in mind some best practices if you want to get started with using the pair programming practice on a regular basis.
By using common sense, you probably won’t have both developers working on the same thing for 8 hours straight. Instead, distribute tasks evenly and allot a specific time slot for them to actually work together. Dealing with multiple time zones? Pair programmers within similar work schedules.
Communicate beyond work with your remote teams
We’re all humans. So we can’t work, work, work all the time. How about you implement some activities for people to destress twice a week as part of your remote team management process?
Playing board games online. Having a #watercooler channel on Slack. Finding some creative online team building activities. These are all ideas to help your remote teams unwind and get their mind off anything that’s stressing them out.
Pedro Henriques also shared his thoughts on the importance of implementing this type of downtime while working remotely:
“Remote teams need to deliberately schedule slack time and create informal virtual watercooler moments. In the office, the watercooler or coffee machine is often the place for spontaneous discussions about various topics ranging from a nasty software bug to vent about office politics or even troubles in personal life. These discussions are not superfluous. They’re absolutely critical for team cohesion. Therefore managers should actively promote them, but make sure not to attend.”
Choose the right tools: The basics will do, there are no magical solutions
I’ve seen so many “best tools for remote work” lists the Internet could really crash for good.
Nah, but really, stop looking for the best apps and miraculous software to somehow save your remote teams.
We already know everyone is using Slack and Zoom to collaborate and the ones who don’t use these are probably doing so because of small issues they had or costs they wanted to lower.
For instance, from all apps I’ve tested for this purpose Google Meet was the fastest and most accurate one but guess what? My clients are using Zoom already. No room to impose another tool.
The key point is not to waste weeks trying to find the right tools for your team. Others have already done this. There are thousands of options out there. All of them are copying features from each other so you end up with the same tool in dozens of versions.
So here’s your stack:
Jira - Slack - Zoom - GitHub - InVision - a bug tracking tool - every developer’s code editor
Test these [preferably the free versions first] and only look for alternatives if you have huge issues that are stilting your workflow. My two cents.
Also, some wise words from Tinjo Thomas:
“Don't try to save money on bug tracking or team management tools. You will know why it’s important when things don’t get done as you expected.”
Know a remote team manager who could use these tips? Share this remote team management article with your network to keep improving remote work processes.