When you envision a computer programmer, what comes to mind? A solitary worker in a cubicle, with a can of Coke, and a couple of Dilbert cartoons taped to the monitor. They have strong ideas about how to do their job, and they’re used to being left alone. Most people don’t expect great social skills from computer programmers (I’ve been there; my undergrad degree is in computer science).So you might be surprised to learn about the latest trend in software development: it’s called pair programming or extreme programming. The way it works: one person, the “driver,” types; the other person, the “navigator,” actively watches–catching errors, thinking strategically, or referring to printed documentation. Every 30 minutes, they switch. In some big software teams, the pairs change every couple of days.
At its best, this sounds like a waste of money–why pay two programmer salaries to do the work of one? And at its worst, this could be a disaster, with personality clashes and arguments slowing the project down to a crawl. After all, programmers are legendary for their idiosyncratic quirks.
But the surprising fact is that pair programming saves money and results in higher quality programs. The pair gets the job done in less time than two programmers working separately; but even though the time isn’t cut in half–the two programmers generate fewer lines of code per hour than two programmers working separately–the secret is that the code they generate has far fewer bugs. That means that the company saves money down the line in quality control testing and in user support. A project at Chrysler that used pair programming found that almost the only defects that made it through testing were in code that someone had written alone–when their partner was out sick, or when the pair just decided to program apart for a while.
Even in tasks that we think are ideal for solo workers, group genius wins the day.