Technology RadarTechnology Radar
Adopt

Pair Programming in its original definition is a collaborative development practice where two engineers work together at one workstation, continuously reviewing each other's work. One developer acts as the "driver" (writing code), while the other is the " navigator" (reviewing, suggesting, and thinking strategically). The roles switch frequently throughout the session. Nowadays, pair programming is often done remotely using screen sharing and supporting tools.

Currently, "canonical" pair programming is not yet strongly adopted at ProcureAi. While we regularly brainstorm together or huddle around a problem, the structured driver/navigator pattern of true pair programming isn't our default way of working. As a fully remote company, we need to be intentional about creating collaborative coding experiences that replace the spontaneous pairing that happens more naturally in co-located environments (Great examples of such natural "emergence" of pairs and larger groups collaborating are our company's on-site events).

Why We Should Adopt This

The evidence for pair programming is compelling. The DORA State of DevOps Report consistently identifies pair programming as one of the key practices that distinguish high-performing teams from low performers. This isn't anecdotal - it's backed by years of industry research across thousands of organizations.

Organizations practicing pair programming consistently report:

  • Dramatically reduced defects: Catching issues immediately rather than in code review or production
  • Faster feature delivery: Despite appearing slower, pairs avoid costly debugging cycles and rework
  • Continuous knowledge sharing: Eliminating knowledge silos and single points of failure
  • Better design decisions: Two minds collaboratively solving problems produce superior solutions
  • Natural code review: Review happens during development, not as a blocking step afterward
  • Accelerated onboarding: New engineers become productive in weeks instead of months
  • Reduced isolation: Remote work can be isolating; pairing creates connection and collaboration

Supporting Tooling

Remote pair programming requires good tooling. Tools like mob.sh streamline the driver/navigator handoff process, automating git operations for seamless role switching. Combined with screen sharing and voice communication, remote pairing can be as effective as in-person collaboration.

Recommendation

We might consider experimenting with pair programming, even if only for a few hours per week. Potential starting points include:

  • Complex features where design quality matters most
  • Critical bug fixes where mistakes are costly
  • Knowledge transfer sessions with less experienced engineers
  • Technical exploration and architecture decisions

Further Reading