Pair-Programming

Vorteile der Programmiermethodik in der Softwareentwicklung

Autor: Ibrahim Dursun, engenious GmbH

Pair-Programming ist eine Vorgehensweise, die vorwiegend im Umfeld agiler Softwareentwicklungsprozesse eine Rolle spielt und sich in den letzten Jahren einer zunehmenden Beliebtheit erfreut. Zum Teil werden bei ihrem Einsatz enorme Leistungssteigerungen in der Entwicklung beobachtet. Mit dem Durchbruch des „Extreme Programming (agiler Softwareprozess)“ hat Pair-Programming bereits seit Mitte der Neunzigerjahre stark an Bedeutung gewonnen. [1]

Was ist Pair-Programming?

Kurz zusammengefasst bedeutet Pair-Programming, dass zwei Programmierer sich zusammentun und sich auf dieselbe Problematik fokussieren. Pair-Programming ist eine praxisorientierte Technik. Hierbei arbeiten zwei Programmierer nebeneinander an einem Computer. Das Paar arbeitet ständig zusammen auf demselben Design, Algorithmus, Code und Testumgebung. Dabei kann das Vorgehen mit einer Metapher dargestellt werden. Einer der beiden Programmierer fungiert als “Fahrer“, der andere als “Navigator“. Der “Fahrer“ kontrolliert die Tastatur und konzentriert sich auf die unmittelbare Aufgabe des Programmierens. Der “Navigator“ fungiert als Prüfer, der strategischere architektonische Probleme beobachtet und darüber nachdenkt. In einer Umfrage zur Paarprogrammierung gaben ungefähr 90% der befragten an, dass die Hauptaufgabe der nicht programmierenden Person darin bestand, fortlaufende Analysen, Design- und Code-Reviews durchzuführen. Die Abwechslung der Rollen innerhalb des Teams spielt eine wichtige Rolle. Selbst wenn ein Programmierer wesentlich mehr Erfahrung in der Softwareentwicklung hat als sein Partner, sollten die Rollen innerhalb des Teams getauscht werden. Diese Technik wurde entworfen, um die Produktivität und die Qualität von Softwareprodukten zu verbessern. Eine Umfrage hat gezeigt, dass Programmierer die Pair-Programming angewandt haben, in Ihren gemeinsam erarbeiteten Lösungen zuversichtlicher waren, als in die Lösungen, die sie selbst alleine erarbeitet haben. [2]

Drei wesentliche Vorteile von Pair-Programming

  • Qualitativerer Code:

    Pair-Programming bietet den Vorteil, dass ein Partner anwesend ist, der dem Partner beim Aufräumen hilft, im Sinne von sauberem Code (Clean Code). Viele haben berichtet, dass offensichtliche aber unentdeckte Mängel von der beobachtenden Person entdeckt wurden und diese direkt behoben werden konnten. In etablierten Software-Engineering-Techniken wird häufig die Bedeutung der Fehlervermeidung und der effizienten Fehlerbeseitigung betont. Es ist zu davon auszugehen, dass diese Technik einen guten Ansatz für effiziente Fehlerbeseitigung darstellt. [2]

  • Weniger Ablenkung:

    Weiterer Vorteil von Pair-Programming ist die Tatsache, dass gemeinsam arbeitende Personen weniger Zeit damit verschwenden E-Mails zu lesen, im Internet zu surfen oder aus dem Fenster zu starren, da der Partner auf ständigen Beitrag und Input wartet. Zwei Personen, die zusammenarbeiten, behandeln Ihre gemeinsame Zeit als wertvoller. Auch hier zeigt eine Umfrage, dass die Effizienz höher ist, da das Tempo ständig vom Partner beeinflusst wird. Keine der Personen möchte nachlassen. Da jeder sich auf seinen Partner fokussiert und sich auf die Aufgabe konzentriert, werden enorme Produktivitätssteigerungen und Qualitätsverbesserungen erzielt. [2]

  • Bessere Architektur und Design:

    Bessere Architektur und Designentwurf sind weitere Vorteile, die das Pair-Programming mit sich bringt. Beide werden von Anfang an unter gemeinsamer Kontrolle entworfen. Durch zwei unterschiedliche Meinungen der Programmierer können Entwürfe verbessert, verworfen oder durch bessere ersetzt werden. Es entsteht ein breiter gefächter Blick auf das Ergebnis. Je mehr Faktoren in Betracht und abgewogen werden, desto feiner der Architektur- und Designentwurf. [3]

Fazit
Empirische Studien zeigen, dass Anwender von Pair-Programming in den Genuss zahlreicher Vorteile kommen. Unter folgenden Rahmenbedingungen kann Pair-Programming besonders effektiv eingesetzt werden:

  1. Pair-Programming sollte eingesetzt werden, wenn häufig komplexe Projekte umgesetzt werden.
  2. Wenn die Auswahl an erfahrenen Entwicklern hoch ist, denn idealerweise sollten Entwickler zusammengebracht werden, die sich im Projektumfeld und auch im Pair-Programming auskennen.
  3. Wenn Entwickler an die Wirksamkeit von Pair-Programming glauben, denn die Verwendung einer Programmiermethode, die der Entwickler als effektiv ansieht, könnte auch zu einer höheren Produktivität und Arbeitszufriedenheit führen.
  4. Wenn Entwickler offen für Neues sind, denn diese sind es meist gewohnt selbstständig zu arbeiten. Der Einsatz der Programmiermethodik Pair-Programming bringt hingegen eine Neuerung mit sich, nämlich eine kollaborative Programmierung im Team.

Zum Autor: Ibrahim Dursun [M. Sc.] ist Fullstack-Entwickler und Berater engenious. Bereits während seines Studiums hat er sich mit unterschiedlichen Methodiken zur effektiven Organisation von Arbeitsabläufen beschäftigt. Heute wendet er diese erfolgreich in seinen Projekten an und beobachtet dabei leidenschaftlich die Vor- aber auch Nachteile unterschiedlicher Herangehensweisen.

Quellennachweis:
[1] Lutz Prechelt, Stephan Salinger und von Tilman Walther,
„Pair Programming Ausarbeitung im Rahmen des Seminars Agile Softwareprozesse“,
URL: http://www.tilman.de/uni/PairProgramming.pdf
[2] Laurie A Williams und Robert R Kessler,
„All about pair programming (What is)“,
URL: https://dl.acm.org/doi/pdf/10.1145/332833.332848
[3] Andrew Begel und Nachiappan Nagappan,
„Pair Programming: What’s in it for Me?“,
URL: https://www.microsoft.com/en-us/research/wp-content/uploads/2016/02/esem-begel-2008.pdf

Bildnachweis:
Bild 1: URL: https://www.pexels.com/de-de/foto/mann-menschen-laptop-manner-4974920/