Paired programming is an aspect of extreme programming that many people find hard to swallow. I must admit that I am somewhat skeptical of the practice.
However, this article about paired programming at the Software Factory (why I am I hungry for cheesecake?) is intriguing. I haven’t read through the whole thing, but it certainly asks some interesting questions.
I do believe that pair programming produces better quality from the outset. Even without a formal process, I think every software shop has ad hoc sessions of pair programming when two developers are looking over some troublesome code. Whether I’m the one at the keyboard or the one looking over the shoulder, the discussion always involves analysis that wouldn’t have occurred otherwise.
The other idea that has me interested in this article is the question about focus drifting away from the necessary task. When I am working alone, I do tend to drift away from the task at hand. It’s hard to concentrate on difficult tasks for an extended period of time. Programming well is a difficult task. I can understand how having a partner will help keep me on task.
In school, we occasionally did group projects or pair projects. I wonder if the output of these projects was better than what would have been done if the students worked alone?