Paarprogrammierung, auch Tandem-Programmierung, (englisch pair programming) ist eine Arbeitstechnik, die sich häufig bei agilen Vorgehensweisen zur Softwareentwicklung findet. Sie ist ein wichtiger Bestandteil von Extreme Programming (XP).
Beschreibung Bearbeiten
Bei der Erstellung des Quellcodes arbeiten jeweils zwei Programmierer gleichzeitig an einem Arbeitsplatz: Einer schreibt den Code, während der andere über die Problemstellungen nachdenkt, den geschriebenen Code kontrolliert sowie Probleme, die ihm dabei auffallen, sofort anspricht. Diese können dann sofort im Gespräch gelöst werden. Die beiden Programmierer sollten sich in den beiden Rollen abwechseln. Auch die Zusammensetzung der Paare sollte sich häufig ändern.
Eine Voraussetzung für Paarprogrammierung ist ein gemeinsam vereinbarter Programmierstil des gesamten Teams.
Ziele Bearbeiten
Zunächst soll Paarprogrammierung die Softwarequalität steigern. Durch die Kontrollfunktion der zweiten Person sollen problematische Lösungen vermieden werden. Die Paarprogrammierung dient aber auch zur Verbreitung von Wissen über den Quellcode. Durch das regelmäßige Rotieren der Partner kann immer der jeweils neue Partner durch Learning by Doing etwas über die bearbeiteten Quelltexte lernen.
Positive Effekte Bearbeiten
Nachteile Bearbeiten
Produktivität Bearbeiten
Paarprogrammierung führt zu einer geringeren Geschwindigkeit bei der Programmierung. Bei einer Studie benötigten die Paare 15 % mehr Zeit gegenüber der Geschwindigkeit einzelner Personen. Befürworter der Paarprogrammierung behaupten, dass die Produktivität durch diese Vorgehensweise nicht sinke, sondern im Gegenteil sogar deutlich steige. Grund dafür sei, dass die durch Paarprogrammierung gesteigerte technische und fachliche Qualität genau dort die Produktivität erhöhe, wo während der Softwareentwicklung am meisten Zeit verbracht wird: Beim Fehlerfinden und -beheben sowie beim Lesen von Code. Üblicherweise geht man davon aus, dass Fehler, die erst im Test gefunden werden, zehnmal so teuer in der Behebung sind, als wenn sie bereits während der Entwicklung gefunden werden.
Voraussetzung für hohe Produktivitätssteigerungen durch Paarprogrammierung ist allerdings, dass die fachliche Kompetenz der Partner nicht zu sehr voneinander abweicht.
Verteilte Paarprogrammierung Bearbeiten
Verteilte Paarprogrammierung (Distributed Pair Programming, DPP) ist die softwaregestützte Durchführung von Paarprogrammierung an getrennten Computern beispielsweise an unterschiedlichen Orten. Bekannte Werkzeuge für verteilte Paarprogrammierung sind Saros, XPairtise oder "Code With Me".
Literatur Bearbeiten
- Laurie Williams: The Collaborative Software Process. (PDF; 591 kB; englisch)
- Tilman Walther: Pair Programming. (PDF; 239 kB)
- Chih-wei Ho et al.: Sangam – A Distributed Pair Programming Plug-in for Eclipse csc.ncsu.edu (PDF; 200 kB)
Einzelnachweise Bearbeiten
- Kent Beck: Extreme Programming Explained. Embrace Change. 2. Auflage. Addison-Wesley Longman, Amsterdam 2004, ISBN 978-0-321-27865-4, Kap. 10, S. 58 (englisch, "There are two roles in each pair. One partner, the one with the keyboard and the mouse, is thinking about the best way to implement this method right here. The other partner is thinking more strategically: Is this whole approach going to work? What are some other test cases that might not work yet? Is there some way to simplify the whole system so the current problem just dissappears?").
- ↑ Alistair Cockburn, Laurie Williams: The Costs and Benefits of Pair Programming. In: University of Utah Computer Science (Hrsg.): Extreme programming examined. Addison-Wesley, 2001, ISBN 0-201-71040-4, S. 223 - 243 (ncsu.edu [PDF; abgerufen am 10. November 2013]).
- Tom DeMarco, Timothy Lister: Bärentango. (Original: Waltzing With Bears) Hanser Fachbuchverlag, Leipzig 2003, ISBN 3-446-22333-9
- tagesspiegel.de
- Saros – Distributed Collaborative Editing and Pair Programming. Arbeitsgruppe Software Engineering, FU Berlin (Website)
- XPairtise - A Distributed Pair Programming Plug-in For Eclipse. The XPairtise Team (Webseite)
- Code With Me: The Collaborative Programming Service by JetBrains. Abgerufen am 20. Oktober 2021 (englisch).