Improving your pair programming sessions while working remotely

I’ve used pair programming to improve and share my software craftsmanship skills for a long time. Now that most of us are working remotely, are you still pairing?

Pair programming increases developer happiness.

Pair programming is a great way to keep connected with your fellow developers. Even remote pairing can be a great experience after you consider the limitations of remote communication and become comfortable with some new tooling. But first, let’s take a moment to examine the value of pair programming.

The value of pair programming

Besides being a great way to keep connected and increase your skills, pair programming also leads to increased software quality. A study about the collaborative software process found that developers working in pairs had 15% lower defect rates. Finding defects early in the software development life cycle leads to huge time savings down the line.

Another study making the case for collaborative programming showed that pairs not only outperformed individual programmers but also enjoyed the problem-solving process more and had greater confidence in their solutions.

Note that pairing works best for writing production code that should be maintained. It works less well when dealing with development chores like fixing a typo. I recommend discussing with your team which tasks are best suited to pair on.

Video conferencing

Good lighting and a headset reduce visual and auditory strain.

A remote pair programming session usually starts with a video conference. Putting some light on your face, aligning your webcam, and connecting over a stable internet connection goes a long way in reducing the strain of both remote calls and remote pairing.

I bought a professional headset last year and received positive feedback on more than one occasion. Did you know that people tend to listen better to you when your voice is heard more clearly?

You can reduce visual distractions in your background by using a virtual background. To limit auditory distractions I recommend taking a look at software like Krisp.

Even after applying all these tips, we should still consider the limitations of virtual communication. Our brain simply has to work harder to process non-verbal cues like facial expressions, the tone and pitch of the voice, and body language when we are not sitting in the same room.

Sharing your desktop

Most video conferencing tools allow you to share your screen but for pair programming, I would recommend using more specialized software. Tools like Tuple and Screen.so give you a second mouse cursor and allow you to type together in the same window.

Ideally, you would share your main screen while keeping the video of your partner and any personal windows (slack, email) on the second screen. When sharing a screen, consider the screen resolution of your partner, they might not have such a large screen or be comfortable with your tiny font.

Sharing your IDE

Besides sharing your desktop both Visual Studio Code and IntelliJ have free plugins available to share your IDE instead of your whole desktop. These plugins allow more independent access to project files and require significantly fewer system resources.

Commercial tools like codetogether and gitduck take this a step further with Cross-IDE support, allowing you and your pairing partner to pair from different IDE’s.

There is also git.live, which might be less useful for longer pairing sessions but definitely helps you and your team stay connected within the codebase.

You decide

There are many great tools available to help you improve your remote pair programming sessions. Pick the one that helps you and your team enjoy building great software.

Huge shout out to Mona Ciotta for providing feedback while I was writing this article. If you like to find out more about medudoc’s approach to remote working, I recommend reading the article about improving communication within your team by Anna-Maria Zell.

Sources

About the author

Wouter Westenbrink works as a freelance software engineer, solution architect, consultant, and developer coach. He has been passionate about crafting great software ever since writing his first code at the age of 12. Before finishing his studies, he was already consulting a wide range of clients to take a more holistic approach to building sustainable solutions with the help of technology. These days he enjoys supporting high performing multidisciplinary teams while sharing his knowledge and experience to help others grow. You can contact him via email (wouter@westenbrink.de) and Linkedin.

--

--

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Wouter Westenbrink

Wouter Westenbrink

2 Followers

Freelance software engineer, architect, consultant and coach. Passionate about crafting software and building sustainable solutions.