One Head is Better than Two
Pair programming, where ALL production code is written with two programmers sharing one computer, is the most controversial of all the ideas put forth in XP. While it does lessen the chances of producing poor code, it doesn't seem to make sense that two competent, experienced programmers working together could produce the same amount of code as they could working separately. To this XPers say, it may be counter-intuitive (and XPers love to say that things are counter-intuitive), but just try it and you'll see.
Other mitigating factors for pair programming are the often different physical locations for people on the same project, different work schedules, and the fact that many programmers are just ornery, anti-social prima donnas, which iss why they are programmers in the first place. To all this, the peers say, "Try it, you'll like it."
Pair programming promotes overlapping knowledge of the application. You are no longer held hostage by a sociopathicalbeit talenteddeveloper who is singularly aware of how a particular part of the code works. And pair programming builds constant communication and feedback directly into the development process.
Pair programming also spotlights XP at its most dogmatic. Certainly, extremely (no pun intended) good code can be written by individuals. Many creative or just plain competent people prefer to work alone and produce good results. But XP says there is no room for a solo programmer. There is an inflexibility to XP that does not account for different personality types and work styles, which may alienate valuable members of your staff.