Trello is a remote-friendly company, with over 60% of the company remote. Atlassian, which acquired us last year, is mostly colocated. As I've spent more time with Atlassians from other parts of the company, I've often been asked the same question: how do Trellists manage to work together remotely?
One common answer I kept coming back to was our emphasis on effective communication. I wanted to share some tips on that here.
Practice Active Communication
When you're colocated, communication happens effortlessly. You sit next to coworkers, run into them in the hall, and eat lunch with them daily.
When you're remote, none of these moments come for free. Even worse, you're restricted to the method of communication that doesn't come naturally to most humans: the internet.
All this means that you need to make an active effort to communicate, more than you think. For example…
Spend a bit more time crafting your written thoughts than you might normally. Make it easy for others to understand you later, even if out of context.
Don't wait to be called upon - preemptively share what you've been working on with your coworkers.
Prefer chatting in rooms instead of in 1:1s, so that everyone can participate.
Setup times just to hang out with your remote team on video chat, just so you keep connected. It doesn't have to be about work - it can just be hanging out, or talking about sports, or whatever.
Prefer video calls to phone calls, so that you can see non-verbal cues from others. Everyone on a video call should be on their own computer (otherwise you can easily run into microphone issues where someone is too far away to be heard, but doesn't realize it).
Gab about non-work topics in chat from time to time. Simulate the water cooler online.
It's not possible to get the same level of closeness that colocation allows, but with effort you can make others feel not as distant as they actually are.
Favor Asynchronous Communication
If I want to talk to my colocated coworker in person, I'd just wait until they're in their seat, then I'd walk over and talk to them. Online, there's simply no way to do that - I can't, at a glance, find out if my coworker is available for active discussion.
As such, it's important to default to asynchronous forms of communication when remote.
With asynchronous communication, it no longer matters if your coworker is present when you want to communicate. You simply send out your message and they get back to you when they can, and vice versa.
At my current job, that means communicating via Trello, Confluence, or Google Docs. It means opening pull requests and waiting for responses instead of seeking someone out for immediate approval. It means putting thoughts out first then waiting for people to weigh in on chat, rather than pinging them and waiting for them to come online before discussing the matter at hand.
Asynchronous communication requires patience. You have to get used to not having answers immediately. Done well, it allows an entirely remote team to communicate smoothly, regardless of which hours they are online together.
Escalate As Necessary
Sometimes, asynchronous communication just isn't enough. Urgent or complex problems may require more active discussion.
In those cases, I escalate to more demanding methods of communication until the problem is solved:
Asynchronous - The default (for reasons above)
Chat - When you need some back and forth on the matter
Video call - When you really need active, high-bandwidth communication
Always be ready to escalate instead of stubbornly trying to make asynchronous communications work. Sometimes a 10-minute video call can save hours of confusion in a pull request.
You should be open to escalating any time - if you are confused about a PR, ping the person on chat and ask if they have time to hop on Zoom. Most of the time, there's no need to be so formal as to setup a meeting and send out calendar invites.
Upsides of Remote Communication
Perhaps you've been thinking "geez, all that sounds like a lot of work just to achieve what we do in person." That's true, but there are some positive outcomes of remote communication as well.
Favoring asynchronous communication is great for improving productivity. I don't need to interrupt someone else's flow - they can just get back to me when it's convenient for them. I also don’t need to wait until someone else is online to get my thoughts out - I can leave a message then move on to my next task.
Defaulting to asynchronous communication also prevents excessive meetings, since that's the last resort for communication instead of the first.
Online communication results in an incredible paper trail. In the same way that you can see the entire history of a codebase through its history, you can usually trace knowledge and decisions made ages ago.
I'm not suggesting that remote is superior to colocation, but I do want to dispel the notion that remote work is necessarily inferior to colocation. They both have their upsides and downsides, but more importantly, both (including remote) can work for a company.