By the way, did anyone study any real programmers?
Papers presented at the first workshop on empirical studies of programmers on Empirical studies of programmers
Comprehension strategies in programming
Empirical studies of programmers: second workshop
Information relationships in PROLOG programs: how do programmers comprehend functionality?
International Journal of Man-Machine Studies
The case for collaborative programming
Communications of the ACM
Graph of triangulations of a convex polygon and tree of triangulations
Computational Geometry: Theory and Applications
Mental imagery in program design and visual programming
International Journal of Human-Computer Studies - Best of empirical studies of programmers 7
Pair Programming Illuminated
Strengthening the Case for Pair Programming
IEEE Software
The Effects of "Pair-Pressure" and "Pair-Learning" on Software Engineering Education
CSEET '00 Proceedings of the 13th Conference on Software Engineering Education & Training
Program comprehension and authentic measurement: a scheme for analysing descriptions of programs
International Journal of Human-Computer Studies - Special issue: Empirical studies of software engineering
Double Trouble: Mixing Qualitative and Quantitative Methods in the Study of eXtreme Programmers
VLHCC '04 Proceedings of the 2004 IEEE Symposium on Visual Languages - Human Centric Computing
Extreme Programming Explained: Embrace Change (2nd Edition)
Extreme Programming Explained: Embrace Change (2nd Edition)
Pair Collaboration in End-User Debugging
VLHCC '06 Proceedings of the Visual Languages and Human-Centric Computing
Cognitive activities and levels of abstraction in procedural and object-oriented design
Human-Computer Interaction
Pair programming and the re-appropriation of individual tools for collaborative software development
Proceedings of the 2006 conference on Cooperative Systems Design: Seamless Integration of Artifacts and Conversations -- Enhanced Concepts of Infrastructure for Communication
Bridging cognitive and social chasms in software development using extreme programming
XP'03 Proceedings of the 4th international conference on Extreme programming and agile processes in software engineering
The collaborative nature of pair programming
XP'06 Proceedings of the 7th international conference on Extreme Programming and Agile Processes in Software Engineering
Video analysis of pair programming
Proceedings of the 2008 international workshop on Scrutinizing agile practices or shoot-out at the agile corral
Editorial: Collaborative and social aspects of software development
International Journal of Human-Computer Studies
Test-driven roles for pair programming
Proceedings of the 2010 ICSE Workshop on Cooperative and Human Aspects of Software Engineering
Saros: an eclipse plug-in for distributed party programming
Proceedings of the 2010 ICSE Workshop on Cooperative and Human Aspects of Software Engineering
CodeGraffiti: communication by sketching for pair programmers
UIST '10 Adjunct proceedings of the 23nd annual ACM symposium on User interface software and technology
Exploratory comparison of expert and novice pair programmers
CEE-SET'08 Proceedings of the Third IFIP TC 2 Central and East European conference on Software engineering techniques
Role-based interfaces for collaborative software development
Proceedings of the 24th annual ACM symposium adjunct on User interface software and technology
Disengagement in pair programming: does it matter?
Proceedings of the 34th International Conference on Software Engineering
Liberating pair programming research from the oppressive Driver/Observer regime
Proceedings of the 2013 International Conference on Software Engineering
Social effects of pair programming mitigate impact of bounded rationality
Proceedings of the 45th ACM technical symposium on Computer science education
Hi-index | 0.00 |
Computer programming is generally understood to be highly challenging and since its inception a wide range of approaches, tools and methodologies have been developed to assist in managing its complexity. Relatively recently the potential benefits of collaborative software development have been formalised in the practice of pair programming. Here we attempt to 'unpick' the pair programming process through the analysis of verbalisations from a number of commercial studies. We focus particularly on the roles of the two programmers and what their key characteristics and behaviours might be. In particular, we dispute two existing claims: (i) that the programmer who is not currently typing in code (''the navigator'') is constantly reviewing what is typed and highlighting any errors (i.e. acting as a reviewer) and (ii) that the navigator focuses on a different level of abstraction as a way of ensuring coverage at all necessary levels (i.e. acting as a foreman). We provide an alternative model for these roles (''the tag team'') in which the driver and navigator play much more equal roles. We also suggest that a key factor in the success of pair programming may be the associated increase in talk at an intermediate level of abstraction.