Mastering synchronous remote work: Strategies for effective collaboration

Sarah Niemeyer
initialcapacity
Published in
8 min readFeb 27, 2024

--

At IC, we strongly believe in the power of in-person communication and collaboration. However, with the distributed nature of today’s workforce and customer base, we are no longer all in the same room and have had to learn how to overcome the hurdles that have recently disrupted our ways of working. Though traditional XP practices dictate that we all must work in the same room (Beck p. 37), we’ve learned that modern development might look more like a ‘remote-first, synchronous-first’ working style.

There are a few key challenges that can help us leverage the benefits of global teams while achieving similar benefits that working together in the same room provides.

Remote-first does not necessarily mean that we default to remote. In fact, we try to meet in person as much as possible — and have a team in Boulder that still meets in person 8 am to 5 pm Monday through Friday (although they are likely individually pairing with remote developers in the US and Europe). What it does mean is that we need to respect the fact that remote folks will also be trying to collaborate at any time. Just as we might do mobile-first development and design, we consider remote the default when designing a meeting or a team. It’s easier to set up a meeting using a Miro board rather than stickies or ensuring we have audio/video setup in the office for remote participants. Remote-first means that we will enable collaboration for those not in the office because these things fall into place naturally, and we don’t need to think about them as much when colocated.

Similarly, synchronous-first doesn’t necessarily mean synchronous-only. We can leverage the following tools and techniques to make up for the challenges this remote world throws us. Matt Stine put it perfectly, stating he was “tired of reading ‘remote office work hampers collaboration’ in articles as if it’s axiomatic. This is only true if you don’t change your behaviors and tools”

Staying engaged

The first challenge to solve is ensuring things are interactive. There are a variety of valuable tools we have available when collaborating in person that we need to account for on a video call. Luckily, in this day and age, we have many tools at our disposal to help here.

Whiteboarding

The first tool is one of the most frequently used in software: a good old-fashioned whiteboard. Whiteboards are essential for expressing ideas, brainstorming, and explaining the state of the world. If every team has access to a whiteboard in the office, we do ourselves a disservice by not making sure they are also available remotely. Xcalidraw has been a recent favorite, but various apps are available — from Zoom and Apple’s built-in whiteboarding features to heavier featured concepts such as Miro and Mural. We tend to lean towards more lightly-featured offerings that allow us to simply draw.

Regardless of the whiteboarding technology your team chooses, the critical element to replicate the in-person experience here is a seamless whiteboarding mechanism that goes beyond a clunky mouse or trackpad. Purchasing an iPad and Apple pencil (or a similar device) can go a long way in reducing the frustration of the user experience, allowing ideas to flow more smoothly.

A woman and a toddler are at a desk looking at a computer sceen. She is smiling as he points at the screen.

Pairing

The pairing experience is a highly interactive and collaborative way to write software. When we first began pairing remotely, this began to fall flat as we stared at each other’s Zoom screenshare, trying to participate. We lost the ability to switch who controlled the computer seamlessly and point at what we were talking about on the screen.

Luckily, various pairing-specific options, including Pop! and Tuple, are available that help tremendously. They are made for fast switching of drivers and have useful quick drawing tools to allow us to virtually “point.”

Another benefit of these tools is that they have features to ‘cold call’ our teammates. In the office, when I need quick clarification from someone, I can roll my chair over to their desk and have a conversation. Without these tools, we must constantly monitor our notifications for questions in Slack, Tracker, and email… instead of simply ringing them up and moving forward. If they are busy, there is no problem in ignoring the call, just as if they are in person. But this feature allows us to take a clarification that might last hours or days and turn it into minutes or even seconds.

Breaking the build

Another critical change when working remotely is that we lose the ability to monitor the build closely. Large TVs alerted every team in the office when somebody broke the build, inspiring them to fix it within minutes. We can keep a tab open at home and watch it with each deployment, but we need more visibility here.

A tool that alerts you when the build has broken is a significant step forward here. Some teams use a notification in Slack, which can be helpful. A desktop tool with a strong indicator always visible on your computer is even more valuable. We have an IC project monitor for the system tray for both Mac and Windows environments.

Time zones

We’ve discussed solving some significant issues involving the interactive nature of XP, but we should also talk about why we are remote in the first place. Our new world is more globalized, which means our teammates may be tens, hundreds, or even thousands of miles away. This means we must find ways to account for timezone differences when working together.

Timezone proximity matters. Before the remote work revolution, there was an adage about interoffice proximity and location: if you sit within 3 meters of a colleague, you interact dozens of times per day. When you sit on a different floor, or more than 10 meters, that drops to just a few times per day. Sitting in a different building might as well be in a different city hundreds of kilometers away.

The same can be said for timezone spans between collaborators today. You and your colleague have similar circadian rhythms when you’re in the same timezone. The more time zones you are apart from one another, the more challenging things become. The same timezone is optimal. One or two timezone offsets can be effective. Beyond that, however, severe inefficiencies develop and must be understood, acknowledged, and accepted.

Redefining colocation

First, we must acknowledge that there is no better solution than being in the same time zone. “Colocation” in XP meant sitting in the same room; in this world, it looks more like sitting in the same longitude. When organizing teams, it is important to coordinate time zones as much as possible. That said, sometimes we are not afforded this luxury and must collaborate with folks that are a few time zones different.

Work handoffs

Frequently, we will find ourselves paired up with someone a few hours offset from our timezone. Sometimes, this means adjusting our hours. Often, however, this means that one person will sign off a bit earlier, and the other will sign on a bit earlier.

When you are the one to stay later, be sure to push the code to a branch and pass off context to your pair. Sometimes, this is a simple end-of-day Slack message. Other times, we can leverage a Loom video to convey something more complex or nuanced. Regardless, we must set our pair up for success so they can hit the ground running when they sign on.

Sometimes, the person in the late time zone will finish the story before the end of their day. If so, they can push it onto a branch for their pair to review when they sign on in the morning or, even better, synchronously review it in the morning.

Logistically, this also usually involves a pair rotation at a shared standup time rather than “first thing” in the morning for everyone. Depending on the team, this could be in the middle of the day. In that case, the pair (or “early starter” if the pair isn’t awake yet) can keep working until standup. Find time to pass off context before or after standup if the early starters frequently carry context. It’s also helpful, but not necessary, to coordinate lunch break times so that we have as much time together as possible.

So a daily schedule might look like this if we have two developers in two different timezones — one in Eastern Standard Time (UTC -5:00) and one in Mountain Standard Time (UTC-7:00):

Communication

Since we cannot see each other, it is beneficial to keep your pair (and possibly others) updated on when you are available or away. Even if we tend to sign on at the same time every morning, it’s good to send your pair a quick message to say hello so they know you’re ready to start the day. Additionally, posting a status when you are at lunch, doctor’s appointments or errands helps everyone know that they should not be waiting around for a response (or cold call answer!) from you. It can also be handy to shoot out a message to the team when returning from a vacation to see if anyone could use a pair for the day after you’ve missed a few rotations!

That’s a wrap!

That’s a wrap — problem solved! We can all just disappear and never leave the comfort of our homes now, right? Not so fast. We still haven’t been able to replace a few things with integrity.

Spontaneity

One of the most significant changes we’ve noticed is that we lose the one-off conversations that happen in the office. So often, cross-context problem-solving occurs in a way that can only happen organically.

Every time we go to the office, we can bounce ideas off of each other while getting a cup of coffee or overhear someone trying to solve a problem we’ve recently encountered. We can try to replicate this interaction with “coffee break” calls or Slack messages to a particular channel, but you can’t replace the spontaneity needed for this type of interaction.

Empathy

The other issue we haven’t solved is empathy. Sure, getting on a call with someone can build more empathy than communicating asynchronously, but humanizing those we work with is one of the most essential parts of building trust and working together. It’s a strange sociological experiment we’ve been going through, but there is no replacement for meeting someone in person.

That’s (actually) a wrap!

In the end, humans are social, and there can be no replacement for shaking hands, grabbing a coffee or a beer, or at least knowing that the other person is more than a floating head on a conference call. We love to work in person with our customers and colleagues whenever possible. However, these are the tools and tricks we have found helpful to leverage to make a remote-first synchronous-first world seamless.

Citations

Beck, K., & Andres, C. (2004). Extreme Programming explained: Embrace Change (2nd Edition). https://dl.acm.org/citation.cfm?id=1076267

--

--