Pair Programming
Also Known As
pair coding
paired programming
driver navigator
TL;DR
Two developers work together at one workstation — one writing code (driver), one reviewing and guiding (navigator).
Explanation
Pair programming (from Extreme Programming) has the driver write code while the navigator reviews, considers the bigger picture, and catches mistakes in real time. Pairs switch roles regularly. Benefits include: immediate code review, shared knowledge preventing silos, higher design quality from continuous discussion, and faster onboarding. Studies show it produces fewer defects at a modest productivity cost. Remote pairing tools (VS Code Live Share, JetBrains Code With Me) make it viable for distributed teams. Not all tasks benefit equally — exploratory or complex tasks see the most gain.
Common Misconception
✗ Pair programming halves productivity because two people do one person's work. Studies consistently show pairs produce fewer bugs, onboard new developers faster, and spread knowledge more effectively — the total cost per feature is often lower despite appearing slower by lines-of-code metrics.
Why It Matters
Pair programming produces code with fewer defects, spreads knowledge across the team, and reduces bus factor — two minds catch each other's mistakes and produce better designs than either alone.
Common Mistakes
- One person driving while the other passively watches — both must be actively engaged.
- Not switching driver/navigator roles frequently enough — one person dominates.
- Pairing as a productivity metric tool — it is a quality and knowledge-sharing tool, not an output maximiser.
- Never pairing — lone developer silos cause knowledge concentration and missed design opportunities.
Code Examples
✗ Vulnerable
// Pairing anti-pattern — one person types, other watches:
Developer A: [typing intensely]
Developer B: [watching YouTube on phone]
// No knowledge transfer, no second perspective, no benefit
// Productive pairing:
Developer A (navigator): 'We should validate the email before saving'
Developer B (driver): [typing validation] 'Good catch — should we also check uniqueness?'
Developer A: 'Yes, let's add that test first'
✓ Fixed
# Pair programming patterns for PHP teams
# Driver-Navigator:
# Driver: writes code
# Navigator: reviews in real-time, thinks ahead, spots issues
# Switch every 25 minutes (Pomodoro)
# Ping-Pong (TDD pairing):
# Dev A writes a failing test
# Dev B makes it pass, then writes next failing test
# Dev A makes it pass → repeat
# Tools for remote pairing:
# VS Code Live Share — shared editing, terminals, debugging
# JetBrains Code With Me — PhpStorm native
# tmux + Vim — terminal-based, ultra-low latency
# Benefits:
# - Knowledge transfer (no bus factor for critical paths)
# - Real-time code review (fewer PR back-and-forths)
# - Architecture decisions made together (fewer rewrites)
# Start with 20% of dev time — high-complexity or high-risk work
Tags
🤝 Adopt this term
£79/year · your link shown here
Added
15 Mar 2026
Edited
22 Mar 2026
Views
32
🤖 AI Guestbook educational data only
|
|
Last 30 days
Agents 1
No pings yesterday
Amazonbot 8
Ahrefs 7
Perplexity 5
Google 2
SEMrush 2
ChatGPT 2
Majestic 1
Also referenced
How they use it
crawler 25
crawler_json 2
Related categories
⚡
DEV INTEL
Tools & Severity
🔵 Info
⚙ Fix effort: Medium
⚡ Quick Fix
Switch driver/navigator roles every 25 minutes (Pomodoro rhythm) — the navigator thinks ahead while the driver focuses on implementation
📦 Applies To
any
web
cli
🔗 Prerequisites
🔍 Detection Hints
Code without review passing to production; complex features developed in isolation without knowledge transfer
Auto-detectable:
✗ No
⚠ Related Problems
🤖 AI Agent
Confidence: Low
False Positives: High
✗ Manual fix
Fix: Medium
Context: File