So I decided to move my team down the official pairing path starting this week. Basically 25% of each of my coder’s time will be spent paired up with someone else. Kinda shocking when I actually put it that way.

See, I manage a pretty pragmatic team, and I have a pretty pragmatic boss. Our culture is aware enough of the potential benefits of pairing, but still knee-jerks in a negative way to a concept like that. What finally pushed me over the edge were some code reviews we recently had that involved the entire team. All of us (4 coders and 1 manager) presented a bit of code to the rest of the team, with the attendant questions and refinements. Each person took roughly an hour. In each review, we found items that a second set of eyes would have caught and prevented earlier in the stream. One review was actually continued the next day due to the amount of time required for the suggested refactoring.

So, let’s do some math. Five people, five one-hour code reviews, plus another extra hour for the refactoring mentioned above, gives us 26 hours spent in review mode over the course of two work days. Note that this is dead-time insofar as project deadlines are concerned; new code isn’t being generated, just old code being reviewed. Ignore the fallacy of 100% coder efficiency, and we have 32.5% of our time being spent in review mode for those two days.

Now the justification. Had we spent 25% of our time paired up, I guarantee (trust me here) that the mistakes we saw in those code reviews would have been caught. Not only that, but some of the style issues I saw wouldn’t have been issues that are now still present in our code line. Finally, we wouldn’t have had 26 hours of, say, < 10% efficiency; instead we would have had 20 hours of 80%+ efficiency, since I’m firmly believing that given two programmers of near equal ability, you get more efficiency from them pairing than if they had been solo.

Yes, the numbers get funky at the end, but I’m not writing mathematical equations here, just trying to frame a decision in my mind that I believe in my coding soul but can’t produce a report to back up. Thankfully my team operates in an environment where we are primarily judged by our results, so we’ll see if my fanciful numbers above are borne out in the next month or so as we look to complete 4 major feature sets.

 Leave a Reply

(required)

(required)

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

 
© 2011 Musings of the Bare Bones Coder Suffusion theme by Sayontan Sinha