How useful is Pair Programming?
DanielBMarkham: From what I've seen, this is something with a lot of hype. I've seen a lot of smoke, but little fire.Anecdotally, I've heard and seen that it helps, and that it hurts. I've seen people praise it as the answer to all productivity problems (along with TDD and ATDD, of course) and I've seen people curse it.My opinion? It's good for leveling out the programmers on a team. If I had 6-8 team members I might have one pair going at all times -- usually the pairing up a weak/new developer with somebody who can help him. But I wouldn't expect productivity improvements -- I'd simply use it as a way of level-setting the team. It seems like a good mechanism for bringing people up to speed quickly.Having said that, you have to let the team be the judge. If they like it, do more of it. If not, don't. Whatever you do, don't let hype and religion get in the way of the team performing. Life is too short to make it miserable by doing something everybody thinks is stupid.Some of the TDD guys are doing ping-pong pair programming. That's where person A writes a test for new code, then person B writes code for the test and then writes a new test for new functionality. It bounces back to person A, who writes the new functionality and then a new test for new stuff, etc.That at least seems more interesting for folks.Personally, I don't like it. But I try to be open-minded about it (especially since I teach this stuff!)Be aware that in some anal-retentive shops, pair programming is a security violation. (You're not supposed to be sharing your terminal session with anyone)