I've done it all day. It's really great when you want to, and really shitty when you don't want to. I'd say it's all about whether your devs want to naturally pair, and you shouldn't force them to work any which way.
My biggest problem with Agile is that it touts itself as THE way you should work. When you're constantly working with all different kinds of minds, it's hard to say conclusively that ONE SYSTEM will work for EVERYONE.
I will say that as a pseudo-introvert (can function in large groups but prefers small, intimate conversations most of the time), I do enjoy pair programming because I learn so much. It's best to pair an unexperienced but knowledgable dev up with a veteran to either the current project or the current problem. The combination of naive creativity with tried-and-true procedure is the best of both worlds, and truly impossible with a single person, in my opinion.
My biggest problem with Agile is that it touts itself as THE way you should work. When you're constantly working with all different kinds of minds, it's hard to say conclusively that ONE SYSTEM will work for EVERYONE.
I will say that as a pseudo-introvert (can function in large groups but prefers small, intimate conversations most of the time), I do enjoy pair programming because I learn so much. It's best to pair an unexperienced but knowledgable dev up with a veteran to either the current project or the current problem. The combination of naive creativity with tried-and-true procedure is the best of both worlds, and truly impossible with a single person, in my opinion.