Pair Programming Group
This is the homepage of the Pair Programming research group at the
Free University Berlin. We are part of the
Software Engineering Group in the
CS department.
For more information, please get in touch with
Linus Ververs or
Lutz Prechelt.
Goals and Approach
- Our goal as software engineering researchers is to understand pair programming in such a way that we can advise practitioners how to use it most efficiently.
- We propose that the only way to obtain such understanding is to understand the mechanisms at work in the actual pair programming process.
- This understanding must first be gained in qualitative form before we can start quantifying.
- We perform such investigation based on Grounded Theory Methodology (GTM), working from rich sets of data (full-length audio, programmer video, and screen video of pair programming sessions).
Some Results in a Nutshell
- Pair programming (PP) does not just ‘work’ because two software developers sit next to each other. Rather, developers can be more or less skilled at pair programming. We characterize two elements of that skill that are independent of software development skills: Maintaining Togetherness and keeping an eye on Expediency. There are possibly more elements to be found.
See Two Elements of Pair Programming Skill.
- Maintaining Togetherness between the partners leads to productive Focus Phases, while low Togetherness leads to Breakdowns in which the partners make no progress.
See Qualitative Analysis of Knowledge Transfer in Pair Programming. Chapter 6: Process Fluency and Pair Togetherness.
- The expert/novice discrimination used in much existing PP research is not useful. One must consider task-specific knowledge and discriminate S and G knowledge:
- S-Knowledge: System-specific knowledge includes requirements, overall architecture, detailed design structure, test/build infrastructure, defects, idiosyncrasies, implementation gaps, etc.)
- G-Knowledge: Generic software development knowledge (programming language details, design patterns, development tools, and technology stacks, etc.)
- The overall knowledge transfer dynamics of all PP sessions follows a single pattern: Synchronize S knowledge, acquire needed S knowledge together, possibly transfer G knowledge. There is plenty of evidence that differences in S knowledge differences are more important than those in G knowledge: S needs are addressed first, more knowledge transfer is concerned with S knowledge, resolving S need is more often mandatory, and S knowledge transfer is the type that pairs are more skilled with. General programming experience (e.g. Junior / Senior) differences are overrated.
See Explaining Pair Programming Session Dynamics from Knowledge Gaps and Qualitative Analysis of Knowledge Transfer in Pair Programming. Chapter 11: Session Dynamics.
- There are more roles in pair programming than the two roles typically defined in the literature. Participants fulfill more different, conceptually separate functions than only the commonly described and hopelessly overloaded driver and observer (or navigator) roles.
See Liberating Pair Programming Research from the Oppressive Driver/Observer Regime.
Publications
- Franz Zieris, Lutz Prechelt
Two Elements of Pair Programming Skill. Proc. of the 43rd International Conference on Software Engineering (ICSE, NIER Track), May 2021. (NIER homepage)
- Franz Zieris
Qualitative Analysis of Knowledge Transfer in Pair Programming. PhD Dissertation, Freie Universität Berlin, Fachbereich Mathematik und Informatik, 463 pages, 2020-12-09.
- Franz Zieris, Lutz Prechelt
Explaining Pair Programming Session Dynamics from Knowledge Gaps, Proc. of the 42nd International Conference on Software Engineering (ICSE, Technical Papers), Seoul, Republic of Korea, May 2020. (ICSE homepage)
- Franz Zieris, Lutz Prechelt
PP-ind: Description of a Repository of Industrial Pair Programming Research Data CoRR, arXiv:2002.03121 [cs.SE], February 2020
- Franz Zieris, Lutz Prechelt
Does Pair Programming Pay Off?. In: Rethinking Productivity in Software Engineering, pp. 251-259, Caitlin Sadowski, Thomas Zimmermann (ed.), Apress 2019.
- Franz Zieris, Lutz Prechelt
Observations on Knowledge Transfer of Professional Software Developers during Pair Programming, Proc. of the 38th International Conference on Software Engineering Companion (ICSE, SEIP Track), Austin, Texas, May 2016. (at ACM, ICSE homepage)
- Franz Zieris, Lutz Prechelt
On Knowledge Transfer Skill in Pair Programming, Proceedings of the 8th ACM/IEEE International Symposium on Empirical Software Engineering and Measurement (ESEM), Torino, Italy, September 2014. (at ACM, ESEM homepage)
- Julia Schenk, Lutz Prechelt, Stephan Salinger
Distributed-Pair Programming Can Work Well and Is Not Just Distributed Pair-Programming, Companion Proceedings of the 36th International Conference on Software Engineering (ICSE, SEIP Track), Hyderabad, India, June 2014. (ICSE homepage)
-
Stephan Salinger, Lutz Prechelt
Understanding Pair Programming: The Base Layer. ISBN 978-3-7322-8193-0, BoD.de, 224 pages, December 2013.
-
Stephan Salinger
Ein Rahmenwerk für die qualitative Analyse der Paarprogrammierung. PhD Dissertation, Freie Universität Berlin, Fachbereich Mathematik und Informatik, 534 pages, 2013-06-25.
-
Stephan Salinger, Franz Zieris, Lutz Prechelt
Liberating Pair Programming Research from the Oppressive Driver/Observer Regime. Proc. of the 35th International Conference on Software Engineering (ICSE, NIER Track), San Francisco, May 2013. (NIER homepage)
-
Edna Rosen, Stephan Salinger, Christopher Oezbek
Project Kick-off with Distributed Pair Programming. Proceedings of the 22nd Annual Workshop of Psychology of Programming Interest Group (PPIG '10), Madrid, September 2010. (ppig.org)
-
Stephan Salinger, Christopher Oezbek, Karl Beecher, Julia Schenk
Saros: an Eclipse plug-in for distributed party programming.Proceedings of the 2010 International Conference on Software Engineering Workshop on Cooperative and Human Aspects of Software Engineering (CHASE '10), Cape Town, South Africa, May 2010, 48-55.
-
Stephan Salinger, Christopher Oezbek
Saros - Distributed Party Programming. In: eclipse Magazin, 02.2010. 50-52.
-
Lutz Prechelt, Ulrich Stärk, Stephan Salinger
Types of Cooperation Episodes in Side-by-Side Programming. Proceedings of the 21st Annual Meeting of the Psychology of Programming Interest Group (PPIG '09), Limerick, Ireland, June 24-26, 2009, 148-161. (ppig.org)
- Lutz Prechelt, Ulrich Stärk, Stephan Salinger
7 Types of Cooperation Episodes in Side-by-Side Programming. Technical Report TR-B-08-17, 12 pages, Freie Universität Berlin, Institut für Informatik, Germany, December 2008.
- Stephan Salinger, Lutz Prechelt
What happens during Pair Programming? Proceedings of the 20th Annual Workshop of Psychology of Programming Interest Group (PPIG '08), Lancaster, September 10-12, 2008. (ppig.org)
- Stephan Salinger, Laura Plonka, Lutz Prechelt
A Coding Scheme Development Methodology Using Grounded Theory for Qualitative Analysis of Pair Programming. Human Technology: An Interdisciplinary Journal on Humans in ICT Environments 4(1):9-25, May 2008.
- Stephan Salinger, Laura Plonka, Lutz Prechelt.
A Coding Scheme Development Methodology Using Grounded Theory for Qualitative Analysis of Pair Programming. Proceedings of the 19th Annual Workshop of Psychology of Programming Interest Group (PPIG '07), Joensuu, July 02-06, 2007.
- Riad Djemili, Christopher Oezbek, Stephan Salinger
Saros: Eine Eclipse-Erweiterung zur verteilten Paarprogrammierung. In: Software Engineering 2007 - Beiträge zu den Workshops, Gesellschaft für Informatik, 2007. Beiträge zu den Workshops, Gesellschaft für Informatik, Hamburg, Germany, March 27, 2007.
Available Thesis Topics
See
ThesesHome for available thesis topics.
Contact us directly for further ones or to talk about your own ideas.
Teaching
SWTIDSR