A blog about web development

Paul Sturgess

Nothing Is Urgent – Asynchronous Communication

Lots of people have been thrown into remote working that aren’t used to it. I’m writing to share some tips that I hope will hopefully help reduce anxiety, stress and allow your team to work flexibly. As I mentioned before, this isn’t about squeezing more productivity out of your colleagues.

Previously I wrote about how distributed teams can adapt stand-up meetings to allow people to work more flexibly. Giving them space to adapt their working day around their personal situation.

I’ve had to shift my working hours to start in the afternoon, as I will now look after my son in the morning whilst my wife works. We switch roles in the afternoon. It’s pretty much like I’m working in a US time zone when most of my team is on CET or GMT. We do actually have some people on UTC-7, so I already have company.

Fortunately for me, the Rail Europe team is already geared up to communicate effectively even with people working completely different hours, whether time zone inflicted or not…

Asynchronous communication

Asynchronous commuinciation is based on the idea that “nothing is urgent”, especially when it comes to writing software. This might seem blindingly obvious when we’re in the middle of a global pandemic. In reality very few of us are doing anything that’s really truely urgent. That’s how you describe the heroic work of people trying to create a vaccine or key-workers on the front-line.

However, that’s not what I mean here. A communication style where “nothing is urgent” means we don’t interrupt our colleagues and expect immediate answers right now. We use asynchronous communication by default and we are mindful about the notifications we generate for our colleagues.

Jason Fried from Basecamp wrote this fantastic blog post on why Group chat is like being in an all-day meeting with random participants and no agenda. It informs much of our thinking.

I won’t pretend we are perfect at it and there is always an exception to the rule. But these are the specific (and default) behaviours we encourage amongst the tech team at Rail Europe:

  • Recognition that most questions do not need an immediate answer
  • There’s no expectation that your colleague/team is online all day
    • Muting of Slack channels or closing Slack entirely to avoid being interrupted is encouraged
  • Team decisions are not made in Slack
    • We use Basecamp for long-form discussions, so everyone can contribute when it suits them
  • @mention should not be used when someone is offline unless it’s critical
  • Respect Slack statuses such as “concentrating”, “lunch”, “gone for a walk”
  • Use the Lunch, Meeting or Phone status to avoid lots of pointless chatter in public channels
  • Task specific conversations that are relevant for project managers should go on Jira/Trello
  • Technical discussions about code should ideally happen on a Github PR
  • Consider an email over a Slack DM
  • Document all processes thoroughly
    • Good documentation allows people to be self-sufficient
    • Prevents “bus” factor

We keep meetings down to an absolute minimum, most are replaced by long-form written discussions. I’ll blog about this in more detail in the future.

Of course when I say “nothing is urgent” there are exceptions. An outage of our website and certain critical on-call alerts need to be responded to swiftly. And it’s not like we never communicate synchronously, it’s just that async is our default.

Adopting asynchronous communication really has many positive benefits on the well-being of your team:

  • Reduces notification fatigue
  • Reduces anxiety about being online all the time
  • Allows people to not feel guilty about taking breaks when they need to
  • Enables more flexibility for when people work
  • Because most communication and decisions are written down, if you’re off work it’s easy to catch up later
  • Everyone sees the value in great documentation and how it empowers them to work self-sufficiently
  • Conversations on Jira/Trello make it easy for anyone to understand the latest status of a task
  • Everyone gets longer periods of uninterrupted time to get into deep work

When it comes to remote work, asynchronous communication really is one of the most liberating things your team can adopt.