Finally some pair programming research

Posted on August 31st, 2008 in Agile by siddharta || 2 Comments

A few days ago, I came across a paper titled Pair Programming: What’s in it for me (PDF link). Andrew Begel and Nachiappan Nagappan at Microsoft Research conducted a survey of reactions to pair programming within Microsoft and are due to publish the results at the 2nd International Symposium on Emperical Software Engineering and Measurement in October.

I found the paper interesting for two reasons. One, its pretty hard to find any data on many agile practices. Second, many studies on agile practices are classroom and student oriented, which may not easily translate into a corporate environment with experienced developers. This study surveys programmers who have used an agile process on real projects in Microsoft, which makes me take the data more seriously. Also, its not a study of a single project but across a number of projects.

So, what exactly does the paper say?

A couple of things jumped out at me. About two-thirds of the respondents said that “Pair programming is working well for me,” but that dropped to 40% who said “Pair programming is working well for my larger group”. Quoting the paper

This reflects the grassroots nature of pair programming adoption at Microsoft.  Individual  teams are trying  out  pair  programming,  but  are  finding  it  difficult  to  get management buy-in to spread the practice.

Convincing management has generally been a common problem with pair programming, but if more than 60% say that its working well, then I wonder why management won’t listen to them. This is further reinforced when >60% of respondents said that there are fewer bugs because of pair programming and 25% remaining neutral on that question, so only about 10-15% are negative on that. Rework due to bugs is a large cost in software development, so this would seem to be a big win.

The single biggest problem in adopting pair programming seems to be cost efficiency.  In fact 79 out of 106 respondents citied that as a major problem. From a management perspective, you need to balance out the cost of paying two people with the fact that you are avoiding a whole lot of bugs in the first place – which could translate into big cost savings, improved maintainability and a whole lot of other benefits in the long run.

However, the most interesting thing for me was something that wasn’t really highlighted in the paper at all. In fact, it is right at the start

Among  our  overall  sample  of  487  respondents,  106  respondents have pair programmed  in  the past or are currently using pair programming. This is the sample population we use  for  the analysis  in  this paper. 17 of  these 106 respondents are using pair programming  in  their current development project.

106 respondents have pair programmed, but only 17 are using pair programming in their current development project. So 89 respondents have used pair programming in the past, but are not using it for their current project. This makes me ask: Why? Did they move to a new project whose managers did not approve of it? Did they stop using it themselves? Only about 20% (around 23 people) answered negatively to the question “Pair programming is working well for me.” So why isn’t everyone else using it in their current project? I think the answer to this question will be interesting.

[Update] : Artem has links to more pair programming research here

[Update 2] : Andrew (one of the authors) answered the question that I posed at the end. The reason why most people stop using pair programming is because they move into a new project where it is not used, and its a lot of difficulty to get everyone to use it.

Doing Distributed Agile?

Share and collaborate with distributed teams with our electronic agile board tools. Get all the benefits of electronic tools without sacrificing the benefits of physical boards. Supports Scrum taskboards, Kanban boards and user story maps. Check it out!

2 Responses to “Finally some pair programming research”

  1. Artem Marchenko Says:

    You might find it interesting to have a look at http://agilesoftwaredevelopment.com/blog/artem/pair-programming-what-researches-say

    There is a quick summary of what researchers say in general about the costs and benefits of pair programming. Not too serious, but not lame also.

  2. siddharta Says:

    Thanks for the link! Interesting stuff.

Leave a Reply