Full Remote Work (Chapter One: Collaboration Tools)
It has been three weeks since our company went into full remote mode. In the beginning, there were plenty of blog posts about organizing remote work, tips and recommended tools and we’re thankful for those resources and inspirations. Now it’s time for our repay: we’re coming with our best practices of remote collaboration. There will be no theoretical stuff — only things that we’ve already tested and we perceived them as worth sharing.
We split those recommendations into three chapters: tools, organization & communication and effective work.
Here we go with Chapter One: Remote collaboration tools.
We started our remote collaboration with the main principle: we won’t postpone any meeting due to full remote mode. We don’t know for how long we’re going to work this way and we assume that this is our new reality. Therefore, we needed to do two things: define the potential pain points of remote collaboration and adapt available tools to minimize those risks and enhance our teamwork.
There are certain obstructions related to remote work that can impact the performance of a team. We’ll focus on the two biggest issues that we’ve detected on our way:
- The feedback loop could be slowed down
- The presentational and interactive aspects of meetings might be of worse quality than in-person meetings
Both issues can be resolved with a well-coordinated use of proper software. Before we went into a full remote mode, each team had the freedom to organize its collaboration in a very own way (keeping in mind general rules). We have the same approach right now — each team is testing different tools and adapts them to their needs. Then we share our insights among the teams and inspire each other. Below you’ll find our favorite tools sorted by type of collaboration they support with short insight from using.
Videocalls: group syncs, small-medium discussion
And the winner is… Ok, it’s not that simple and depends on current needs. We have three strong opponents here.
Slack — our tool for communication since the very beginning. It’s great that we’ve been using that tool for so long — we’ve established some ground rules and healthy routines that help us work effectively. This part is not affected by the current mode. Slack provides such features as video call, sharing the screen with a great option to draw on it. It’s great for ad hoc calls and short meetings, e.g. standups and one on one discussions. Why not to use only Slack then? Because of two things. One is that you can share only the whole screen (can’t decide on one particular window) — it supports complete transparency ;) which is not always necessary and might even be chaotic when you try to navigate between the tabs. And the other, less controllable issue is that Slack is slightly lacking in the quality of those features. Especially in bigger groups and longer calls, therefore for planned upfront meetings we choose alternatives.
Google Hangouts is simple and integrated into the calendar already. And it’s free. It’s our first choice for group meetings that require our voice, above all else. It’s good for sharing slides, worse for real-time, very quick collaboration, e.g. streaming of written code.
(Also tested during after-work drink: the verdict made by wine lovers and aspiring bartender was positive 👌)
For a longer and more complex discussion — the best choice is Zoom. It’s a paid service (for meetings longer than 40 minutes), but you’re paying only for the host, not for each participant, which is nice. It’s a better tool than Hangouts especially in two conditions: when participants have a poor internet connection or your meeting requires using another tool — Zoom is better optimized. It also has a useful function called “annotate”, same as in Slack — you can draw on the shared screen, so it imitates pretty well the natural context of collaboration next to the whiteboard 🎨🙌🏼
Videocalls: whole company meetup
The prize goes to… AWS Chime: a strong tool for meetups with dozens of participants. We’ve tested it for our Bi-Weekly Review, during which each team presents the outcome of the last sprint and we make company-wide announcements. AWS Chime lets you choose the host: a person responsible for chairing a meeting and giving the floor to the next speaker. It also provides a chat which we use to gather questions regarding the presented topic. It goes smoothly and doesn’t require installation from participants.
Natural, contextual communication
We want to distinguish one tool here. It doesn’t mean that communicators mentioned above affect us with unnatural behavior. But there’s one aspect of a natural context that those tools don’t cover: a spontaneous discussion that happens when we’re sitting next to each other. Throwing a question in the air so someone can quickly dispel our doubts — and as an effect, colleagues next to us can hear us and knowledge spreads. We find a replacement for that natural interaction: we’re using Discord. It allows us to create rooms for each team. By sitting in that room we have an audio streaming and we can hear each other — there’s no video, only voice. Therefore we can ask our colleagues anything (sometimes tell a good joke 😎) and wait for their response. For those who are worried that it might be distracting — we mute our mics, so we don’t hear a white noise and we unmute ourselves if we want to say something. We can also turn off the voice and get notification only if Discord detects that some discussion is on. Because there’s no video, there’s nothing that constantly catches our attention. And same as while working together in the office — if we want to focus extremely on current tasks, we leave Discord for a while.
Pair programming
Surprise, surprise! Even though Microsoft is not a synonym of reliable software for us, it crafted a gift for VSCode users called Live Share. This plugin allows working in pairs and even teams. It has:
- Live editing (you see both cursors just like in Docs)
- Focus and follow (so you follow a chosen teammate when he jumps around the files)
- Shared terminal (so you can run tests on your friend’s computer and also run rm -rf / but don’t)
As for Vim and Emacs fans, remember VSCode allows for most of the regular keymapping. So you can embrace your navigation patterns with Live Share. While VSCode allows you to interact through a chat or audio, you can use it along with another communication tool.
Planning and backlog organization
This is the perfect example of differences between the teams — same as we have while working in the office. Some teams are using only Jira for backlog organization, some prefer to use a physical sprint backlog for management and communication. We have the same situation right now — either we use a shared screen with Jira, or we choose an additional tool to organize tasks for the current sprint. In the second scenario, we find LucidChart very useful — you can see below, how complex board you can build with it:
Brainstorming sessions and workshops
Our indisputable winner in this category is Mural.co. It helps us with every meeting that we’re missing from office collaboration — ones with a lot of sticky notes, drawings, and discussion next to the whiteboard. We’ve used it for retrospective meetings, event stormings (yes, sorry Brandolini, but we’re doing them online 🙆🏻♂️), feedback sessions and working out the priorities. What’s great is that it provides useful templates (e.g. impact/value matrix) and such functions as a timer and dot voting (which btw. is anonymous — votes are totted up and shown after voting; so it eliminates the suggestive character of dot voting!).
Here you have some examples of usage (which, by the way, highlights how awesomely different each team collaborates even with the same tool):
And this is it in the topic of our favorite tools for remote collaboration. This was about software — the next chapter will cover the ins and outs of communication and organization; the bigger context, regardless of the tools that you decide to use. Stay tuned!