There has been some recent interest in my pair programming work and I have come to realise that some of it isn’t all that accessible. Here are details of the first couple of papers on Pair Programming and Expertise.
Two early papers of mine (under my maiden name of Bryant) sought to answer two questions: Is there a good indicator of how much pairing a programmer would need to do to be considered ‘experienced’? What noticeable differences in behaviour are there between novice and expert pairers?
The first paper, published by the Psychology of Programming Interest Group in 2005, uses a ‘Practice, Strategy, Knowledge and Meta-cognition’ model of expertise to look at length of tenure pairing against both own and peer ratings. It finds that, consistent with literature elsewhere on rating expertise, experts consistently under-rate themselves and novices consistently over-rate: http://www.ppig.org/papers/17th-bryant.pdf is the full paper.
The second, presented at the Visual Languages and Human-Centric Computing (VL/HCC) conference in 2004, finds some interesting differences between pairers of differing experience (experience pairing rather than experience programming):
- More experienced pairers talked much less (an average of 27% less than novices). I like this finding as it explains some of the subtle trade off between self-explanation (which shows talking helps with logic-step problems) and verbal overshadowing (where talking inhibits novel ideas in insight type problems).
- Expert pairs were shown to have consistent types of discussions irrelevant of who was driving. Whereas novices not only changed their behaviour when they changed role, but their behaviours did not resemble those of their pairing partner in either role.
- More experienced pairs made more lists. I like this finding too, as it affirms some of what we know about the psychology of programming. Experienced programmers navigate problems in a largely hierarchical way but with occasional opportunistic leaps. Expertise literature also suggested higher meta-cognition in experts. This finding is pleasing because it suggests not only that these ‘leaps’ in understanding are taking place, but that the experienced programmer jots them down so that they do not always disturb the hierarchical nature in which they are navigating the problem.
- Finally, I was (and remain) amazed by the fluidity with which pair composition changed in the pairs I studied. By this I mean that the wider group would overhear the pair discussing something and open a conversation, the result of which was quite often a swapping out of one of the pair.
http://www.computer.org/csdl/proceedings/vlhcc/2004/8696/00/86960055-abs.html is the official link to the full paper.