Several academic and industry studies have documented substantial improvements in code design and defect rate when programs are written by pairs of programmers (two people working shoulder-to-shoulder at a single computer) versus individual programmers working independently (solo). Collateral benefits are reported to include improved morale and project knowledge shared efficiently across the development team in a manner that improves productivity in subsequent development cycle.
In our initiative to better understand and manage pair-programming phenomena, this study examines professional pair-programming practices in detail to understand when, how, and when pair programming is most effective. The presentation shares preliminary findings from Phase-1 of the project, a six month ethnographic observation of professional programmers working in pairs using eXtreme Programming software development methodology. Based on fieldwork, we present six hypotheses about the social and cognitive mechanisms that appear to drive pair programming success. We also present the design of a controlled lab experiment under development to test the hypotheses. We are particularly eager to discuss the findings and refine forthcoming experiments.
Pair Programming Re-Design will be presented from the design-thinking-research perspective of the new Hasso Plattner Institute of Design at Stanford (the d.school). An introduction to the d.school is included.