Archive for March, 2006

Pair Programming

Wednesday, March 8th, 2006

This pair programming study was being passed around at work, which always sends a chill down my spine.

In case you are not familiar with this confronting practice,

The official definition of pair programming is two programmers working together, side by side, at one computer collaborating on the same analysis, design, implementation, and test. In other words, consider it like two programmers using one pencil.

Its main thrust of the paper is that working as a pair each programmer achieved 227% of the average level of output in the organisation. Fascinating stuff, but not without its difficulties. I am not convinced that lines of code is a meaningful way to measure programmer productivity. I suspect that the average programmer might easily double their output by this measure just by being told that the lines of code they commit is being tallied.

By this measure I should have been paying to come to work this month. My main task has been refactoring about 6000 lines of code into about 2000 lines of code. I appear to have been doing negative amounts of work.

But that is all a side note, I was much more fascinated by the effect of pair programming on error rates. The summary data is helpfully provided as an image of a table. Errors decreased by three orders of magnitude.

Which sounds great, but think for a minute what that means. The author chooses not to disclose the normal error rate for solo programmers in the organisation, except to say that it was in line with the industry at the time. One data point given though is that a 10000 line task delivered by pairs had only two coding errors and one design error. That sounds pretty good to me … but if the pairs were producing 0.001 times the errors of solo programmers as the study claims, then solo programmers would have been expected to deliver 2000 coding errors and 1000 design errors in the same 10000 line task.

One coding error per five lines of code, and one design error per ten lines of code seems highly improbable to me, unless each pair consisted of one programmer doing 80% of the work and one rhesus monkey who without supervision would have just bashed keys randomly. Today of course, people would probably assume the output produced by the monkey was a valid Perl program, but as Perl had not been invented when the experiment was conducted I guess they spotted them as errors.

I remain unconvinced, and cannot think of pair programming without thinking of the PairOn chair … with apologies to Cenqua who I stole the image from and HermanMiller who they stole the dot com bubble icon the Aeron from.

PairOn - Calling all slackers

Wednesday, March 1st, 2006 is an interesting venture*. They are aimed specifically at the 21-34 year old, male, office worker who hates his job and spends more time surfing the web than working demographic. Did you know that was a demographic? Now I will admit it is not quite like one of those job ads you sometimes read that say “To be considered, the applicant should have between 4.3 and 4.32 years C++ experience, like french fry sandwiches and be named Bob,” but it still seems fairly specific to me.

Of course, in time honoured Web 2.0 style, viral marketing is a big part of the plan. Their hordes of office slackers are, as we speak, supposed to be emailing each other to say “Have you seen the Girls in Bras video? It is hilarious.”

There are a few small problems with the plan though, the video is not hilarious, and the people behind it seem to have only passing familiarity with some standard internet practices. For example, the comment field in their blog looks like this whenever I look at it:


Did you used to think the internet operated 24 hours a day? So did I. I am not even sure what time zone that 9-6 is in, but apparently there is only one.

Some of their stuff is quite good. I liked Half day man, and they have money and a marketing budget behind them so being initially a bit thin on content will presumably be easy to solve, but it is hard to run a major website when you don’t seem to understand the genre conventions and when parts of your technology suck. I hate the Flash video player they are using. It does not cache content, so if your connection struggles you can’t pause and wait for the download to catch up. You just have to watch it stutter.

I also keep seeing [an error occurred while processing this directive]. What is that? A server side include error message, or an early version of ASP error message? How very Web 1.0.

* and I am not only saying that because I own lots of their stock on Alexadex, or because they have a really cool logo

Update: was shut down on September 1 after failing to find an audience. Personally, I only noticed six months later because I had a broken link.