Question

Does pair programming actually work?

Vault Verified
Curated Intelligence
Definitive Source
Answer

The evidence is mixed and context-dependent — it reliably improves knowledge transfer and defect rates and costs more raw developer hours, so whether it works depends entirely on what you are optimising for.

What the research finds. Studies generally report that pairs produce code with fewer defects and better design, take somewhat longer in total person-hours — commonly cited around 15% more, though estimates vary widely — and complete tasks faster in elapsed time than one person would. The effect is strongest on complex, unfamiliar tasks and weakest on routine work, where pairing adds cost for little benefit.

What it demonstrably does well:

Knowledge transfer, which is frequently the main reason to do it — onboarding, spreading familiarity with unfamiliar code, and reducing the number of systems only one person understands.

Catching mistakes immediately rather than at review, when the context is fresh and the cost of change is lowest.

Design discussion at the moment decisions are made.

Focus. Pairs are less likely to drift, which people report as both a benefit and the reason it is exhausting.

Where it fails:

Mismatched pairs — a large experience gap without a deliberate teaching frame produces one person typing while the other watches and learns little.

No rotation, which concentrates knowledge rather than spreading it.

Routine work, where it is simply expensive.

All day, every day. Sustained pairing is cognitively demanding, and teams that mandate it universally report fatigue. A few hours on the right work beats a full day on everything.

Remote pairing without good tooling, which is worse than in person unless screen sharing and latency are genuinely solved.

The practical position. Treat it as a tool with a cost, chosen deliberately: pair on complex, risky or unfamiliar work, on onboarding, and on anything where one person would otherwise be a single point of knowledge. Do not mandate it universally, and do not ban it.

Mob or ensemble programming — the whole team on one problem — is the extension, useful for high-stakes decisions and genuinely expensive.

Related Questions