Agile Software Construction

The idea behind pair programming is of course very simple, essentially it comes done to "two heads are better than one" most of the time. In addition, in pair programming all code is always reviewed by at least one other person who is focussed on what the code needs to do.
Okay, but how does it work in practise? How do you get two developers to pair program, particularly when most programmers like to work on their own, have often been trained primarily to work on their own, indeed where some programmers seem sometimes to be incapable of relating to other human beings, let alone working in a pair!
Okay let us be honest here pair programming isn't easy, actually its quite hard. This is not what you often hear, but it is a fact! Most programmers have been trained to work alone, to change the habit of a lifetime is never easy. In addition, few people can just pair program straight off, most need to learn (or be trained) how to pair program.
Knowing how to work in pairs is hard because it is not only a different way of working, it involves inter-personal skills, pair dynamics, communication, tolerance and trust.
For example, when people think of pair programming, they think of two people working on the same code. Fine, but it is not possible for two people to actually program at the same time. In pair programming, one developer takes hands on control of...