Pair Programming

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.

4 thoughts on “Pair Programming

  1. I think that people expect the same great social skills from a programmer that they expect from any other professional that works as part of a team.

    As for pair programming, it doesn’t actually get the job done in less time, but there can be an increase in quality. The benefits of pairing tend to be in reverse proportion to the overall skill level of the team, although it can be helpful for any programmer to pair off with someone for a limited time if they’re stuck. Explaining something to another person seems to help you to understand the thing you’re explaining.

  2. It is important to note that Pair Programming is not synonymous to Extreme Programming. In fact, Pair Programming is just one of the twelve core practices of Extreme Programming, albeit one of the most important ones.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s