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.
万丰彩票 临海市 湖北省 钟祥市 大同市 兰溪市 湘潭市 松滋市 铁力市 彭州市 厦门市 宜春市 邹城市 彭州市 山东省 金昌市 平度市 海南省 双滦区 忻州市 葫芦岛市 十堰市 平度市 潞城市 临沂市 阜新市 普兰店市 汉川市 兴城市 都匀市 枣庄市 安达市 烟台市 高邮市 梅河口市 江油市 白银市 丰城市 孝义市 石首市 池州市 葫芦岛市 福建省 金华市 梅河口市 胶州市 上虞市 大石桥市 江阴市 吉首市 大庆市 铁力市 深州市 山西省 厦门市 项城市 永州市 原平市 明光市 耒阳市