Skip to content

Pair Programming

Das Pair Programming ist eine Technik der agilen Software-Entwicklung bei dem sich 2 Entwickler einen PC teilen um Software zu implementieren. Die Technik selbst ist hierbei in der Praxis durchaus umstritten - ebensoviele Entwickler/Organisationen lieben oder hassen sie, unabhängig vom eigenen Erfahrungsstand bei der Anwendung.

Das Ziel des Pair Programmings ist hierbei einfach erklärt, seine möglichen Vorteile hierbei sind aber relativ abstrakt und nicht klar zu erfassen. Die Idee des Pair Programming ist es, durch den kontinuierlichen Austauschen zwischen den 2 Entwicklern eine bessere Qualität des gesamten Ergebnisses zu erreichen, was sich natürlich vorrangig auf den Code jedoch auch auf andere Aspekte bezieht.

Praktische Durchführung des Pair Programmings

Im Pair Programming gibt es in der Regel 2 Rollen, welche regelmäßig durchgewechselt werden: Zuerst gibt es den Driver - dieser bedient Tastatur und Maus und ist de facto ein intelligentes Eingabesystem. Seine Aufgabe ist es sich um die Details des Codes zu kümmern, ihn korrekt zu strukturieren etc. Ihm zur Seite steht der Navigator - dieser hat die Aufgabe sich um das "Big Picture" der Implementation zu kümmern und gibt dem Driver Anweisungen, welche Dinge implementiert werden sollen.

Driver and Navigator

Mögliche Vorteile des Pair Programmings

Durch das ständige Zusammenarbeiten am gleichen Bildschirm und Code, kommt es ganz natürlich und automatisch zu einem ständigen Code Review. Die beiden Entwickler können hierbei ihre Ansätze schon während oder gar vor der Implementation besprechen und so sehr viel einfacher zu einem optimaleren Ergebnis gelangen. Durch die ständige Kommunikation ist zudem ein Wissensaustausch ein ganz natürliches Nebenprodukt des Pair Programmings, was vor allem in Konsellationen von Vorteil ist wo die beiden Entwickler unterschiedliche Wissens-Stände haben.

Kritik am Pair Programming

Die Kritik am Pair Programming betrifft vor allem diverse Aspekte der Skalierbarkeit. Die Kritiker des Pair Programmings unterstellen, dass es oft sehr ineffizient genutzte Zeit für mindestens einen der beiden Entwickler ist. Das Erreichen eines gemeinsamen Verständnisses zu einer Sachlage ist oft sehr zeitaufwändig und das ständige gemeinsame Abstimmen sehr stressig, was widerum zu Unzufriedenheit und mangelnder Motivation führen kann. Der Wissensaustausch zudem ist, im besten Fall, nur zwischen 2 Personen vorhanden und wird in der Regel nicht aufgezeichnet oder aufgeschrieben, wodurch keine andere Person hiervon profitiert.