Industrial XP -> Pairing


Two people work on the same task together, continuously reviewing
each other's work and providing feedback


What is Pair Programming?
Pair programming is a dialogue between two people trying to simultaneously progam (and analyze and design and test) and understand together how to program better. It is a conversation at many levels, assisted by and focused on a computer
-- Kent Beck in Extreme Programming Explained

XP Needs Pair Programming
We believe pair programming is an integral part of XP, and it is dangerous to do XP without doing pair programming. One primary reason is that the pairs keep each other honest. XP is a minimalist approach, so it is essential that many of the practices actually get done.
-- Laurie Williams & Robert Kessler in Pair Programming Illuminated

The bulk of the design on XP projects occurs during pairing. Two people work on the same task at the same time, continuously reviewing each other's work. Whenever pairing is dropped from XP, design quality takes a plunge, while the defect count rises significantly.

Two people can pair to write stories, storytests, code or documents. It is common to pair across sub-teams pairing during integration and smoke testing, or when implementing stories that touch different subsystems.

7 Risks of Solo Programming

  1. Tunnel Vision (a.k.a. Frog in a Well)
  2. Fatigue
  3. Higher defects
  4. Less knowledge transfer
  5. More distractions
  6. Less refactoring
  7. Weaker problem solving


It is important to cross-pollinate across sub-teams from time to time, so the team has a working idea of the entire system, beyond individual specializations. It is also important to note that there are some pairing combinations may not make business sense - like pairing a mainframe resource with a java resource on a java/mainframe programming task. However, such pairings do make sense when timeboxed in the context of short tasks that involve talking to different subsystems.

Styles of Pair-Programming

  • 1 computer, 1 mouse, 1 keyboard
    • swap mouse and keyboard between pairs
    • one has mouse, one has keyboard
  • 1 computer, 2 mice, 2 keyboards
  • 2 computers, each with a mice and keyboard, working on same code

Further Reading

Pair Programming Illuminated by Laurie Williams and Robert Kessler.
PairProgramming on the Wiki Wiki Web.
Pair Draw, a pairing simulation.
Pair Programming on
eXPosures, Pair Programming

Industrial XP logo
Values & Practices
· Continuous Risk Management
· Project Chartering
· Project Community
· Test-Driven Management
· Sustainable Pace
· Planning Game
· Storytelling
· Storytesting
· Frequent Releases
· Small Teams
· Sitting Together
· Continuous Learning
· Iterative Usability
· Evolutionary Design
· Refactoring
· Domain-Driven Design
· Pairing
· Continuous Integration
· Collective Ownership
· Coding Standard
· Retrospectives

Send mail to with questions or comments about this web site.
Copyright © 2004 Industrial Logic, Inc. All Rights Reserved.