I never liked the rigid position taken by the XPers on "Pair Programming"- one programmer typing away while the other sitting next to him watching over his shoulder. People, particular PMs and clients, are weary of this practice thinking that it is a wastage of time, and hence money. I am with the PMs and clients on this. I don't like this practice because this not how we the programmers naturally work. And hence it cannot be as productive as it is claimed to be. Yes, I know there are studies throwing numbers like "15% improvement in quality while only 15% slower than two solo programmers." Why would I want to be 15% slower (hence pay 15% more) if I can maintain the same quality (difficult to prove either way though)?
I understand how this "pair programming" came about. What we the programmers naturally do is that we talk and interact with our fellow programmers sitting next to us or in front of us as we work on our codes on a daily basis. Sometimes, we look over our fellow programmer's shoulder to help or to be helped. This is natural. However, formalizing this is over the top.
What we have been doing at Code71 is what we call "Pairing on a Story." That is, at least two developers pair on a single story and take on different tasks. They coordinate to deliver the story. We usually like to pair novice-expert. This way you avail all the advantages of pair programming without the disadvantages as well as get the support from the PM or client.
Are your pairing or pair programming? Like to share your experience?