Pair Programming - Marketing FAIL
When people talk about lack of adoption of "XP" (aka Extreme Programming) practices, one of the chief problems people have with it is the idea of "Pair Programming". There are more times than I can count where I have been in conversations, where something along the lines of "those crazy agile guys want to have 2 developers do the work of 1 - no way we are doing agile" becomes part of the conversation. What an amazing failure of marketing. It is proof that before anyone in the software development business wants to come up with a great idea, they should run it by some people in marketing to see if the thing will fly.
Lets talk about some of the benefits of Pair Programming. When you are working with someone else, you are not:
* Surfing the web reading SlashDot/DIGG/etc.together
* Reading personal email
* Writing personal email
* Shopping on amazon.com
* Playing solitare
* Letting your ego continue to pound away at a problem that, for whatever reason, you can't solve. Your person you are pairing with should not have the patience for you to take them on "wild goose chases"
* Getting interrupted by others - people are much more reluctant to interrupt two people who are activley solving a problem than one person quietly contemplating
Rather...
* You are pacing eachother - people tend to run faster in races when they can directly work with eachother and co-motivate
* You are collaborating - two bright people should have a broader knowledge base than one single person
* You are active - walking into a team where people are activley collaborating looks like more "active" work than one where people are silently poring over their screens
* You are sharing knowledge - pairs can cross-pollenate good ideas that working alone we have to work harder to see. We seldom watch others program - and pick up from eachother little productivity habits (keystroke shortcuts, etc.)
The focus you get from pairing, so long as you are not paired with a psychopath, are immense. Pairing should generate the work of 3 people based on the productivity gains. It makes surface sense - when pairing, you are much more likely to get the 8 full professional hours per person than you are otherwise.
So why does this not sell? Seems like the benefits are pretty darn obvious. Well, personally, I believe the branding and naming of XP is one of the biggest marketing failures in history. CIOs are a conservative bunch. So are business owners. Like it or not, most of the time, they have to approve budgets, projects, and investments. Unless I have read a TON of literature and are ready to take on faith that it will work, if I am a CIO and my job depends on it, I ain't doing "Extreme" lunch, much less "Extreme Programming". I like having a BMW in the garage and not living on Ramen, ThankYouVeryMuch.
My modest proposal is to stop calling it Pair Programming or Extreme Programming. At this point, that is like calling your new energy company Enron. I propose calling it Collaborative Development. If we have two people on a project, they collaborate to get things done faster. And we leave it at that. Then, when we get things done faster and can point to good results, then we can talk about how good our new "methods" are.