Design patterns: elements of reusable object-oriented software
Design patterns: elements of reusable object-oriented software
The case for collaborative programming
Communications of the ACM
Extreme programming explained: embrace change
Extreme programming explained: embrace change
Case study: extreme programming in a university environment
ICSE '01 Proceedings of the 23rd International Conference on Software Engineering
Software Assessment: Reliability, Safety, Testability
Software Assessment: Reliability, Safety, Testability
Strengthening the Case for Pair Programming
IEEE Software
ICCI '02 Proceedings of the 1st IEEE International Conference on Cognitive Informatics
Exploring the Efficacy of Distributed Pair Programming
Proceedings of the Second XP Universe and First Agile Universe Conference on Extreme Programming and Agile Methods - XP/Agile Universe 2002
The impact of pair programming on student performance, perception and persistence
Proceedings of the 25th International Conference on Software Engineering
Selection and evaluation of computer personnel- the research history of SIG/CPR
ACM '68 Proceedings of the 1968 23rd ACM national conference
The collaborative software process(sm)
The collaborative software process(sm)
Extreme Programming Refactored: The Case Against XP
Extreme Programming Refactored: The Case Against XP
An Initial Framework for Research on Pair Programming
ISESE '03 Proceedings of the 2003 International Symposium on Empirical Software Engineering
Pair-programming effect on developers productivity
XP'03 Proceedings of the 4th international conference on Extreme programming and agile processes in software engineering
Pair programming vs. side-by-side programming
EuroSPI'05 Proceedings of the 12th European conference on Software Process Improvement
Empirical Studies of Programming Knowledge
IEEE Transactions on Software Engineering
An experimental investigation of personality types impact on pair effectiveness in pair programming
Empirical Software Engineering
ESEM '09 Proceedings of the 2009 3rd International Symposium on Empirical Software Engineering and Measurement
Alternative dispute resolution based on the storytelling technique
CRIWG'07 Proceedings of the 13th international conference on Groupware: design implementation, and use
Software process fusion: uniting pair programming and solo programming processes
SPW/ProSim'06 Proceedings of the 2006 international conference on Software Process Simulation and Modeling
Proceedings of the 34th International Conference on Software Engineering
DroidSense: a mobile tool to analyze software development processes by measuring team proximity
TOOLS'12 Proceedings of the 50th international conference on Objects, Models, Components, Patterns
A groupware system to support collaborative programming: Design and experiences
Journal of Systems and Software
Hi-index | 0.00 |
Agile Software Development methodologies have grown in popularity both among academic researchers and industrial practitioners. Among the various methodologies or practices proposed, pair programming, which is concerned with two programmers collaborating on design, coding and testing, has become a controversial focus of interest. Even though some success stories have been reported with the use of pair-programming in real software development environment, many people remain rather skeptical of the claims on pair-programming productivity. Previous studies in pair programming have only addressed the basic understanding of the productivity of pairs and they have not addressed the variation in productivity between pairs of varying skills and experience, such as between novice-novice and expert-expert. Statistical productivity measurements reported by different researchers also seem to lead to contradictory conclusions. Until now, the literature has not addressed how those results and experiments were related to each other. In this paper, we propose a controlled experiment called repeat-programming which can facilitate the understanding of relationships between human experience and programming productivity. Repeat-programming can be performed when controversial issues in non-traditional programming methodologies and development productivity need to be investigated into. To illustrate how the proposed empirical experiment can put arguable, divisive problems into perspective, we have examined the productivity in pair programming as a case study. With repeat-programming, we are able to (i) better understand why results of previous pair programming control experiments reached different conclusions as to the productivity of pair programming and (ii) most importantly, present a case in which novice-novice pairs against novice solos are much more productive than expert-expert pairs against expert solos.