Pair Programming – höhere Kosten machen sich bezahlt

Extreme Programming (XP) gehört zu den wichtigsten Ansätzen moderner Programmiertechniken, welche nach neuen Wegen suchen, Projekte schnell und möglichst fehlerfrei zu einem erfolgreichen Abschluss zu bringen. Unter den Techniken des Extreme Programming sticht die Paarprogrammierung (Pair Programming) besonders hervor.

Bei diesem Ansatz bearbeiten zwei Programmierer gleichberechtigt ein gemeinsames Projekt. Die beiden Partner agieren dabei wie Pilot und Navigator an Bord eines Flugzeugs: Ein Programmierer schreibt den eigentlichen Code, während sein Kollege permanent den Kurs kontrolliert und ein Auge darauf hat, dass alle Abläufe im Cockpit korrekt eingehalten werden. Nach dem Prinzip „vier Augen sehen mehr“ sollen mögliche Probleme so früher erkannt und dank der geballten Kompetenz zweier Programmierer im Team beseitigt werden.

Zwei gleichberechtigte Programmierer verursachen natürlich auch doppelt soviel Kosten wie ein einzelner Entwickler. Daher stellt sich dem Auftraggeber die berechtigte Frage: „Ist Pair Programming die höheren Kosten wert?“ Erste praktische Erfahrungen mit der Paarprogrammierung sowie Studien anerkannter Fakultäten, wie dem Karlsruher Institut für Technologie, sprechen dafür. Allerdings sind einige wichtige Eigenheiten dieser Methode zu beachten, auf die wir im Folgenden eingehen werden.

Zunächst gilt es, aus den zur Verfügung stehenden Programmierern die geeigneten Kandidaten für das gemeinsame Arbeiten auszuwählen. Zwischenmenschliche Spannungen können zu einer ernsthaften Behinderung des Workflows führen. Auch sollten die Partner, was ihre Fähigkeiten angeht, ungefähr auf Augenhöhe liegen. Besteht ein zu großes Leistungsgefälle zwischen den beiden Kandidaten, so ist das Pair Programming sehr gut dazu geeignet, Know how bei dem schächeren Programmierer aufzubauen.

Zeit einplanen

Außerdem sollte ein gewisser Zeitraum eingeplant werden, währenddessen sich die Programmierer aneinander gewöhnen und einen gemeinsamen Arbeitsstil finden. Auf lange Sicht geht die Arbeit in der Paarprogrammierung jedoch deutlich schneller vonstatten, als in der Einzelarbeit. Gleichzeitig erreichen Programmierpaare höhere Qualitätsstandards und schreiben einen effizienteren Code. Diese gesteigerte Leistungsfähigkeit ist auf die gegenseitige Kontrollfunktion der Entwickler zurückzuführen. Solisten neigen vor allem unter Zeitdruck dazu, Änderungen an ungünstigen Stellen des Codes vorzunehmen oder kleinere Fehler zu übersehen. Paarprogrammierer hingegen motivieren sich gegenseitig, einen sauberen Code hinzulegen und können untereinander jederzeit Hilfestellung leisten. Herrscht also ein großer Marktdruck mit einer entsprechend hohen Auftragslage, macht sich das Pair Programming mit eingespielten Teams definitiv bezahlt. Deren Geschwindigkeit – bei einer geringen Fehlerquote – relativiert die höheren Kosten. In schwachen Zeiten ohne großen Auftragsdruck macht die Einzelentwicklung womöglich finanziell mehr Sinn.

Qualitätssteigerung durch Pair Programming

Was jedoch die Qualität der geschriebenen Programme angeht, hat die Paarprogrammierung in jedem Fall die Nase vorn. Ihren Nutzen entfaltet sie besonders im Zusammenspiel mit modernen Philosophien wie der testgetriebenen Entwicklung. Dort werden Tests meist schon vor dem entsprechenden Systemteil geschrieben, um die Voraussetzungen zu schaffen, welche das fertige Programm erfüllen soll. Eine spätere Testphase nach Vollendung der Software fällt weitestgehend weg, da bereits während der Entwicklung permanent Korrekturen gemacht werden können. Dabei wird eine möglichst umfassende Automatisierung dieser Tests angestrebt. Diese sind dann quasi auf Knopfdruck innerhalb kürzester Zeit ausführbar. Ein eingespieltes Programmierer-Paar kann sich bei dieser Methode hervorragend ergänzen: Ein Partner schreibt den Code, während sein Kollege sich um das permanente Testen kümmert. Die testgetriebene Entwicklung setzt einen sauberen, effizienten Code voraus. Und im Pair Programming ist dies für gewöhnlich eher der Fall, als bei einzelnen Programmierern. Langfristig ist es also deutlich wirtschaftlicher, diese Art der Entwicklung von fähigen Teams erledigen zu lassen.

Vermittlung und Austausch von Wissen sind in der Programmierung unerlässlich. Durch die unmittelbare Zusammenarbeit zweier Programmierer wird der Wissensaustausch enorm beschleunigt. Zudem eignen sich die Partner gemeinsam entwickelte, bewährte Arbeitsweisen an und werden so auch als einzelner Programmierer gestärkt. Um diesen Effekt zu maximieren, empfiehlt es sich, mehrere Zweierteams zu bilden und deren Besetzung durch regelmäßige Rotation zu verändern. Auf diese Art profitieren auch in größeren Programmierabteilungen alle Mitarbeiter von der entstehenden Schwarmkompetenz. Die Gefahr, dass zwei Programmierer gemeinsam am Rechner sitzen und nur einer von ihnen tatsächlich arbeitet, wird ebenfalls reduziert. Denn wenn erst einmal mehrere Partnerrotationen stattgefunden haben, wird sich herauskristallisieren, welche Kollegen aufgrund ihrer Leistungsfähigkeit sowie ihres Wissensstandes am besten zusammenpassen.

Motivierte Mitarbeiter

Mehr Spaß an der Arbeit und gesteigerte Motivation sind weitere erfreuliche Nebeneffekte des Pair Programming. Teamgeist und Zusammenhalt werden gestärkt, weil jeder Entwickler weiß, dass seine Kollegen im Zweifel für ihn da sind. Und stets motivierte Mitarbeiter sind unbezahlbar, selbst wenn je zwei von ihnen sich ein Projekt teilen.

Abschließend bleibt zu sagen, dass das Pair Programming sich auch im wirtschaftlichen Sinne lohnt. Voraussetzung sind genug fähige Entwickler im Team, welche charakterlich miteinander auskommen und auf vergleichbarem Leistungsniveau liegen. Die hochwertigen und schnell produzierten Programme sorgen in Zeiten großer Nachfrage für hohe Profite. Dem sparsam denkenden Auftraggeber sagen wir: „Ja, Pair Programming ist die höheren Kosten wert.“

Blog Kosten von Pair Programming