Pair Programming

Pair-Programming ist eine simple Arbeitstechnik, bei der zumeist zwei Personen vor einem Rechner sitzen. Eine Person hat die Kontrolle über Tastatur und Maus. Beide arbeiten an der Lösung der gleichen Aufgabe. Eine Person tippt, was zwei denken. Weniger Fehler und besserer Code sind das Ergebnis.

»Never code alone.«
Ihr Code wird wahrscheinlich von mehr als einer weiteren Person gesehen. Damit kann man gleich bei der Entstehung beginnen und voneinander lernen.

Pair-Programming

Vier Augen sehen mehr als zwei. Genau darum geht es hier. Statt alleine vor dem Bildschirm zu sitzen, nimmt man zu zweit Platz und kontrolliert abwechselnd Maus und Tastatur. Paarweises Programmieren ist ein Dialog zwischen zwei Personen, die gleichzeitig programmieren, analysieren, entwerfen und testen. Sie helfen sich gegenseitig beim Verständnis der Aufgabe, besprechen Verbesserungen und Optimierungen, klären Ideen, und ergreifen die Initiative, wenn ihr Partner feststeckt, und verringern so Frustration.

In Studien wurde gezeigt, dass Paare bis zu 41 % schneller entwicklen, und signifikant weniger Fehler produzieren.1

Ein merge request tut es doch auch, könnte man meinen. Natürlich fehlt hier die zeitliche Kopplung. Ein merge request ist geschieht nachdem eine Person gedacht und gehandelt hat. Alle Fehler, ungenutzten Potenziale und Missverständnisse stecken bereits in dem Code. Beim pairen kommt es erst gar nicht dazu.

Zu meinem Job als Technischer Projektmanager gehörte es einmal, die Website von McDonald‘s mit neuen Flash-Inhalten zu versorgen. Das CMS sah dazu einen fehleranfälligen Prozess vor, bei dem Dateien in einer bestimmten Reihenfolge hochgeladen werden mussten. Nach einigen schief gelaufenen Launches saßen wir nur noch zu zweit vor dem Bildschirm. Siehe da, keine Fehler mehr.

We believe that pair programming is often avoided because it can create friction, but we would ask you to give it a chance. If you consciously treat it as an improvable skill, and work on getting better at it, you will end up with a more resilient team.2

Praktische Hinweise

Eine Frau gibt einer Fahrer*in Handzeichen zur Navigation durch unwegsames Gelände.
Nicht nur vor dem Bildschirm gibt es Paare, die gemeinsam Aufgaben bewältigen.

Reden

Pair-Programming funktioniert, weil beide Personen miteinander sprechen. Sowohl die Person, die gerade Code schreibt (manchmal driver genannt), als auch die beobachtende Person (observer oder navigator genannt) dürfen und sollen sprechen, kommentieren und sich gegenseitig Hinweise geben.

Respektvolles Verhalten

Unser Raumbedürfnis unterscheidet sich sehr. Schreibtische und Bildschirme sollten groß sein, je größer desto besser, die Kabel lang genug, um den gesamten Platz nutzen zu können.

Kommen zwei Menschen auf engen Raum zusammen, sollten sie Rücksicht walten lassen. Im Zweifel mehr Abstand halten, mehr Rücksicht nehmen. Mit der Zeit stellt man sich auf die Situation ein.

Paare dokumentieren

Beginnt ein Team mit Pair-Programming, kann es nützlich sein, die pairs zu dokumentieren. Ich mag den Generator von Paringmatrix.com. Die Dokumentation hilft, im Blick zu halten, wer mit wem woran gearbeitet hat. Ein Team kann sie auch benutzen, um regelmäßige Wechsel zu planen.

Regelmäßig wechseln

Teams sollten mit dem Rhythmus experimentieren, in dem sie ihre Paarungen durchtauschen. Arbeitstagweise, halbtags, oder häufiger. Es gibt hier kein Optimum, statt dessen viel Raum für Experimente.

Remote Pair-Programming

Auch remote läßt sich Pair-Programming anwenden. Voraussetzung ist eine Screen-Sharing-Lösung, bei der man die Kontrolle über den geteilten Rechner abgeben kann. Für Visual Studio Code zum Beispiel hat Microsoft die Erweiterung Live Share parat. Weitere Empfehlungen finden sich bei Sitepoint. Es gibt dedizierte Angebote wie CoScreen und USE Together. Im Zweifel VNC oder SSH.

Das wahrscheinlich erste Programming Pair

Jean Bartik war eine der ENIAC-Frauen, die von vielen als die ersten Programmiererinnen überhaupt angesehen werden. Sie übernahmen die Aufgabe des Programmierens, als das Wort »Programm« noch nicht einmal verwendet wurde und es keine Vorbilder oder Bücher gab, die ihnen sagten, wie sie dies tun sollten - und sie beschlossen, dass es eine gute Idee wäre, zu zweit zu arbeiten. Es dauerte etwa 50 weitere Jahre, bis Pair Programmierung zu einem weit verbreiteten Begriff wurde.2

Zitat: Betty Snyder and I, from the beginning, were a pair. And I believe that the best programs and designs are done by pairs.

  1. Schütt, Gemeinsame Wissensproduktion in der Paarprogrammierung. FU Berlin, 2014. 

  2. Böckeler, Siessegger, On Pair Programming


Ihr Sascha A. Carlin

Als Agile Coach verhelfe ich Führungskräften in der Softwareentwicklung zu mehr Wirksamkeit.

Kontaktaufnahme jederzeit via E-Mail oder Telefon +49 30 40782375.