skip to main content
10.1145/3377811.3380925acmconferencesArticle/Chapter ViewAbstractPublication PagesicseConference Proceedingsconference-collections
research-article

Explaining pair programming session dynamics from knowledge gaps

Published:01 October 2020Publication History

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.

References

  1. 2019. ICPC '19: Proceedings of the 27th International Conference on Program Comprehension (Montreal, Quebec, Canada). IEEE Press.Google ScholarGoogle Scholar
  2. John R. Anderson. 1976. Language, Memory, and Thought. Psychology Press.Google ScholarGoogle Scholar
  3. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  4. Phillip G. Armour. 2000. The five orders of ignorance. Commun. ACM 43, 10 (2000), 17--20. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. J. L. Austin. 1962. How To Do Things With Words. Clarendon Press.Google ScholarGoogle Scholar
  6. Kent Beck. 1999. Extreme Programming Explained: Embrace Change. Addison-Wesley Professional.Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  8. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  9. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  10. Kathy Charmaz. 2006. Constructing grounded theory: A practical guide through qualitative analysis. SAGE Publications.Google ScholarGoogle Scholar
  11. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  12. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  13. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  14. Barney G. Glaser and Anselm L. Strauss. 1967. The Discovery of Grounded Theory: Strategies for Qualitative Research. AdlineTransaction.Google ScholarGoogle Scholar
  15. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  16. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  17. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  18. 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 ScholarGoogle ScholarCross RefCross Ref
  19. 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 ScholarGoogle ScholarCross RefCross Ref
  20. 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 ScholarGoogle ScholarCross RefCross Ref
  21. Stephan Salinger and Lutz Prechelt. 2013. Understanding Pair Programming: The Base Layer. BoD, Norderstedt, Germany.Google ScholarGoogle Scholar
  22. 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 ScholarGoogle ScholarCross RefCross Ref
  23. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  24. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  25. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  26. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  27. 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 ScholarGoogle ScholarCross RefCross Ref
  28. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  29. Anselm L. Strauss and Juliet M. Corbin. 1990. Basics of Qualitative Research: Grounded Theory Procedures and Techniques. SAGE Publications, Inc.Google ScholarGoogle Scholar
  30. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  31. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  32. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  33. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  34. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  35. Franz Zieris and Lutz Prechelt. 2020. PP-ind: A Repository of Industrial Pair Programming Session Recordings. Technical Report. arXiv.Google ScholarGoogle Scholar

Recommendations

Comments

Login options

Check if you have access through your login credentials or your institution to get full access on this article.

Sign in
  • Published in

    cover image ACM Conferences
    ICSE '20: Proceedings of the ACM/IEEE 42nd International Conference on Software Engineering
    June 2020
    1640 pages
    ISBN:9781450371216
    DOI:10.1145/3377811

    Copyright © 2020 ACM

    Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than the author(s) must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected].

    Publisher

    Association for Computing Machinery

    New York, NY, United States

    Publication History

    • Published: 1 October 2020

    Permissions

    Request permissions about this article.

    Request Permissions

    Check for updates

    Qualifiers

    • research-article

    Acceptance Rates

    Overall Acceptance Rate276of1,856submissions,15%

    Upcoming Conference

    ICSE 2025

PDF Format

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader