Experiment: Remote Pair Programming

remote pair programmingPair programming is not a new concept. It’s been around for at least for a couple of decades. Distributed, virtual, or remote development teams also aren’t a novel idea. And combining the two – remote pair programming – is not a new construct. Yet I’m wondering why we don’t do more of it.

Advantages & Outcomes of Pair Programming

The wins from pairing are well documented:

  • Collaboration in real-time
  • Team-building
  • Faster learning (for both mentor and mentee)
  • Quality: Better design & code / fewer defects
  • Less lotto factor (aka bus factor)
  • Higher team productivity
  • Increased team morale

Why aren't we doing more remote pair programming? Click To Tweet

Some Variables to Play With

The possible constructs of pairing allow for incredible variation:

  • Assorted paring variations (see below)
  • Assorted-sized work items  (S, M, L, etc)
  • Assorted complexity (hard problems/simple problems)
  • Assorted time frames for pair lifetime (clock time, story boundary, iteration boundary)
  • Communication channels – audio, video, dedicated tooling (see below)

Pairing Variations

(https://en.wikipedia.org/wiki/Pair_programming)

Expert–Expert

Expert–expert pairing may seem to be the obvious choice for the highest productivity and can produce great results, but it often yields little insight into new ways to solve problems, as both parties are unlikely to question established practices.

Expert–Novice

Expert–novice pairing creates many opportunities for the expert to mentor the novice. This pairing can also introduce new ideas, as the novice is more likely to question established practices. The expert, now required to explain established practices, is also more likely to question them. However, in this pairing, an intimidated novice may passively “watch the master” and hesitate to participate meaningfully. Worse still, the Expert may simply withdraw their labor and get employment elsewhere.

Novice–Novice

Novice–Novice pairing can produce results significantly better than two novices working independently, although, this practice is generally discouraged.

Remote Pair Programming Tools

The available tools for remote / distributed teams remove just about any possible barrier to making pairing work.

Here’s a short, updated list of remoting pairing tools… (And I’m sure there are plenty of others… please comment below with what you’ve tried)

  • tuple.app: “The best remote pair programming app on macOS and Linux… Windows coming soon…”
  • slack.com/features/huddles; “Bring the feeling of working side by side to a virtual space that lets you collaborate and co-create live.”
  • remotemob: “A tool to help your team with remote programming- and collaboration tasks. Remote mob keeps track of the current ‘Typist’ and when to take coffee breaks through synced timer and browser notifications.”

Why Not Get Started?

If you’re currently doing no pairing, why not start simple? Try a pomodoro or two.

See what happens, and share what you’ve learned.

Reference Materials / Read More

One comment

Leave a Reply

Your email address will not be published. Required fields are marked *

Back to Top