Pair programming is great, but only if you do it right. You can do it wrong and still get good things from this practice, but at the same it could be very frustrating. I start thinking on this after read some people complaining about it on Twitter.
Usually, the big problem to implement this kind of practices are far from the developer team. However, in those tweet seemed to be something more. After practicing it steadily during 8 months,
I have discovered that it really brights when every peer take responsibility of different things. We developer use to handle a lot of complexity while we are coding,
if we add a second brain is to divide the cognitive load not to add more process power, human beings don't work on that way. In my opinion, this is the main lesson I have learned regarding pair programming because it really makes a remarkable difference.
Rest from time to time, and take time to think alone, is also useful. (This and more in the las episode of )