Building Knowledge through Families of Experiments
IEEE Transactions on Software Engineering
The costs and benefits of pair programming
Extreme programming examined
Pair Programming Illuminated
The effects of pair-programming on performance in an introductory programming course
SIGCSE '02 Proceedings of the 33rd SIGCSE technical symposium on Computer science education
Improving the CS1 experience with pair programming
SIGCSE '03 Proceedings of the 34th SIGCSE technical symposium on Computer science education
Strengthening the Case for Pair Programming
IEEE Software
The impact of pair programming on student performance, perception and persistence
Proceedings of the 25th International Conference on Software Engineering
Guidelines for the Use of Pair Programming in a Freshman Programming Class
CSEET '02 Proceedings of the 15th Conference on Software Engineering Education and Training
Building Pair Programming Knowledge through a Family of Experiments
ISESE '03 Proceedings of the 2003 International Symposium on Empirical Software Engineering
On understanding compatibility of student pair programmers
Proceedings of the 35th SIGCSE technical symposium on Computer science education
A multiple case study on the impact of pair programming on product quality
Proceedings of the 27th international conference on Software engineering
Extreme Programming Explained: Embrace Change (2nd Edition)
Extreme Programming Explained: Embrace Change (2nd Edition)
Maintaining mental models: a study of developer work habits
Proceedings of the 28th international conference on Software engineering
The Social Dynamics of Pair Programming
ICSE '07 Proceedings of the 29th international conference on Software Engineering
Evaluating Pair Programming with Respect to System Complexity and Programmer Expertise
IEEE Transactions on Software Engineering
Usage and Perceptions of Agile Software Development in an Industrial Context: An Exploratory Study
ESEM '07 Proceedings of the First International Symposium on Empirical Software Engineering and Measurement
Guide to Advanced Empirical Software Engineering
Guide to Advanced Empirical Software Engineering
Journal of Computing Sciences in Colleges
ESEM '09 Proceedings of the 2009 3rd International Symposium on Empirical Software Engineering and Measurement
The effects of neuroticism on pair programming: an empirical study in the higher education context
Proceedings of the 2010 ACM-IEEE International Symposium on Empirical Software Engineering and Measurement
Empirical Software Engineering
Disengagement in pair programming: does it matter?
Proceedings of the 34th International Conference on Software Engineering
Proceedings of the 34th International Conference on Software Engineering
Collaborative learning and anxiety: a phenomenographic study of collaborative learning activities
Proceeding of the 44th ACM technical symposium on Computer science education
Evaluating industry-inspired pair programming communication guidelines with undergraduate students
Proceedings of the 45th ACM technical symposium on Computer science education
Evaluating the impact of an agile transformation: a longitudinal case study in a distributed context
Software Quality Control
Hi-index | 0.00 |
Pair programming is a practice in which two programmers work collaboratively at one computer on the same design, algorithm, or code. Prior research on pair programming has primarily focused on its evaluation in academic settings. There has been limited evidence on the use, problems and benefits, partner selection, and the general perceptions towards pair programming in industrial settings. In this paper we report on a longitudinal evaluation of pair programming at Microsoft Corporation. We find from the results of a survey sent to a randomly selected 10% of engineers at Microsoft that 22% pair program or have pair programmed in the past. Using qualitative analysis, we performed a large-scale card sort to group the various benefits and problems of pair programming. The biggest perceived benefits of pair programming were the introduction of fewer bugs, spreading code understanding, and producing overall higher quality code. The top problems were cost-efficiency, (work time) scheduling problems, and personality conflicts. Most engineers preferred a partner who had complementary skills to their own, who was flexible and had good communication skills.