Podcast
Videos
September 6, 2022
Nov 2022
7 Min

Pair Programming: Vorteile und Strategien

Blasse Haut, Kapuzenpulli, schweigsam, Einzelgänger: Stereotype über Software-Entwickler sind so unvorteilhaft wie realitätsfern. In Wirklichkeit handelt es sich meistens um humorvolle Menschen, die intensiv mit Kunden und Kollegen kooperieren, um das bestmögliche Produkt abzuliefern. Beweise? Ein Tag bei uns im Büro.

Dazu passt dann auch, dass besonders anspruchsvoller Code idealerweise im Pair Programming entsteht. Das bedeutet, dass zwei Entwickler eine - meist schwierige - Progammieraufgabe gemeinsam lösen.

Wie funktioniert's?

Im Grunde genommen ganz einfach. Wie der Name Pair Programming schon sagt, braucht man zwei Kollegen, eine Tastatur und ein Problem. Der wichtigste Aspekt hierbei ist, dass ihr wirklich nur eine Tastatur benutzt und somit auch nur einen Rechner. Beide Entwickler sollen auf den gleichen Bildschirm schauen und sich auf die gleiche Sache voll konzentrieren.

Eine typische Herangehensweise an das Pair Programming ist das Driver-Navigator-Pattern. Ihr könnt es euch vorstellen wie einen Roadtrip. Einer fährt und der andere schaut, dass der Fahrer auf der Strecke bleibt und richtig abbiegt. Der Navigator behält also den Überblick und gibt Anweisungen wenn nötig.

Auf die Softwareentwicklung übertragen ist der Driver die Person, die an der Tastatur sitzt und programmiert. Der Navigator ist die Person, die neben dran sitzt, jede Zeile mitliest und darüber nachdenkt.

Wie bei einem Roadtrip sollte vor Beginn geplant werden, was gemacht wird, sodass beide Akteure sich darüber im Klaren sind, was als nächstes passiert. Beim Pair Programming sollten diese Absprachen immer wieder erfolgen. Wichtig ist, dass der Driver alles, was er programmiert mit dem Navigator bespricht, so dass dieser immer weiß, wohin die Reise eigentlich geht.

Nach einer gewissen Zeit solltet ihr dann mal eine Pause einlegen, eventuell einen Kaffee trinken, kurz den Kopf frei räumen und die Rollen tauschen. Pair Programming kann sehr erschöpfend sein, da es von beiden Entwicklern durchgehend volle Aufmerksamkeit erfordert. Wann ihr Pausen einlegt, hängt ganz von euch selbst ab. Vielleicht nach einem Teilproblem, nach einer vorab festgelegten Zeit oder wenn der Driver einfach mal nicht mehr tippen will.

Also wirklich ganz einfach! Hier nochmal die Kurzfassung:

Ihr arbeitet zu zweit an einer Tastatur, an einem Problem. Einer von euch programmiert und der andere denkt mit. Tauscht eure Ideen durchgehend untereinander aus, denkt an Pausen und wechselt regelmäßig die Rollen!

Wann lohnt sich Pair Programming?

Grundsätzlich dürft ihr Pair Programming jederzeit nutzen, wenn ihr der Meinung seid, dass es für euer Problem angebracht ist und es euch hilft, Probleme schneller und besser zu lösen.

  • Ein Beispiel wäre das Aufsetzen eines neues Projektes. In dieser Phase wird schon viel über den Aufbau eures Systems bestimmt. Hier lohnt es sich sehr, Pair Programming einzusetzen. So könnt ihr möglichst viele Probleme, die sonst während der eigentlichen Entwicklung aufkommen würden, vorab identifizieren und so gut wie möglich berücksichtigen.
  • Eine weitere Problemstellung wäre das Schreiben von weitreichenden Tests. Hier kann es in eigenständiger Arbeit schnell dazu kommen, dass man einen bestimmten Fall einfach nicht berücksichtigt hat. Zu zweit verringert ihr dieses Risiko.

Nicht empfehlenswert ist Pair Programming, wenn ihr genau wisst was ihr zu tun habt und die Aufgabe mehr auf Muscle-Memory basiert, als auf kreativer Lösungsfindung.

Was sind die Herausforderungen?

  • Das Wichtigste zuerst: Tauscht eure Gedanken aus! Dadurch lassen sich mögliche Lösungen oft schon vor der Umsetzung optimieren. Sowohl wer aus dem Pair Programming eine One-Man-Show machen möchte, als auch wer zögert, eigene Gedanken mit einzubringen oder Fragen zu stellen, beeinträchtigt den Erfolg.
  • Versucht einen Partner zu finden mit dem ihr euch versteht. Dies ist ein nicht-triviales Problem. Im Optimalfall solltet ihr keine "Best-Buddies" sein, euch aber auch nicht ablehnend gegenüberstehen. In ersterem Fall könnte die Kommunikation zu leicht ins Private abdriften. In letzterem Fall würde die Kommunikation darunter leiden.
  • Entscheidend ist auch ein Partner mit ungefähr gleichem Wissenstand. Es sollte nicht in eine Coaching-Session ausarten.
  • Als Driver solltet ihr den Navigator im Auge behalten. Von Autofahren kennt man es ja das der Beifahrer gerne einschläft oder abschweift, auch wenn er die Strecke im Blick behalten soll.
    Am Anfang kann es schwer sein, auf einen gemeinsamen Nenner zu kommen und den Partner immer direkt zu verstehen. Nach ein paar Sessions solltet ihr euch aber eingespielt haben. Das merkt man meist daran, dass eure Gedankengänge sich angleichen.

Was sind die wesentlichen Vorteile?

Gerade aus Managementsicht kommt gerne die Anmerkung: "Zwei Entwickler an einem Feature? Das kostet ja doppelt soviel Zeit und Geld!" Aber: Nein, das tut es nicht; zumindest nicht auf lange Sicht. Im Schnitt steigen die Entwicklungskosten gerade mal um 15%. Dafür nimmt die Code-Qualität merklich zu, was unterm Strich wiederum einen deutlichen Zeitgewinn bedeutet: Durch das Zusammenarbeiten sind beide wesentlich fokussierter und lassen sich seltener ablenken - sei es durch das eigene Handy oder durch eigene Gedanken. Man will dem anderen ja auch zeigen, dass man was kann. Oft entstehen so auch Ideen, die man alleine nicht gehabt hätte. Gleichzeitig wird der Code on-the-fly bewertet, korrigiert und verbessert. Dadurch erspart ihr euch schonmal den Merge-Request, das etwaige Anpassen des Codes und somit auch das erneute Reviewen. Hinzu kommt eine erhöhte Codequalität, mit weniger Fehlern und sinkenden Wartungskosten.

Positiv wirkt sich auch der Erfahrungsaustausch im Team aus: Beide Entwickler lernen durch das Pair Programming vom jeweils anderem und können im Nachhinein ähnliche Probleme schnell alleine lösen. Und falls mal ein Entwickler aus einem Projekt ausscheidet – sei es durch Krankheit oder Arbeitsplatzwechsel – bleibt das Wissen über die Code-Base dennoch erhalten.

Und zu guter Letzt: Es macht Spaß, nicht immer nur alleine vor dem Bildschirm zu sitzen. In der Folge steigt die Zufriedenheit und die Kommunikation im Team verbessert sich maßgeblich. Pair Programming ist somit Wissensaustausch, Mitarbeiterschulung und Teambuilding in einem!

Wie ihr seht, bietet Pair Programming Vorteile für alle: Für die Firma, das Produkt und vor allem für euch, die Entwickler!

Hier noch 2 Links, unter denen ihr alles nochmal selbst ausführlicher nachlesen könnt:

Andreas Link
Andreas Link
Anh Dung Pham
Anh Dung Pham
Cihat Gündüz
Cihat Gündüz
Andreas Link
Ekrem Sentürk
Eva Maria Stock
Eva-Marie Stock
Andreas Link
Giulia Maier
Inken Marei Kolthoff
Inken Marei Kolthoff
Janina Baumann
Janina Baumann
Janina Bokeloh
Janina Bokeloh
Jeanette Schmidt
Jeanette Schmidt
Jens Krug
Jens Krug
Kajorn Pathomkeerati
Kajorn Pathomkeerati
Karl Barth
Karl Barth
Kay Dollt
Kay Dollt
Murat Yilmaz
Murat Yilmaz
Thorsten Hack
Thorsten Hack
Thorsten Hack
Thorsten Hack
Inken Marei Kolthoff
Cynthia Murat
Inhaltsverzeichnis

Weitere Artikel

Scrum - So funktionieren komplexe Projekte!
Inken Marei Kolthoff
26.11.2022
4 Min

Scrum - So funktionieren komplexe Projekte!

Wie hast du dir dein Leben vorgestellt als du klein warst? Und jetzt? Alles anders?

Artikel lesen
Ein Praktikum bei Jamit Labs
Inken Marei Kolthoff
30.10.2024
3 Min

Ein Praktikum bei Jamit Labs

Kurz vor den diesjährigen Sommerferien bewarb ich mich bei Jamit Labs um einen Praktikumsplatz als iOS-App-Entwickler.

Artikel lesen
Lottie-Android - Steigerung der User Experience mit kleinem Aufwand
Inken Marei Kolthoff
26.11.2022
8 Min

Lottie-Android - Steigerung der User Experience mit kleinem Aufwand

Wie man mit dem Framework Lottie geniale Animationen mit nur wenigen Zeilen Code in iOS einfügt, kann man bereits in unserem Artikel von letzter Woche nachlesen.

Artikel lesen

Jetzt kostenloses Strategiegespräch sichern!

Die Beratungen sind grundsätzlich schnell ausgebucht, deshalb fülle jetzt in 2 Minuten das kurze Formular aus.

Jetzt Strategiegespräch sichern