As the COVID-19 pandemic continues, basically all software engineering teams are now working remotely. I’ve been part of a distributed software engineering team at Rail Europe for two and a half years, so I thought i’d reignite my blog to pass on some tips and experience.
In this post I want to focus on how we communicate with each other and make decisions, whilst rarely ever organising group video calls.
As I’ve emphasised in my previous blog posts, this isn’t about squeezing more productivity out of your team. It’s about trusting them and giving them the space and flexibility to arange their work day how it fits them. Scheduling loads of meetings takes away the freedom, autonomy and flexibility that is one of the major benefits of remote work.
At Rail Europe we prefer asynchronous communication by default and part of this approach is to keep all meetings to an absolute minimum.
Problems with meetings
Here are some issues with meetings (video or in-person):
- Favours those that are best at thinking on their feet
- Favours those with a more extrovert personality
- Participants must stop work and be online at precisely the same time
- If someone is off work, their opinion is not heard
- Difficult with colleagues in different timezones
- A one hour meeting for five people is really a five hour meeting
- Often organised without a clear agenda
- More effort to create a written record
- Dominated by those in positions of power
Of course a good meeting facilitator can resolve many of these issues.
The alternative to meetings
We use it like a message forum – so someone starts a post on a specific topic and people reply to it.
These are great when you need to solicit the opinion of the wider team. Ultimately instead of calling a meeting, you describe in detail your proposal/idea/problem and select who you want to notify.
We also have certain long running threads that we use in place of “status update” meetings. So instead of scheduling a weekly catch up meeting – each time something significant happens you want to share with your team (or even the whole company). You post an update to a specific thread. Everyone stays informed, all the time without a meeting. This is critical for keeping people up-to-date even if they’ve had a week off on holiday (or maybe they’ve been off ill from COVID-19!).
Basecamp allows you to decide if you want to be emailed each time someone replies to a post or you can wait for the daily summary email. This fits into our idea that nothing is urgent.
For daily stand-ups, instead of holding a daily meeting, we post them asynchronously on Slack.
Benefits of writing things down
I must admit I was initially sceptical of this no meeting approach, I thought it would surely be less efficient than having a quick-fire back and forth video chat.
However, written long form discussions provide many benefits:
- Doesn’t require everyone online at the same time
- Read and reply in your own time without breaking your flow
- Requires the author (would be meeting organisor) to think through their proposal and fully articulate it
- Allows responses to be more considered (do some research first) rather than “knee-jerk”
- If you’re off work, you can easily catch up later
- Level playing field for participants, not just those that “shout loudest”
- Can read historical discussions going back years to find out why something was decided
- Discussion is transparent to anyone in the company
- Easier to bring in people from the wider team to follow and contribute
Having participated in this type of team communication for a few years, I can now see that these longer, more considered discussions, often result in a decision that has more “buy-in” from the team. Anecdotally it also feels like we reach well thought-out solutions which, in the end save us time.
For all these reasons, we also avoid making team decisions in Slack and instead defer to a Basecamp post.
Don’t get me wrong, it’s not like we don’t ever have meetings. I have regular 1:1s and many tricky problems are best resolved over real-time discussions in Slack.
But for my direct team consisting of 5 engineers, 2 QA testers and a product manager – we haven’t had a meeting together in 2020 and it doesn’t look like we’ll have one any time soon.