Ever since we transitioned to working remotely, there’s been a lot of remote pairing going on. Previous to this, I’d only done remote pairing for quick knowledge transfers (before going off to work solo or in person with a different pair).
The benefits of pairing are well understood, and going remote means that some of those benefits are harder to get. The lack of physical proximity takes a toll. This includes obvious things, like making it more difficult to pass off control, and more subtle things, like losing non-verbal signals from your pair.
Over the last few months, we’ve found some simple ways to remedy some, but not all, of these problems.
Have the Right Hardware & Software
It pays to have good tools. Remote pairing will never be the same as having someone right next to you, but a good set of speakers or headphones and a microphone make communication so much easier. If you use speakers with a microphone, make sure your noise cancellation is working so your pair doesn’t have to hear themselves talking.
The right software can also make a big difference; I highly recommend using screen sharing software that allows you to hand off control. Without it, it’s a lot more difficult for your pair to quickly code up an idea they’re having. When you’re sharing and they want to try something, they’re going to have to pull down the repo, restart things, compile as necessary, and then switch the screen sharing to their screen. The ability to quickly try out an idea is extremely valuable.
If your software lets you pass controls back and forth, consider letting your pair create a keyboard profile on your machine. Then, when you pass control off to them, they can change the keyboard profile to their preferred bindings.
Use a Voice Channel
Some chat clients (like Discord) have voice channels. Being in a voice channel means you don’t need to connect or disconnect from a call to talk to your pair; you just talk to whoever is in the voice channel. This also makes it very easy to have a third person drop in, if need be.
Using voice channels can remove some of the formality associated with checking to see if your pair is ready to start a call, and the experience is a little more like being in the same room with someone.
Coordinate Breaks
When you’re working solo and your energy levels start dropping, it’s easy to take a break. But when you’re with a pair, it can feel difficult to ask for a break.
Make sure you talk to your pair about their expectations around breaks. Once you both know what to expect, it will be easier for both of you to suggest a break when you’re feeling the need to step away.
Also, make sure your pair knows that you’re receptive to taking breaks. If there hasn’t been one in a while, and you perceive that your pair might be losing steam, it might be a good time to suggest one.
Hold Pair Retros
Once a week, do a quick impromptu retro with your pair at the end of the day. This can be a five-minute conversation where you offer and receive feedback and suggestions about what’s going well and what can improve. It will give you a structured time to raise any issues you’re having and give you a chance to provide positive reinforcement for things that are going well.
Better remote pairing means lower stress and higher code quality. And working together to improve the experience will build stronger bonds between teammates — something that’s much harder to do in a fully remote context.
Invest in upgrading your equipment, use the best software for the job, and dedicate time to giving and receiving feedback. Don’t be afraid to iterate and try new things; a lot of us are figuring this out for the first time.