Communicating clearly is important in almost every profession, but if you work remotely (or if you hope to integrate remote working into your company culture), it’s indispensable. In this post, we’re looking at how solid communication can be implemented—as in a set of rules, like we have here at Gitlab—and why you should think about doing just that.
“Asynchronous communication” means we’re all getting information from each other at a time when we can handle it—usually not “live.” This is important for the very simple reason that most programmers need head space to focus on what we do. You can minimize interruption by setting up a “preference list” for how to contact your remote team. At GitLab, issues are most preferred, then email, then chat.
Asynchronous also refers to the fact that you’re not expected to immediately respond if, for example, a colleague or even your boss emails you on the weekend. Just reply on Monday. Likewise, if something is urgent, we encourage team members to go ahead and ping someone on chat whenever—that’s how we know it’s urgent.
We find that our team functions most smoothly when people ask a lot of questions, and open those questions out to everyone. This means going via issues or public chat channels versus person-to-person emails or private messages. Why? Because then you get answers faster, and also this way everyone sees the answer – which saves time for the team in the long run, because that question was bound to come up again.
If you urgently need an answer from one person (and you know that person is the one with the answer you need) mention them by name. This still gives others the opportunity to learn and chime in.
One thing that happens a lot is that someone will pack several questions into a single email, and then something in that email (or post, or whatever) gets forgotten about and isn’t ever resolved, or there’s a big delay on one item that affects everything else. This is one way things fall through the cracks.
To keep that to a minimum, we ask our team to stick to one question or problem per email/issue. This also makes it easier to search for issues in your comms archives.
If you mention something like a website or document in your message to the team, if possible include a link. This shortens the time it will take for people to find that item, and it decreases opportunities for confusion.
We always reply to emails, even when no action is needed, just to let the other person know the email was received. A thread is considered finished for us when there’s a single word reply, like “ok” or “thanks” or “done.”
Obviously all these rules can seem, eh, a little robotic at first. It’s also important to actually be a human being, not just disembodied text. If you’re on video chat—which you can and should do, especially if you find you’re going back and forth over chat—have your kid/wife/husband/etc. pop their head in and say hello, because this is one of the great perks of remote working! Also this way everyone knows you’re not AI.
Also, say thanks to your coworkers to let them know that you know THEY’RE human, too! We have a “Thanks” chat channel just for this purpose, where we ask GitLab employees to mention each other by name and say thanks for specific things. It just makes things nicer.
Have an idea for something we missed? Mention it in comments. Also feel free to steal our entire communications handbook. That’s why we put it online!