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 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 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 kontinuierlich gewechselt. So wird sichergestellt, dass jedes Teammitglied alle Teile des Projektes kennenlernt.

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)

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
Management Schulungen bei 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

Was sind Flight Levels?

Agile Arbeit

Das Flight Levels Modell unterscheidet zwischen 3 Flight Levels bzw. Ebenen der Arbeit in Organisationen. Der Artikel beschreibt wie sich diese drei Ebenen unterscheiden.

Agile Verträge

Agile Arbeit

Bei agilen IT-Softwareprojekten stellen sich besondere Herausforderungen bezüglich der Vertragsgestaltung. Wir geben einen Überblick über Ihre Möglichkeiten für die agile Software-Vertragsgestaltung.

Führungskräfte und Manager in der agilen Welt

Agile Organisation

Wenn Unternehmen entscheiden, auf agile Ansätze zu setzen, ändert sich nicht nur die Arbeitsweise der Teammitglieder. Auch die Arbeit der Führungskräfte ändert sich. Das wirft die Frage auf, ob…

it-agile Newsletter

Sichern Sie sich monatlich Neuigkeiten, Inspiration und Tipps zu agiler Arbeit, Konferenzen, aktuelle Termine und vieles mehr.

Zur Anmeldung