3 ms·
My theory on pair programming: a good pair is _more_ productive than two individuals on hard tasks, and _less_ productive on easy tasks. Basically, when you pa
by jon_dahl 18y ago
My theory on pair programming: a good pair is _more_ productive than two individuals on hard tasks, and _less_ productive on easy tasks.
Basically, when you pair, you get one better programmer instead of two lesser programmers. Think about the old 10x/100x developer question (http://c2.com/cgi/wiki?DevelopersWithHighProductivityTenxHundredxThousandx http://c2.com/cgi/wiki?DevelopersWithHighProductivityTenxHun...). In reality, it isn't that simple. A 10x programmer won't write simple code (Hello World) 10x faster. On the other side, a mediocre programmer may be unable to do some of the things that a better programmer can do, no matter how much time you give them. So it's silly to compare productivity along a linear scale like this.
Pairing is similar. It's meaningless to say that a pair 2x as productive as 2 developers, or 3x, or 1.5x, because it depends on the task. They might work far faster at a complex problem, but no faster one programmer at an easy one.
That's why my preference is to pair on anything that is moderately challenging (or harder), and to work separately on the easy stuff.