Fact of the matter is that the people who were pushing pair programming screwed up. Their "tests" were pure pseudoscience of the kind Richard Feynman was trying to warn young people about when he pointed out that most of the time, scientists work hard not to fool themselves. It was shit science and unfortunately it got stuck in people's minds.
Which tells you something about what a bunch of sheep programmers can be.
Tests that were of far better scientific quality were performed by the Simula institute a few years later; showing what most intelligent programmers I know suspected all along: it depends.
Indeed, pair programming seems to work brilliantly -- for inexperienced programmers. I attended the talk where the paper was presented. I was one of perhaps 5 or 6 people in the audience. One or two years earlier, at the same conference, one of the main proponents of pair programming had unabashedly stood on stage and preached unadultered pseudoscience to a packed room, and the dumb sheep in the audience just bought it.
I can't remember if the study also looked at what activities are suitable for pair programming, but it has its uses. For me it works to have another pair of eyes when I am trying to hunt down a bug and I am stuck. Having someone stare at my screen while I program, or worse yet, having to stare at someone else write code, doesn't work for me. I knew that years ago. I do try to pay attention to what I do.
Anyway, my friend Jon had the best description ever of pair programming so far:
Pair programming makes about as much sense as pair meditationIndeed.
Now, the next time you see someone trying to pass off pair programming as a silver bullet, please hit them over the head with a clue-by-four and tell them to apologize to Isaac Newton and Richard Feynman for taking a crap on their principles.