Facilitating the Spread of Knowledge and Innovation in Professional Software Development

Write for InfoQ


Choose your language

InfoQ Homepage News Opinion: Pair Programming Is Not For The Masses

Opinion: Pair Programming Is Not For The Masses

This item in japanese

Pair Programming continues to be one of the most debated and controversial practices of recent years. Most proponents don't falter in their praise of the benefits, but many of even these same people will admit they struggle to get pairing really going in their shops. Why? Obie Fernandez opinions 10 reasons why this might be so.

After two of his company Hashrocket's employees, Desi McAdam and Jim Remsik, had an article on the benefits of pair programming featured in the New York Times, Obie followed up with a thought-provoking post outlining 10 reasons why many shops won't succeed with pair programming. He first qualifies his remarks explaining his pure belief in the benefits pairing exude, stating that he thinks "pair programming is one of [the] most important competitive advantages at Hashrocket".

He then follows by stating that "pair programming, especially all the time, is one of those things where [he] increasingly has to advise most Agile idealists that it probably won't work for them", and gives his list why:

  • 10 - Most software managers don't want to invest in the necessary hardware: Effective pairing requires good equipment, and most shops aren't willing to make this investment
  • 9 - Most software shops are not configured for pair programming: Most software shops have their programmers in cubicles, and "cubicles do not work for pair programming"
  • 8 - Most software shops use traditional hiring practices: Good pairing implies having the right people for the environment, and many companies hiring practices don't contribute well to ensuring this
  • 7 - Most software shops tolerate anti-social behavior: Pairing requires humility (or as Obie puts it, it requires enforcement of the "No-Asshole Rule"). Anti-social (and anti-hygienic) behavior and pairing don't mix, and many shops aren't diligent about removing bad mannered programmers
  • 6 - Most software people don't understand pair productivity: The age-old misconception about pairing, "won't this cut my productivity in half?"
  • 5 - Most software shops employ under-qualified developers
  • 4 - Most software shops are overworked and under-staffed: Pairing, especially of the promiscuous sort, may require more people (but not necessarily more time), and many shops are not equipped for this
  • 3 - Most software developers don't like everyone they work with: Unless you can commit to small teams of sociable people, you'll have a hard time getting people working together happily
  • 2 - Most software developers just don't want to work that hard: Pair programming is intense and will lead you to working harder, but many people are not motivated to want to work this hard
  • 1 - Most software shops don't really care about excellence: Investing in pairing implies investing in craftsmanship, which many shops aren't interested in doing

Obie's list (highly summarized here, please read in its entirety before making judgement), being rather opinionated, has generated a great deal of response, much of which available in the long list of comments on the blog entry itself.

Brian Guthrie took some time to create his own list in a noteworthy rebuttal to Obie's post. As he states:

[Obie's and] Hashrocket’s setup provides an optimum environment for pairing, but the folks who first came up with the practice didn’t have that kind of workspace available everywhere, and you don’t have to either.

He follows with this list of five things he believes Obie missed:

  • 5 - Pair Programming Doesn’t Require Expensive Hardware: If it's all you can get, then one solid computer, some spare mice and keyboards, and a conference room will work to get started pairing
  • 4 - Everybody Need Not Get Together And Love One Another Right Now: Don't pair people who don't work well together, and enforcing the basic hygiene pairing requires is something every shop should be able to do
  • 3 - Many Businesses Are Happy To Try Pairing: Organizations aren't as afraid of pairing as people claim
  • 2 - Many Software Shops Care Deeply About Return On Investment: Most shops aren't caring about "excellence" per se, but they do care about cutting down defects and spreading knowledge, which pairing does well
  • 1 - Pair Programming Is Not Just For The Elite: Anyone can and likely will enjoy and benefit from pairing, not just "hard-core developers"

Take some time to read both posts, Obie's as well as Brian's, in full. Its likely many of the points will resonate one way or another with your own experience and ideas.

Rate this Article