Programmieren in Paaren

Startseite - Einführung in XP


In XP wird sämtlich Codierarbeit von Bedeutung durch ein Programmiererpaar gemacht. Ein solches Paar hat lediglich einen Computer für das Programmieren zur Verfügung, d.h. nur einen Bildschirm, eine Tastatur und eine Maus. Die Person, die im Moment die Tastatur bedient, wird auch als "Fahrer" bezeichnet, die andere Person auch als "Navigator".

Am bested geegnet ist ein rechteckiger Tisch (siehe Bild), an dem zwei Personen bequem nebeneinander sitzen können.

Das Programmieren läuft nach einem einfachen Schema ab:

  1. Komponententest schreiben.
  2. Test laufen lassen; schlägt fehl.
  3. Implementieren.
  4. Test laufen lassen. Schlägt er fehl, zurück zu 3. Ist der Test erfolgreich, zurück 1. jedoch mit einem neuen Komponententest.

Die Komponententests werden am besten mit einer Software aus der xUnit-Reihe implementiert, wie z.B. JUnit.

Vorteile

Da jeweils nur einer - nämlich der Fahrer - an der Tastatur arbeiten kann, nimmt der Navigator automatisch eine breitere Perspektive an. Während der Fahrer tippt, kann der Navigator mitlesen, und viele der typischen Codierfehler sofort erkennen, wie z.B. Tippfehler, falsche Variablennamen, aber auch Verletzungen der Programmierrichtlinien. Dies ist insbesondere dann hilfreich, when eine Programmiersprache wie C++ verwendet wird, die Übersetzungsläufe benötigt. Die Anzahl der Compile-Link-Läufe kann dadurch erheblich reduziert werden.

Der Navigator hat des weiteren die Aufgabe, das große Bild "System" im Kopf zu behalten. Die aktuelle Tätigkeit kann dann damit abgeglichen werden. Konkret bedeutet dies, daß der Navigator beispielsweise zusätzliche Komponententests notiert, die eventuell weitere Szenarien abdecken.

Während der Implementierung einer Klasse für den Zugriff auf eine Datenbanktabelle, stellt das Paar fest, daß Tests für die referentielle Integrität fehlen. Statt nun diesen Mißstand sofort zu beheben und damit vom der ursprünglichen Aufgabe abzuweichen, macht der Navigator nur eine kurze Notiz auf eine A6-Aufgabenkarte. Es ist nun sichergestellt, dass die fehlenden Komponententests hinzugefügt werden, und das Programmiererpaar kann sich sofort wieder auf die ursprüngliche Aufgabe konzentrieren.

Schließlich ergibt sich durch das paarweise Programmieren auch ein paarweises Lernen. Die Partner können voneinander lernen, aber natürlich auch gemeinsam experimentieren, z.B. eine Refaktorierung ausprobieren. Der Unerfahrene kann vom Erfahrenen lernen; die Wissensunterschiede im Team werden reduziert. Die Verwendung von paarweisem Programmieren unterstützt somit die Entwicklung des Teams zu einer lernenden Organisation.

Beispiel

In einem umfangreichen Projekt, an dem ich in einem früheren Leben mitgearbeitet habe, war ein Subsystem verantwortlich für Zugriff auf die Datenbank. Da es sich um ein neues Datenbanksystem handelte, gab es im Team keinen Programmierer, der hinreichende Spezialkenntnisse hatte. Statt einer Schulung wurde ein Consultant des Herstellers für einen längeren Zeitraum in des Team hereingenommen. Dieser Ingenieur arbeitete dann mit verschiedenen Ingenieuren gemeinsam an der Datenbankschnittstelle. Als Ergebnis ergaben sich zwei Vorteile: a) es gab mehrere Ingenieure, die sich mit der Datenbank auskannten und b) der Consultant lernte sehr viel über die Anwendung und war so in der Lage eine sehr viel bessere Beratungsleistung zu erbringen.

Tipps

  • Paarweises Programmieren dient immer auch dem Lernen
  • Mehrmals pro Tag neue Paare bilden. Am Anfang eventuell nach der Uhr, z.B. alle Stunde.
  • Innerhalb eines Paars immer wieder an der Tastatur abwechseln.
  • Immer einen Packen A6 Karten bereitlegen, um zusätzliche Komponententests oder Refaktorierungen zu notieren.

Vorteile
Beispiel
Tipps
Startseite
Suchen
Index
Links
Über diese Site
English version
© Copyright 2001-2002 Manfred Lange, Alle Rechte vorbehalten. Nutzungsbedingungen.
Letzte Änderung dieser Seite: Montag, 14. Januar 2002