Pair programming is taking code reviews to the extreme. One person
drives while the other observes and comments. There's a constant
quiet banter. Listening skills are very important.
[taxes 2000] The most intense pair programming session actually
involved three people. We had a failure in our tax generation software
caused by a defect in Adobe Acrobat. Acrobat won't render PDF forms
when printing if they haven't been displayed. People were printing out
tax forms with the first page filled in and the rest blank.
After discovering the problem, we had to work around the problem
in Acrobat. The existing software made too many assumptions about
PDF forms complying to the spec. We had to change the approach.
The entire team, all three of us, divided the problem and programmed
in parallel while maintaining constant communication by phone. Since
we were working on a web product, we were able to share very easily.
We rewrote the tax package in a (long) day. Problem solved only
because three heads are much better than one.
Pair programming takes courage, because it means you have to accept
making mistakes in front of another human being. It can be great,
if everyone is humble. It fails when someone is not willing to
discuss openly.