Pair Programming

Change is in the air

Ever hear someone say this?:
I wouldn't want to be a programmer because I wouldn't like sitting by myself for most of the day.
Currently it is a fair objection, but that may soon be a relic of the past.

Pair What?

Pair Programming is transforming software development from one of the least social professions into one of the most social professions. It consists of 2 people (traditionally developers) working side by side on one task. At any given time only one person is typing, while the other actively contributes by conversing, pointing at the screen, finding bugs, asking questions, etc..

Wikipedia has a decent description on their Pair Programming page. Among the more compelling aspects:

- Improved morale
- Tremendous learning and knowledge-sharing
- Improved design quality

Coming to a dev shop near you...

Many progressive dev companies have strongly embraced pair programming, including ThoughtWorks, Relevence, Obtiva, Hashrocket, and Edgecase to name a few. Many of those who are currently practicing and advocating pair programming are the same people who conceived of and originally advocated agile methodologies. (Pair programming is one of the practices of Extreme Programming, one of the original agile methodologies.)

Only a short time ago most large IT shops resisted agile, in favor of an emphasis on documentation and more heavy-weight processes. Fast forward a few years, and now even the bigger more sluggish shops are among the more enthusiastic proponets of agile. One can make a strong argument that pair programming is following the same trajectory.

More links to check out

See the "External Links" section of Pair Programming on Wikipedia
Google search for "Pair Programming"
WikiHow's Pair Programming Page
Corey Haines' Pair Programming Tour