Was ist Pair Programming?

Pair Programming

Pair Programming oder Programmieren in Paaren ist eine zentrale Technik aus dem Extreme Programming (XP). Beim Pair Programming sitzen zwei Entwickler gleichberechtigt an einem Rechner und arbeiten gemeinsam an einer Aufgabe. Die zwei Entwickler:innen nehmen unterschiedliche Rollen ein, welche oft mit „Pilot“ und „Navigator“ bezeichnet werden.

Der „Pilot“ schreibt den Code, während der „Navigator“ die Korrektheit des Codes und des Lösungsansatzes überwacht und parallel über Verbesserungen am Design nachdenkt. Weil beide Entwickler:innen gleichberechtigt sind, gibt es keine feste Aufgabenteilung. Deshalb wechselt der „Pilot“ alle paar Minuten zum „Navigator“ und der „Navigator“ wird zum „Piloten“. 

Auch zwischen den Paaren werden die Partner:innen kontinuierlich gewechselt. So wird sichergestellt, dass jedes Teammitglied alle Teile des Projektes kennenlernt.

Hier ist unser Kollege Andreas zu sehen.

Autor

Andreas Havenstein

Mehr zum Autor

Das Wichtigste in Kürze

Der schnelle Überblick

Pair Programming - Das Wichtigste in Kürze

Pair Programming ist eine Kernpraktik des Extreme Programming (XP) und eine agile Technik, bei der zwei Entwickler:innen gemeinsam an einem Computer arbeiten. Diese Methode zielt darauf ab, die Qualität des Codes zu erhöhen, die Wissensverteilung im Team zu fördern und die Zusammenarbeit zu verbessern. Die Rollen im Pair Programming sind „Pilot“ und „Navigator“: Sie werden regelmäßig gewechselt, um sicherzustellen, dass beide Teammitglieder gleichermaßen zum Code beitragen und voneinander lernen.   

Pair Programming erfordert ein hohes Maß an Kommunikation und gegenseitigem Respekt. Zu Beginn kann es als zeitintensiv wahrgenommen werden, doch die langfristigen Vorteile in Bezug auf Qualität und Wissensverteilung überwiegen oft.  

Pair Programming wird häufig bei der Lösung komplexer Probleme oder beim Erlernen neuer Technologien eingesetzt. Wir empfehlen diese Methode als festen Bestandteil agiler Entwicklungspraktiken, um Teamdynamik und Produktqualität nachhaltig zu verbessern.

Welche Vorteile bietet Pair Programming?

  • Qualität der Software wird verbessert
  • Fehler werden früh erkannt
  • Mehr Spaß an der Arbeit
  • Wissen verbreitet sich im gesamten Team
  • Kommunikation im Team verbessert sich

Untersuchungen (siehe unten) zeigen, dass der Einsatz von Pair Programming die Qualität des Codes deutlich steigert. Dies liegt unter anderem am ständigen Code Review und dem sofortigen Feedback des „Navigators“. Gleichzeitig erhöhen sich die Entwicklungskosten nur minimal. Da Fehler umso teurer sind, je später sie entdeckt werden, können die Folgekosten erheblich minimiert werden. Außerdem zeigt sich, dass Entwickler durch Pair Programming mehr Spaß an der Arbeit haben. Sie lassen sich weniger von privaten Interessen ablenken und haben mehr Vertrauen in den fertigen Code. Der Wechsel zwischen den Paaren bewirkt außerdem, dass sich das Projektwissen im gesamten Team gleichmäßig verteilt und es weniger „Spezialisten“ gibt. Dadurch wird der sogenannte Truck-Faktor minimiert: Dieser gibt die Wahrscheinlichkeit an, mit der ein Projekt scheitert, wenn einer der Entwickler von einem Truck überfahren wird. Beim Pair Programming geben die erfahrenen Entwickler ihre Kenntnisse an die weniger erfahrenen weiter. Auch die Kommunikation im Team wird durch das kontinuierliche Wechseln der Paarungen stark verbessert.

Kann man auch ohne Pair Programming agil sein?

Selbstverständlich kann man auch ohne Pair Programming agil vorgehen. Man muss dann allerdings bedenken, dass die oben beschriebenen Vorteile mit anderen Mitteln erreicht werden müssen. Dann sind z.B. konsequent Code Reviews zur Qualitätssicherung durchzuführen und mehr Dokumentationen zu erstellen, weil sonst Wissensinseln entstehen.

Tipps fürs Pair Programming

Austausch

  • Formuliert eure Ideen in geeigneter Form, so dass eure Pair-Partner euch folgen können.
  • Fragt nach, wenn ihr etwas nicht verstehst.

Umfeld

  • Nutzt einen Raum in dem ihr andere nicht stört, wenn ihr euch im Paar austauscht: Großraumbüros sind dafür wenig geeignet, Büros mit bis zu 6 Entwicklern sind OK.
  • Haltet euren Arbeitsplatz sauber.
  • Schließt ablenkende Programme wie Yammer, Twitter etc..
  • Habt Whiteboard oder Flipchart in der Nähe und Notizblock am Tisch, um Ideen austauschen zu können.
  • Macht regelmäßige Pausen: effektives Pairen ist anstrengend.

Werkzeuge

  • Nutzt 2 Tastaturen und 2 Mäuse. Dadurch ermöglicht ihr euch einen fließenderen Übergang und habt einen geringeren mentalen Aufwand durch Kontextwechsel.
  • Nutzt 2 Monitore mit gleichem Bild. Dadurch stellt ihr sicher, dass ihr beide gut sehen könnt.
  • Sollte nur ein Monitor vorhanden sein, verwendet eine geeignete Schriftgröße.

Vorgehen

  • Erstellt euch jeder eine Liste von Dingen, die ihr später alleine machen wollt, denn nicht alle Aufgaben sind es wert im Pair erledigt zu werden.
  • Haltet euch an Timeboxing, z.B. mit einem Time Timer oder einer Eieruhr. Legt eine Zeit fest, nach der ihr eine Pause macht: einen Task noch fertig zu machen ist natürlich OK, wenn beide dafür sind.

Persönliche Einstellung

  • Seid kompromissbereit.
  • Seid kritikfähig.
  • Nehmt euch selbst nicht zu ernst.
  • Habt keine falsche Scheu, denn: "Du bist nicht so gut wie du hoffst, aber auch nicht so schlecht wie du befürchtest." (Ron Jeffries)

Interesse geweckt?

Unsere Angebote für Software Crafting

Software Crafting Techniken sind ergänzend zu gutem Software-Engineering nötig, um in einem agilen Team entwickeln zu können. Es geht darum, in kurzen Zyklen Wert zu schaffen und diesen möglichst schnell produktiv zu stellen, um Feedback von Endkunden einzuholen. Werden Sie ein exzellenter SW Craftman mit unseren Trainings:

Darüber hinaus bieten wir Unterstützung durch testerfahrenen agilen Entwickler:innen (mehr) und helfen Ihren eigenen Entwickler:innen dabei, Tests Gewinn bringender einzusetzen (mehr).

Kontakt aufnehmen   Alle Schulungen für Software Crafting

Hier ist unser Kollege Andreas zu sehen.

Über den Autor

Andreas Havenstein

Andreas Havenstein ist Trainer, Architekt und Softwareentwickler bei der it-agile GmbH in Hamburg. Seit vielen Jahren begeistert er sich für agile Methoden, testgetriebene Entwicklung und modulare, flexible Architekturen. Er hat eine Cloud-Migration begleitet und beobachtet gespannt, wie sich die Welt in Richtung Serverless bewegt.

Veröffentlichungen (u. a.):

 

E-Mail:LinkedIn:

Mehr von Andreas Havenstein

Literatur

  1. Williams, Laurie: The Collaborative Software Processs, University of Utah, 2000.
  2. Nosek, John T.: The Case for Collaborative Programming, In: Communications of the ACM Vol. 41, Nr. 3, S. 105 - 108, 1998.
Unser it-agile Lagerraum

Möchten Sie mehr erfahren?

Tauschen Sie sich mit unseren Expert:innen aus und lassen sich zu Schulungen, Coaching oder Wissensthemen beraten.

 

+ 49 40 4135 848-0    info@it-agile.de    Online Termin buchen

Agile Coaching von it-agile

Kennen Sie eigentlich schon it-agile?

Die Expert:innen zu agiler Arbeit und agilen Methoden

Kund:innen wollen begeistert werden. Mit innovativen Produkten, durch Schnelligkeit, Transparenz und auch Verlässlichkeit. Unsere erfahrenen Agile Coaches sorgen gemeinsam mit Ihren Teams und Führungskräften dafür, auch in komplexer Umgebung Ihre Ziele nicht aus dem Auge zu verlieren und implementieren die richtigen agilen Methoden für nachhaltige Veränderung.

  • Wir integrieren Pragmatismus mit Idealismus
  • Wir befähigen Sie nachhaltig ohne Abhängigkeit von uns
  • Wir erzeugen Kundenfokus mit wirkungsvoller Agilität
agile review Magazin

agile review

Unser Kundenmagazin 

In unserem Magazin stellen wir Artikel rund um agiles Arbeiten für Sie zusammen. Das Spektrum reicht von methodischen Themen wie Scrum und Kanban über Agile Leadership bis hin zu technischen Aspekten wie agilem Testen und flexiblen Architekturen.

  • Als Abo oder Einzelausgabe erhältlich
  • Digital oder Print
  • Einzelne Artikel sofort digital verfügbar

Wissens- und Lesenswertes

Das könnte Sie zu Agiler Arbeit auch interessieren

Warum Selbstorganisation eine andere Führung braucht

Agile Leadership

Mutual Learning: Führen durch gemeinsames Verstehen - Der Schlüssel liegt nicht im „Loslassen“ – sondern darin, Entscheidungen gemeinsam besser zu machen.

Dringendes Paket

Agile Organisation

Erfolgreiche Unternehmen wachsen, manche wollen sogar weiterwachsen. Was müssen Unternehmen dabei beachten? Das möchten wir beispielhaft anhand eines Unternehmens beschreiben, das Katalog - und…

Agile Arbeit

Sven Günther und Wolf-Gideon Bleek sprechen über das typische Szenario, wenn in Firmen Blockaden dazu führen, dass Teams ihre Arbeit nicht fertig bekommen. Sven stellt dazu eine Lösung aus der Praxis…

it-agile Newsletter

Sichern Sie sich regelmäßige Neuigkeiten, Inspiration und Tipps zu agiler Arbeit, Konferenzen, aktuelle und neue Termine für unsere Schulungen sowie vieles mehr.


* Benötigte Angaben