Confessions of a pair programmer
I have worked as part of a pair in two projects so far, and I place my observations here.
The first thing that arises out of PP is synergy. Within weeks, I found that I was learning more by way of discussion than I would have had I been on my own. Pairing a fresher with an experienced guy sounds ideal, but there is often a "thinking lag" on the part of the fresher, which can be irritating to the pro. What we did was pair freshers, and also get their code reviewed by a more experienced guy. This eases the situation in that the freshers learn from the pro without affecting his productivity.
One more obvious benefit of PP that we found was that we could manage well even if a person was on leave.We did move people around, but that was only on a couple of occasions.
One benefit that I have noticed, years after this activity, is that people who have worked in pairs ( and moving around as well) are capable of taking different points of view when approaching a problem. When pair programmers graduate to pair designers and pair architects, you know you have a good thing going. Pair programmers are more open to criticism, newer ideas, etc.(Look at me
Of course, I've observed the flip side of it too. Ego clashes, lethargic approach are also part of the game. But these things could exist without PP also; it is upto the more rational people to handle such issues.
[This message has been edited by Sowmya Karmali (edited April 04, 2001).]