Pros of Pair Programming

Victoria Hale Williams
Popmenu Engineering
3 min readNov 28, 2022
https://storyset.com/web Web illustrations by Storyset

What is Pair Programming?

Pair programming is when two developers work from one computer on a shared task in 2 defined roles; The Driver (the one with the keyboard and mouse) and The Navigator (reviews the code as they go, provides direction, and much more).

As an introvert, it is easy for me to hate the thought of pair programming. I enjoy working alone, and others do not energize me. But interestingly enough, I’ve grown to love and appreciate pair programming due to the growth it has enabled for my teammates and me.

We’re a small squad, and pair programming has enabled us to work together effectively and efficiently.

How We Pair

Rather than sharing one computer and sliding the keyboard between developers, we use various screen-sharing software since we work remotely.

The best tool that allows us to have that keyboard-sharing experience is Tuple (not an affiliate link). Tuple enables you to take remote control to swap the driver role. With Tuple, you can also draw on your partner’s screen, allowing the navigator to provide visual direction quickly.

Sometimes, a pairing session might not be as long and doesn’t require keyboard switching. These times we might use Slack Huddle, Zoom, or Microsoft Teams.

The Benefits

There can be some downsides to pair programming, and many people despise it. However, in my recent experience and for my team, I’ve noticed the pros outweigh the cons. So, at last, here they are:

  1. Knowledge sharing. My teammates and I become better developers by sharing knowledge on different parts of the stack. In addition to technical knowledge sharing, we’ve been able to share tips and tricks that allow us to be more efficient and productive, including VS Code extensions, browser extensions, desktop apps, and command line shortcuts.
  2. Improve Team Dynamics. When you pair with your teammates, you learn a lot about how they work and communicate. You learn each other’s strengths and weaknesses and can better plan and assign work. In addition to working dynamics, my team has developed stronger relationships. We have been able to spend time getting to know each other personally. This has led to increased team morale, trust, respect, and deeper connections, which can be hard to do when working remotely.
  3. Prevent knowledge silos/vacuums. Pairing during feature development keeps us well-informed about ongoing decisions and feature-specific knowledge. This prevents the scenario where one developer on the team holds all the knowledge about a feature. Additionally, it enables us to pick up any story that is ready for development easily. Finally, it helps us all be owners of projects.
  4. Productivity. Pairing has also helped our team to be more productive. For example, we identify blockers and gaps in knowledge early. As a result, we spend less time being stuck and more time completing stories. We can also get clarity and questions answered quickly in real time that we might have waited for during code review.

If pair programming is something you have shied away from, I highly recommend it. If you and your teammates work remotely, there are various tools available that you can utilize to get started. Lastly, if knowledge sharing, improving team dynamics, preventing knowledge vacuums, and increasing productivity are some of your team's goals, pair programming is a great way to achieve them.

Happy pairing!

--

--