Pair Programming: 4-Augen-Prinzip in der Software-Entwicklung

Die Entwicklung von neuer Software ist ein aufwändiges Unterfangen. Abhängig vom Umfang des Programms müssen sehr viele Eventualitäten, Funktionen und Problemstellen berücksichtigt werden. Da können selbst geübte Software-Entwickler die Orientierung verlieren. Damit die Programmierung möglichst effizient verläuft, gleichzeitig aber fehlerfreier Code entsteht, hat man in den letzten Jahren und Jahrzehnten moderne Arbeitsmethoden entwickelt: Scrum und Kanban dienen beispielsweise dem Zweck, das komplette System zu verbessern.

Etwas weniger groß angelegt ist Pair Programming: Entwickler arbeiten dabei immer zu zweit am Code. Wie kann das funktionieren und was sind die Vorteile dieser Arbeitsweise?

Was ist Pair Programming?

Die Methode der Paarprogrammierung wird vor allem bei agiler Software-Entwicklung genutzt und konkret beim Extreme Programming (XP) gefordert. Beim Pair Programming arbeiten immer zwei Menschen gleichzeitig am Code, sitzen also im besten Fall direkt nebeneinander. Einer schreibt den Code, der andere überprüft diesen in Echtzeit. Gleichzeitig tauschen sich beide stetig aus: diskutieren Probleme, finden Lösungswege, entwickeln kreative Ideen.

Normalerweise kommen den beiden Mitarbeitern zwei unterschiedliche Rollen zu: Der als Pilot bezeichnete Programmierer schreibt den Code. Der sogenannte Navigator überprüft diesen. Es gehört zu den Pair-Programming-Regeln, dass beide regelmäßig (und zwar in kurzen Abschnitten) die Rollen tauschen. Das verhindert ein hierarchisches Gefälle: Beide sind gleichberechtigt und können daher auch problemlos in die Rolle des jeweils anderen schlüpfen.

Auch der Arbeitsplatz sollte dabei idealerweise an die Anforderungen des Pair Programmings angepasst sein. So haben beide Partner Maus, Tastatur und einen eigenen Monitor zur Verfügung, wobei die Bildschirme jeweils das gleiche anzeigen.

Etwas ungewöhnlicher ist hingegen das sogenannte Remote Pair Programming. Hierbei sitzen die Programmierpartner nicht nebeneinander, sondern an komplett unterschiedlichen Orten. Damit das funktionieren kann, bedarf es spezieller technischer Lösungen. Die Kollegen müssen in der Lage sein, trotz der Entfernung direkt miteinander zu kommunizieren, auf den Code zuzugreifen und Änderungen in Echtzeit zu sehen.

Pair Programming – Best Practices

In der Praxis arbeiten oftmals zwei Entwickler mit unterschiedlichem Erfahrungslevel zusammen: So kann ein Programmierer mit viel Arbeitserfahrung seinem jüngeren Kollegen direkt in der Praxis Know-how mitgeben. Der Junior-Mitarbeiter auf der anderen Weise hat vielleicht frische Ideen, die er in das Projekt einbringen kann.

Aber auch die Kombination von zwei Kollegen aus unterschiedlichen Bereichen kann fruchtbar sein: Arbeitet ein klassischer Programmierer mit einem Designer zusammen, können sich beide mit ihrer jeweiligen Expertise unterstützen.

Pair Programming ist vor allem bei größeren Projekten sinnvoll. Denn bei riesigen Mengen an Code, die zudem regelmäßig geändert werden, ist das Vier-Augen-Prinzip besonders wirksam. So kann man sichergehen, dass immer die bestmögliche Version eines Abschnitts in den Quelltext eingeht, wodurch weniger Nachbesserungen notwendig sind und die Fehlerzahl abnimmt. Das nachträgliche Überprüfen von sehr langen Quellcodes ist zeitaufwendig und mühsam, weswegen es vorteilhaft ist, ihn schon möglichst zu Beginn fehlerfrei anzulegen.

Es ist übrigens nicht notwendig, dass – auch innerhalb eines Projekts – immer die gleichen Kollegen zusammenarbeiten. Tatsächlich ist es sogar von Vorteil, wenn die Paarungen regelmäßig neu gemischt werden. So bekommt jedes Teammitglied einen guten Einblick in den kompletten Quelltext. Durch hängt der Erfolg des Projektes auch nicht so stark von Einzelpersonen ab. Fällt eine Person aus, ist nicht das ganze Projekt gefährdet, denn alle anderen können den Ausfall kompensieren.

Vor- und Nachteile der Paarprogrammierung

Arbeitet man zu zweit an einem Projekt – egal, ob es um Programmierung geht oder ein anderes Vorhaben – hat das grundsätzlich viele Vorteile. Vier Augen sehen meist mehr als zwei: Das Risiko von Fehlern wird durch Pair Programming minimiert. Während die eine Person schreibt, hat die andere den Code im Blick und konzentriert sich nur darauf, Fehler zu finden. Es ist oft schwer, seine eigenen Fehler zu entdecken. Ein Kollege entdeckt Unstimmigkeiten oft viel schneller.

Zudem ist aber auch die sich durch die Kommunikation entwickelnde Kreativität ein großer Vorteil: Durch den ständigen Austausch des Programmiergespanns kommen Ideen zustande, auf die man allein womöglich nicht gekommen wäre. Der kommunikative Austausch der beiden Partner sorgt auch dafür, dass man in kürzerer Zeit auf bessere Problemlösungen kommt. Denn während eine Einzelperson sich möglicherweise mit der erstbesten Option zufriedengibt, muss man seine Entscheidungen beim Pair Programming immer gegenüber dem Kollegen rechtfertigen. Dieser hat aber vielleicht eine andere Sicht auf das Problem und ist deshalb mit der vorgeschlagenen Lösung nicht zufrieden. Durch die sich daraus ergebende Diskussion kommen oft Ideen für deutlich besseren Code zustande.

Guter Code ist letztlich auch schlanker Code: Die Erfahrung hat gezeigt, dass Quelltext, der beim Pair Programming entsteht, oft kürzer und damit effizienter gestaltet ist. Das spart später Ressourcen bei der Wartung und Umarbeitung.

Wie erwähnt, kann man die Technik auch anwenden, damit erfahrene Mitarbeiter ihr Wissen an jüngere Kollegen weitergeben können. So profitiert man nicht nur von dem eigentlichen Vorteil des Pair Programmings – der Erzeugung von qualitativ hochwertigem Code –, sondern kann die Methode gleichzeitig auch für Ausbildungszwecke nutzen.

Das Ganze kostet allerdings sehr viel Zeit: Zwar arbeiten zwei Programmierer durchaus schneller zusammen als einer allein, aber eben nicht so schnell wie zwei Programmierer, die separat arbeiten. Das bedeutet, dass mit dieser Methode Projekte entweder langsamer voranschreiten oder man mehr Personal einstellen muss, was wiederum zu erhöhten Kosten führt. Die Verfechter von Pair Programming gehen allerdings davon aus, dass diese anfängliche Mehrarbeit sich im Nachhinein rechnet: Da der so entstandene Code weniger Fehler enthält und insgesamt besser strukturiert ist, fällt die Wartungsarbeit sehr viel geringer aus.

Ein weiterer möglicher Nachteil: Pair Programming eignet sich zwar für das Teambuilding, aber auch nur dann, wenn die beiden Kollegen gut miteinander arbeiten können. Die beiden Mitarbeiter müssen so eng miteinander agieren, dass persönliche Probleme untereinander entweder zum langsameren Vorankommen führen oder in einer kompletten Eskalation münden. Deshalb sollte man Mitarbeiter bei dieser Methode nicht wahllos zusammenwürfeln. Zwar ist es ideal, wenn jeder mal mit jedem anderen Kollegen zusammengearbeitet hat, doch das funktioniert nur dann, wenn das ganze Team gut harmoniert.

Fazit

Pair Programming kann die Entwicklung von Software erleichtern. Damit diese Methode allerdings Vorteile bringt, benötigt man Ressourcen und den Willen, konstruktiv zusammenzuarbeiten.