A big part of my job is organising developers in four different locations around the world. It’s not always easy, but it really pays dividends. Today, I’m talking about what you can do to make that machine run smoothly.
1. Tools matter
The only reason remote development works at all is because of the ongoing revolution in communications technology. If you fail to take advantage of the tools available, you’re going to go nowhere fast. Here’s what my teams use:
- For code: Github. Starting obvious, but Git provides collaboration tools and version control in one neat package. I don’t think we’re shocking anybody with this one, but it’s popular because it works.
- For written copy: Google Drive. Remember when we used to work on .docs and email them back and forth? Imagine trying to do that in three timezones, and how much time you’d lose every single day. Well, Google Drive has realtime redlining and editing that make collaboration a breeze.
- For video conferencing: Skype. Another classic, but we like it because it works—it works for inter-office communication but it also comes with groupchat functionality that we use both for official communications and as a sort of inter-office water cooler.
You can probably tell that we like to stick to the classics. That’s because—when you’ve got a huge team spread out all over the world—it’s usually better to go with something everybody’s comfortable with. We tend to try out newer software on a smaller scale then slowly implement it in places where it’s needed, and use tried-and-trusted programs when we’re working more broadly.
2. Create spaces to relax
Which leads me to my next point: one of the things about a traditional office is that everybody gets to know everybody fairly quickly. When they’re spread out all over the world, it becomes harder. Tools like Slack and Skype are important because they help coordinate your teams, but they’re also important because they give those teams somewhere to bond and blow off steam. It’s not something you can really force, but if you create the spaces and step back it tends to happen on its own.
Depending on where your teams are, meetup events are also a great idea. Especially if you’re running a model where everybody is in roughly the same place but are working from home, it can be good to have a day a month where all your developers come in and bond. Tech-related events like hackathons are good, as are more casual events like board game nights.
3. Get in the (time)zone
It’s one of the first things you hear when you talk about distributed teams: what about the time zones? I’m not going to lie to you, it’s one of the thornier issues. I have teams in GMT-4, +5.5 and +12 and it takes some serious organisational nous to get them all in one meeting. Why would you do it then? Well, in one word, coverage. Our developers work flexible hours and we can still, without fail, get somebody on the line almost 24/7 if a client has a problem. Once you realise that, timezones stop being a liability and start being a difficult-yet-powerful tool; if you’re willing to get organised, they will supercharge your business.
Stepping back from the technical side, it may seem obvious, but know where your teams are and what they do. I work mostly in the Wellington office, and I know without looking that our US team will usually be around in when I arrive and will check out an hour or two later, and the Indian team will arrive to work late afternoon as things are wrapping up here. Being aware of that and integrating it into your workflow will help you get a lot more done—it lets you prioritise certain work (because team x are heading home soon) while putting other work on the backburner (because team y won’t be waking up for a few hours) and really keep the wheels turning. It’s almost like poetry: the restrictions of formal structure are what give it shape.
At the same time, make sure you’re hiring in a way that gives you that vital coverage—each office should have developers, each office should have some senior management, each office should have a designer, each office should have a copywriter. It’s good to have offices specialise, but you also want a couple of people with differing skillsets everywhere you go.
4. Talk talk talk
Communication is always important in business, but it is doubly, triply important when working with a distributed team. It’s important to distinguish between two different types of communication: synchronous and asynchronous. A video call is synchronous chat, a Slack channel is asynchronous chat. They’re both important—synchronous chat is direct, flexible, simple, and leaves less room for error. It’s also harder to organise and often requires certain staff to get up early or stay late, and isn’t always viable for every meeting.
Ideally you want a mix: synchronous calls and meetings for when you absolutely need everybody on the same page, asynchronous chat and email for more general communication. My teams tend to mostly use async methods in our day-to-day, but we hold twice-weekly calls to keep everything on-track and we often organise extra calls if we’ve run into an unexpected issue.
5. Small is powerful
We have over 250 staff at CodeClouds: getting them all into the same voice call would be near-impossible. Getting one developer to shift their work hours around is hard enough without trying to move the whole company, even harder if you have switched to flexible working hours. it’s important to consider when organising calls, exactly who is needed in each call and who isn’t. If there are parties you want to keep in the loop who don’t need to be there, consider sending them a recording to watch in their own time or even just an email with the minutes.
Face time is incredibly valuable and—like all valuable things—should be reserved for the right occasion. Speaking of small and powerful:
6. The Dazzle Factor
This is Dazzle. She’s the office dog and CWO (Chief Woof Officer) at CodeClouds. Dazzle has advised us to engage in a strategy of supplying her with belly rubs, naps, and frequent snacks.
This has raised morale significantly and we intend to pivot more towards these operations in the near future. Like, for example, right now.