ABSTRACT
Background: Despite a lot of research on the effectiveness of Pair Programming (PP), the question when it is useful or less useful remains unsettled.
Method: We analyze recordings of many industrial PP sessions with Grounded Theory Methodology and build on prior work that identified various phenomena related to within-session knowledge build-up and transfer. We validate our findings with practitioners.
Result: We identify two fundamentally different types of required knowledge and explain how different constellations of knowledge gaps in these two respects lead to different session dynamics. Gaps in project-specific systems knowledge are more hampering than gaps in general programming knowledge and are dealt with first and foremost in a PP session.
Conclusion: Partner constellations with complementary knowledge make PP a particularly effective practice. In PP sessions, differences in system understanding are more important than differences in general software development knowledge.
- 2019. ICPC '19: Proceedings of the 27th International Conference on Program Comprehension (Montreal, Quebec, Canada). IEEE Press.Google Scholar
- John R. Anderson. 1976. Language, Memory, and Thought. Psychology Press.Google Scholar
- Erik Arisholm, Hans Gallis, Tore Dybå, and Dag I.K. Sjøberg. 2007. Evaluating Pair Programming with Respect to System Complexity and Programmer Expertise. IEEE Transactions on Software Engineering 33, 2 (2007), 65--86. Google ScholarDigital Library
- Phillip G. Armour. 2000. The five orders of ignorance. Commun. ACM 43, 10 (2000), 17--20. Google ScholarDigital Library
- J. L. Austin. 1962. How To Do Things With Words. Clarendon Press.Google Scholar
- Kent Beck. 1999. Extreme Programming Explained: Embrace Change. Addison-Wesley Professional.Google ScholarDigital Library
- Andrew Begel and Nachiappan Nagappan. 2008. Pair Programming: What's in It for Me?. In Proc. 2nd Int'l. Symposium on Empirical Software Engineering and Measurement (Kaiserslautern, Germany) (ESEM '08). ACM, New York, NY, USA, 120--128. Google ScholarDigital Library
- Sallyann Bryant, Pablo Romero, and Benedict du Boulay. 2006. The Collaborative Nature of Pair Programming. In Extreme Programming and Agile Processes in Software Engineering, Pekka Abrahamsson, Michele Marchesi, and Giancarlo Succi (Eds.). Lecture Notes in Computer Science, Vol. 4044. Springer, 53--64. Google ScholarDigital Library
- Sallyann Bryant, Pablo Romero, and Benedict du Boulay. 2008. Pair Programming and the Mysterious Role of the Navigator. International Journal of Human-Computer Studies 66, 7 (2008), 519--529. Google ScholarDigital Library
- Kathy Charmaz. 2006. Constructing grounded theory: A practical guide through qualitative analysis. SAGE Publications.Google Scholar
- Jan Chong and Tom Hurlbutt. 2007. The Social Dynamics of Pair Programming. In Proc. 29th Int'l. Conf. on Software Engineering (ICSE '07). IEEE Computer Society, Washington, DC, USA, 354--363. Google ScholarDigital Library
- Madeline Ann Domino, Rosann Webb Collins, Alan R. Hevner, and Cynthia F. Cohen. 2003. Conflict in Collaborative Software Development. In Proc. 2003 SIGMIS Conf. on Computer Personnel Research. ACM, 44--51. Google ScholarDigital Library
- Thomas Fritz, Jingwen Ou, Gail C Murphy, and Emerson Murphy-Hill. 2010. A Degree-of-Knowledge Model to Capture Source Code Familiarity. In Proc. 32nd Int'l. Conf. on Software Engineering (Cape Town, South Africa) (ICSE '10). ACM, New York, NY, USA, 385--394. Google ScholarDigital Library
- Barney G. Glaser and Anselm L. Strauss. 1967. The Discovery of Grounded Theory: Strategies for Qualitative Research. AdlineTransaction.Google Scholar
- Jo E. Hannay, Erik Arisholm, Harald Engvik, and Dag I.K. Sjøberg. 2010. Effects of Personality on Pair Programming. IEEE Transactions on Software Engineering 36, 1 (2010), 61--80. Google ScholarDigital Library
- Jo E. Hannay, Tore Dybå, Erik Arisholm, and Dag I.K. Sjøberg. 2009. The effectiveness of pair programming: A meta-analysis. Information and Software Technology 51, 7 (2009), 1110--1122. Google ScholarDigital Library
- Hanna Hulkko and Pekka Abrahamsson. 2005. A multiple case study on the impact of pair programming on product quality. In Proc. of the 27th Int'l Conf. on Software Engineering (St. Louis, MO, USA). ACM, New York, NY, USA, 495--504. Google ScholarDigital Library
- Danielle L. Jones and Scott D. Fleming. 2013. What Use Is a Backseat Driver? A Qualitative Investigation of Pair Programming. In Proceedings of the 2013 IEEE Symposium on Visual Languages and Human Centric Computing. 103--110. Google ScholarCross Ref
- Matthias M. Müller and Frank Padberg. 2004. An Empirical Study about the Feelgood Factor in Pair Programming. In Proc. 10th IEEE Int'l. Software Metrics Symposium (METRICS). 151--158. Google ScholarCross Ref
- Laura Plonka, Helen Sharp, Janet van der Linden, and Yvonne Dittrich. 2015. Knowledge transfer in pair programming: An in-depth analysis. Int'l. J. of Human-Computer Studies 73 (2015), 66--78. Google ScholarCross Ref
- Stephan Salinger and Lutz Prechelt. 2013. Understanding Pair Programming: The Base Layer. BoD, Norderstedt, Germany.Google Scholar
- Stephan Salinger, Franz Zieris, and Lutz Prechelt. 2013. Liberating Pair Programming Research from the Oppressive Driver/Observer Regime. In Proc. 2013 Int'l. Conf. on Software Engineering (ICSE '13). IEEE Press, Piscataway, NJ, USA, 1201--1204. Google ScholarCross Ref
- Norsaremah Salleh, Emilia Mendes, and John Grundy. 2011. Empirical Studies of Pair Programming for CS/SE Teaching in Higher Education: A Systematic Literature Review. IEEE Transactions on Software Engineering 37, 4 (2011), 509--525. Google ScholarDigital Library
- Christian Schindler. 2008. Agile Software Development Methods and Practices in Austrian IT-Industry: Results of an Empirical Study. In Proc. Int'l. Conf. on Computational Intelligence for Modelling, Control and Automation (CIMCA), Intelligent Agents, Web Technologies and Internet Commerce (IAWTIC), Innovation in Software Engineering (ISE). 321--326. Google ScholarDigital Library
- Todd Sedano, Paul Ralph, and Cécile Péraire. 2016. Sustainable Software Development through Overlapping Pair Rotation. In Proc. 10th ACM/IEEE Int'l. Symposium on Empirical Software Engineering and Measurement. ACM Press, 19:1--19:10. Google ScholarDigital Library
- Jonathan Sillito, Gail C. Murphy, and Kris De Volder. 2008. Asking and answering questions during a programming change task. IEEE Transactions on Software Engineering 34, 4 (2008), 434--451. Google ScholarDigital Library
- Susan Elliott Sim and Richard C. Holt. 1998. The Ramp-Up Problem in Software Projects: A Case Study of How Software Immigrants Naturalize. In Proc. 20th Int'l. Conf. on Software Engineering (Kyoto, Japan) (ICSE '98). IEEE Computer Society, Washington, DC, USA, 361--370. Google ScholarCross Ref
- Klaas-Jan Stol, Paul Ralph, and Brian Fitzgerald. 2016. Grounded theory in software engineering research. In Proc. 38th Int'l. Conf. on Software Engineering (ICSE). ACM Press, 120--131. Google ScholarDigital Library
- Anselm L. Strauss and Juliet M. Corbin. 1990. Basics of Qualitative Research: Grounded Theory Procedures and Techniques. SAGE Publications, Inc.Google Scholar
- Jari Vanhanen and Harri Korpi. 2007. Experiences of Using Pair Programming in an Agile Project. In HICSS '07: Proceedings of the 40th Annual Hawaii International Conference on System Sciences. IEEE Computer Society, Washington, DC, USA, 274b. Google ScholarDigital Library
- Thorbjørn Walle and Jo E. Hannay. 2009. Personality and the Nature of Collaboration in Pair Programming. In Proc. 3rd Int'l. Symposium on Empirical Software Engineering and Measurement. IEEE Computer Society, 203--213. Google ScholarDigital Library
- Minghui Zhou and Audris Mockus. 2010. Developer Fluency: Achieving True Mastery in Software Projects. In Proc. 18th ACM SIGSOFT Int'l. Symposium on Foundations of Software Engineering (Santa Fe, New Mexico, USA) (FSE '10). ACM, New York, NY, USA, 137--146. Google ScholarDigital Library
- Franz Zieris and Lutz Prechelt. 2014. On Knowledge Transfer Skill in Pair Programming. In Proc. 8th ACM/IEEE Int'l. Symposium on Empirical Software Engineering and Measurement (ESEM '14). ACM, New York, NY, USA, 11:1--11:10. Google ScholarDigital Library
- Franz Zieris and Lutz Prechelt. 2016. Observations on Knowledge Transfer of Professional Software Developers During Pair Programming. In Proc. 38th Int'l. Conf. on Software Engineering Companion (Austin, Texas) (ICSE '16). ACM, New York, NY, USA, 242--250. Google ScholarDigital Library
- Franz Zieris and Lutz Prechelt. 2020. PP-ind: A Repository of Industrial Pair Programming Session Recordings. Technical Report. arXiv.Google Scholar
Recommendations
Pair Programming: Addressing Key Process Areas of the People-CMM
Proceedings of the Second XP Universe and First Agile Universe Conference on Extreme Programming and Agile Methods - XP/Agile Universe 2002It has been long recognized that the quality of the people employed by a software organization is a major determinant of the quality of its products. Acknowledging the pivotal role played by people in software development, the Software Engineering ...
Facilitating Knowledge Creation by Knowledge Assets
HICSS '04: Proceedings of the Proceedings of the 37th Annual Hawaii International Conference on System Sciences (HICSS'04) - Track 8 - Volume 8A comprehensive and feasible model that delineates the interrelationships between knowledge assets and knowledge creation processes is absent. This study aims to fill this void. Unlike previous research, this study investigates the interrelations among ...
Comments