Pair Programming
--
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.
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
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.
- Schütt, Gemeinsame Wissensproduktion in der Paarprogrammierung. FU Berlin, 2014. ↩
- 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.