Illustration by Yin Weihung
When your company runs on digital communication, the tools you use to connect your team become your office.
Their design determines who will be involved in which discussions and who will be able to access what information. They impact your employees’ ability to focus and do their jobs. They shape your team’s culture in big ways and small.
As a remote team, you have to be as intentional in choosing your digital workspaces as traditional companies are in designing their physical ones.
This article will walk you through how we at Doist have designed our virtual “office spaces” to keep over 65 team members connected across 26 countries and 15 time zones. You’ll learn how we’ve chosen the tools that make up our remote communication ecosystem and exactly how we use each to build a productive and transparent team culture.
Tools are one part of the equation – you also need processes. Our online handbook, The Art of Async: The Remote Guide to Team Communication, shares advice on establishing communication rules for your distributed team.
The tools we use at Doist as a fully remote team
An Important Note on Asynchronous vs Synchronous Communication
You can’t understand the way we work remotely at Doist without first understanding the difference between synchronous and asynchronous communication.
Traditional workplaces are filled with the synchronous communication. Meetings are synchronous. Instant messaging is synchronous. When someone walks over to your desk to ask you a “quick” question, that’s synchronous. When you’re expected to respond immediately to a new email from your boss at 8pm, that’s synchronous.
That’s not how we work at Doist. The foundation of our team’s communication is asynchronous: when I send you message, you can respond later. There’s a general expectation to respond within 24 hours, but beyond that each person can decide when to check and respond to their messages.
The concept is simple enough, but async communication impacts everything we do as a remote team. It enables us to stay connected across time zones and maintain high levels of productivity despite (or rather because of) the fact that we’re not in an office together. Here are some of the benefits we experience from async communication:
- People aren’t constantly interrupted by messages that require an immediate response.
- They can disconnect to focus on their work for hours at a time and aren’t pressured to respond outside of work hours.
- Everyone can set their own work schedules according to what works best for them regardless of when everyone else is working.
- Everyone can be included in conversations no matter their time zone or work schedule.
- People have the time and space to think about a topic and come back with a more thoughtful response.
- There’s automatically a written record of all the information and decisions that come out of conversations so anyone can find it again later.
Yes, async communication is slower. But as a remote team it also allows us to stay more connected and get more done in the process. The next two sections of the article will outline exactly how we make this style of communication work in practice.
Doist’s founder and CEO wrote a more detailed article on why asynchronous communication makes teams more productive and how to build a more async culture on your team.
The Foundation – Twist Threads & Messages
Doist didn’t always communicate as asynchronously as we do today. One of the first communication tools we adopted was Slack, a popular instant messaging app for teams.
We quickly realized that the real-time messaging model wasn’t sustainable. Important topics were quickly buried inside group chats. Teammates in outlying time zones were excluded from key discussions. Information was impossible to find.
Meanwhile, keeping up with Slack conversations began to take over more and more of our time. But when we looked for an alternative, the communication tools on the market followed the same synchronous chat model.
That’s why we built our own team communication app, Twist, designed for more organized and asynchronous conversations. The vast majority of our team’s communication now happens on Twist – either in threads or messages.
Deciding between threads vs messages in Twist
Threads organize conversations by topic inside public channels. For example, to get feedback from my teammates on a new blog post draft, I would create a new thread inside the #Blog channel and name it something like “Draft Feedback – Pyramid of Remote Team Communication”. Then, I’d tag the specific teammates who I need to weigh in.
Kicking off a conversation in Twist by starting a new thread
Because they stay organized and searchable forever, threads are perfect for longer-term, more in-depth conversations – especially ones that need to include people across time zones. We use threads to post about, discuss, and give feedback on the meaty stuff that moves work forward:
- Status updates
- Bug reports
- Project ideas
- First drafts, mockups, prototypes, specs
- Project planning & coordination
- Trouble-shooting & problem-solving
- Weekly snippets
- Inspiration from things we’ve come across
- Announcements & team logistics
We also have just-for-fun channels that resemble something like sub-reddits – for example #Music, #Movies, and #Book Club.
While threads form the core of Twist, 1-on-1 or group messages provide a complementary, more lightweight way to communicate. We use messages to quickly check-in with teammates or just to goof around. We have a group message with the whole company that acts as our “watercooler” for whatever we happen to be talking about that day.
Water cooler banter in our “Generalist” group message in Twist
We treat both threads and messages as aysnc – no one expects an immediate response. When in doubt, we default to using threads to keep discussions more organized and accessible to the team.
Level 2 – In-Context Comments
The next level up on the communication pyramid is in-context comments on the work we do. That includes comments on tasks in Todoist, drafts in Google Docs, product specs in Paper, design mockups in Marvel, and pull requests in Github or Azure.
Here’s how we use each of these tools:
No surprises here, we use Todoist to organize shared projects, assign tasks, and set deadlines. We often use the “Add to Todoist” action inside Twist to create a Todoist task out of Twist comment or thread when conversations become actionable. We use task comments to upload relevant files, exchange information, and ask questions about a specific task.
Discussing the featured image for this blog post in Todoist comments
Our marketing team uses Google Docs to share drafts for everything from blog posts to emails to landing pages. We make suggested changes directly and add comments with feedback or clarifying questions.
Providing feedback on a draft of this blog post in Google Docs
Our design team uses Marvel to prototype and iterate on mockups for new features or UI changes. We provide feedback and ask questions with comments pinned directly to specific places in the mock-up.
We use Paper by Dropbox to create detailed product and project specs. We also use the Marvel integration extensively to interact with and comment on Marvel mockups directly from Paper too.
Our spec in Dropbox Paper for the Twist Mentions feature
Paper specs are shared in Twist threads with all the relevant teammates tagged. High-level comments and feedback are kept to the thread while Paper comments are used to give feedback on or ask questions about specific aspects of the spec.
Github & Azure
Our development teams use Github for managing code with the exception of our Windows team who uses Microsoft’s Azure. How these tools are used varies by team but generally discussions about specific code and pull requests happen there as well as some conversations around sprint planning and retrospectives.
The Windows team’s development backlog organized in Azure.
When it’s time for implementation, the handoff from design to developers happens with Zeplin. The designer creates a new Zeplin project with all of the relevant screens. In the project, the developer can easily see all of the spacings, colors, font sizes, etc. as well as a version history of the design. The developer will also be notified about new changes so they’re always working off of the latest version.
Checkboxes Everywhere Todoist feature on Android laid out in Zeplin
Level 3 – Video Calls
3 levels up, we’re finally getting into the synchronous side of things. Meetings are notorious timewasters of the traditional office, but they can easily take over the remote workplace too. That’s why we’re careful to only call meetings that provide value beyond what we can already discuss in Twist threads.
Meeting norms vary from team to team, but these are the most common types we have:
Every team member has a monthly 1-on-1 with their direct manager. It’s an opportunity to discuss what’s going well, what’s been challenging, and for both people to give feedback going forward.
Some teams – like our design, web development, and iOS teams – have regular weekly meetings to map out the week’s priorities. The Windows team gets on a call once every two weeks to plan their next sprint. The marketing team has a monthly “all-hands” to discuss the status of big ongoing projects and upcoming priorities. Some teams don’t have any regular team-wide meetings. Each team has the flexibility to decide what fits their size and workflow best.
We work in month-long project cycles. For a complex project, the squad leader might call a meeting to kick things off and get everyone on the same page. That includes objectives, responsibilities, timelines, and addressing any potential roadblocks a squad might encounter during the upcoming four weeks.
Sometimes there’s a particularly thorny issue and the discussion in Twist stalls. If an important decision needs to be made, the squad leader may call a meeting with the relevant people to hash it out in real-time. In these rare cases, the meeting always has a clear objective beforehand and only includes the people who need to be involved in making the decision.
A monthly marketing team meeting via Zoom.
Just as meeting norms vary team by team, so do the tools we use:
- Appear.in is a quick way to hop into a small meeting. It’s integrated with Twist so all we have to do is type the command “/appearin room_name” anywhere in Twist to pull up a meeting link.
- Google Meet (and to a lesser extent Skype) are used for medium-sized meetings or meetings that are on the calendar where Google automatically adds the Meet link to the invite. The choice between Meet, Skype, and Appear.in for any given meeting is a matter of habit and personal preference.
- Zoom is our go-to for bigger meetings (10+ people). In our experience, Zoom provides the most reliable video quality though it does cost $14.99/host/mo for calls longer than 40 minutes. If you work on a remote team, you know the added video quality is worth it.
Level 4 – Team retreats
Remote teams run on written communication, but there’s no substitute for the team bonding that happens when you meet in-person. That’s why we invest in regularly getting our team together in one place.
The 2019 Doist retreat in the Azores.
For the past 5 years, we’ve organized an annual week-long, company-wide, all-expenses-paid retreat, and we think it’s worth every penny.
The retreat structure varies from year to year as we adapt to feedback and experiment with new formats. Everyone usually arrives on a Sunday and leaves on Saturday. The program includes a mix of presentations and cross-team workshops in the morning and excursions in the afternoon. Each session is summarized in a Twist thread for people who couldn’t attend and the discussion often continues there after the retreat is over.
Our 2019 retreat schedule
In the past year, we’ve also started experimenting with smaller team retreats of 4-10 people where teams can meet with the people they work most closely with to dig into their specific issues, projects, and priorities in more depth. As we grow, we hope to have the budget to do more of these in the future.
The Doist Windows team in Montenegro
Mentor Trip for New Employees
Because in-person interaction is so important for feeling like a part of the team, we pay for a one-time trip for new employees to spend a week working alongside their mentor, wherever in the world they may be.
Evert (from the Netherlands) hiking with his team mentor Galina in British Columbia, Canada shortly after joining Doist.
We also pay for employees to attend conferences like Google I/O, Apple’s WWDC, and Microsoft’s Build where people from the same team can get together for the week to learn about the latest technology on their respective platforms.
The Last Level – Telegram for Emergencies
Asynchronous communication as the default works 99% of the time, but when you’re experiencing a major disruption in service the team needs to be able to act quickly. That’s why our support team is connected with our development team via Telegram, a third-party encrypted messaging service. Our developers keep notifications for Telegram turned on so they can respond immediately if and when Todoist or Twist go down.
An aside about email
We only use email for external communications and even then we bring outside collaborators in as guests to Twist as often as possible to avoid situations where one person is the central point of contact acting as a go-between.
It’s hard to replace email entirely, but if you’re still using it to collaborate inside your team, you’re missing out on opportunities to share and organize your team’s knowledge where people can actually find it.
On a remote team, communication is the single most important problem to solve. It also happens to be the hardest. Even when you do manage to solve it, it likely won’t stay solved for long. What works at 5 or 10 people won’t work at 50 or 60.
We certainly haven’t solved all the communication issues at Doist, but we have developed a communication ecosystem that:
- Connects every team member directly to the people and information they need to do their jobs
- Includes everyone regardless of time zone
- Eliminates the fear of missing out on important conversations
- Allows everyone to disconnect to focus on work that creates a meaningful impact for our users
Whether you work with a fully distributed team or simply have a workplace where people often work from home, we hope this article gave you ideas for how to make remote collaboration work for your team. We’ll keep this article up-to-date as our own system evolves.