Menü
Ein Beitrag von Adacor

Pair Programming – Zu zweit zum Erfolg

Codebeispiel Pair ProgrammingPair Programming ist eine Arbeitstechnik, die helfen soll, die Programmierungs- bzw. Softwarequalität zu steigern.
Das Verfahren stützt sich maßgeblich auf das Prinzip „Vier Augen sehen mehr als zwei“. In meinem Text möchte ich über die Programmierpraxis des Pair Programming informieren und darüber hinaus die bei uns im Unternehmen gesammelten eigenen Erfahrungen teilen.

Was ist Pair Programming?

Unter Pair Programming oder Paarprogrammierung versteht man eine Methode der Programmierung, die zumeist bei der agilen Softwareentwicklung eingesetzt wird. Klassisch schreiben dabei zwei Programmierer den Quellcode während sie gemeinsam an einem Rechner sitzen. Daraus ergibt sich aus die Aufteilung in einen aktiven und einen passiven Part. Der aktive Part wird häufig mit einem Fahrer verglichen, da er das Steuer also die Tastatur bedient. Der Beifahrer hat den passiven Part und sitzt unterstützend daneben.

Weitere Formen des Pair Programming sind etwa Distributed Pair Programming (DPP) oder Remote Pair Programming (RPP). Beim DPP wird – unterstützt von Kollaborationswerkzeugen – gemeinsam an zwei Rechnern am gleichen Quellcode gearbeitet. Werden dabei größere Distanzen überbrückt, handelt es sich um RPP.

Pair Programming bei der ADACOR

Mit dem Pair Programming wird bei uns in der Entwicklungsabteilung erst seit Kurzem experimentiert. Versprochen haben wir uns davon vor allem eine Reduzierung der typischen Flüchtigkeitsfehler und eine bessere Wissensverteilung. Den Anfang hat die Entwicklung des Cloudbase-Projekts gemacht. Aufgrund der hohen Komplexität und dem Einsatz von neuen Technologien erschien eine Paarprogrammierung sinnvoll. Durch die positiven Effekte, die sich in diesem Projekt zeigten, wurde das Pair Programming überall dort übernommen, wo die Komplexität es verlangt oder Fehler besonders kritisch sind.

Erfahrungen aus der Anwendung des Pair Programmings

Pilot und Copilot beim Pairprogramming

Im Rahmen des Cloudbase-Projekts wird bei der ADACOR Hosting ein Reverse-Proxy von Grund auf neu entwickelt. Dabei wurde auf Technologien gesetzt, mit denen zu Beginn des Projekts keiner der Entwickler weitgehende Erfahrung hatte. Hinzu kommen eine komplexe, skalierbare Architektur und die zur Selbstorganisation nötigen Kommunikationswege. Gerade in den Anfängen des Projekts fanden wir Entwickler uns häufig in Arbeitssituationen wieder, die dem Pair Programming entsprechen. Oftmals waren typische Hilfestellungen oder Implementierungs-Absprachen der Auslöser, um zu zweit vor einem Rechner zu sitzen. Schnell zeigte sich, dass das Pair Programming gerade zum Erlernen neuer Technologien vorteilhaft ist, da sich auf diese Weise neues Wissen schneller verteilt. Bei komplexeren Aufgabenstellungen ist es sinnvoll, weil man zu jeder Zeit eine zweite Meinung einholen kann. Bevor man immer wieder seinen Kollegen unterbrechen muss und ihn aus seiner Arbeit reißt, bietet es sich an, komplexe oder kritische Aufgaben gemeinsam zu bearbeiten. Mit der Zeit ergab sich eine Pilot-/Copilot-Rollenverteilung, aus deren Perspektive nun persönliche Erfahrungen aufgezeigt werden.

Pilot

Als Pilot übernehme ich das Steuer selbst, im Fall der Softwareentwicklung also Tastatur und Maus. Ein Stück weit übernimmt man somit auch die Verantwortung für den entstehenden Quellcode. Je nach Copilot kann man sich schnell kontrolliert beziehungsweise bewertet fühlen. Ein guter Copilot sollte sich jedoch nicht nur auf das Aufzeigen von Tippfehlern und das Bemängeln des Programmierstils beschränken, sondern konstruktiv mitdenken, Ideen einbringen und Alternativen bereithalten. Nicht zuletzt durch diesen Druck empfinden die meisten die Rolle des Piloten anstrengender als die des Copiloten. Mit der Zeit spielt sich die Rollenverteilung jedoch sehr gut ein und man lernt die positiven Effekte eines Copiloten zu schätzen. Es entsteht qualitativ besserer Quellcode, der weniger Fehler aufweist, die sonst zu einem späteren Zeitpunkt aufwendig gefunden und behoben werden müssten. Hinzu kommt, dass man zu jedem eigenen Gedankengang eine zweite Meinung einholen kann, wodurch oft Quellcode entsteht, der wartbarer und überschaubarer ist.

Copilot

Der Copilot kann schnell mal als untätig missverstanden werden, da er zumeist kein Eingabegerät bedient. Dass es sich dabei um ein Missverständnis handelt, wird einem erst klar, wenn man diese Aufgabe selbst einmal übernommen hat. Als guter Copilot habe ich nicht nur stets ein Auge auf die Syntax und das Einhalten von Programmierstandards, sondern biete auch immer wieder Implementierungsalternativen an oder diene dem Piloten als Gedächtnisstütze für Dokumentation, Referenzen und dergleichen. Es kommt auch vor, dass sich der Copilot zu langweilen beginnt, da beim Piloten soweit alles gut ausschaut und es nichts zu klären gibt. Aber das ist ein gutes Zeichen dafür, wieder parallel weiterzuarbeiten oder die kommenden Aufgaben schon gedanklich anzugehen und Lösungsvorschläge vorzubereiten. Hat man einen wortkargen Piloten an der Seite, kann es schwerfallen, gedanklich zu folgen und seinen Pflichten entsprechend nachzukommen. In dieser Situation verfällt man schnell in das reine Aufzeigen von Tippfehlern, was die Produktivität des Pair Programming erheblich reduzieren kann.

Tipps für produktives Pair Programming

Aus den Perspektivenbeschreibungen von Pilot und Copilot lässt sich schon erahnen, dass es sinnvoll ist, die Rollen regelmäßig zu tauschen. Auch die Pair-Programming-Partner sollten häufiger wechseln, erst recht, wenn man das Ziel der besseren Wissensverteilung anstrebt. Man sollte nicht versuchen, alles mit Pair Programming zu erschlagen und dann erwarten, dass im Quellcode keine Fehler mehr auftreten. Es empfiehlt sich, das Pair Programming nur dort einzusetzen, wo neues Wissen erarbeitet werden muss, eine komplexe Aufgabenstellung vorliegt oder etwa bei sehr fehlerkritischen Aufgaben. Die Wahl der Pair-Programming-Partner ist ebenfalls von großer Bedeutung. Annähernd gleicher Kenntnisstand und eine gewisse persönliche Kompatibilität sind ein Muss, da sonst das Pair Programming in Summe unproduktiver ist als die klassische Softwareentwicklung.

, ,

Die besten IT-News per E-Mail

Immer als Erster über brandaktuelle IT-Themen informiert sein!

Datenschutzhinweise


Weitere Artikel zum Thema lesen

Was ist ein Blade Center?

IT-News

Was ist ein Blade Center?

Wir setzen Blade Server typischerweise als praktische Kombination aus Blade Center, Storage und VMware ein.

weiter lesen

Tipps für Admins

IT Security, IT-News

Was sind Anonymisierende Proxies?

Durch die Verwendung von Anonymisierenden Proxies können Nutzer ihre Aktivitäten im Browser verstecken. Häufig werden Anonymisierende Proxies am Arbeitsplatz dazu verwendet, um Sicherheitsfilter des...

weiter lesen

Paketanalyse mit Sflow oder Netflow

Hosting, IT-News

Paketanalyse mit Sflow oder Netflow

Sflow und Netflow stellen beide Mechanismen zur Verfügung, die eine Paketanalyse erlauben.

weiter lesen


Neueste Nachrichten von Adacor

Biz & Trends

Maschinelles Lernen im Unternehmen

Maschinen brauchen Beispiele zum Lernen. Die KI hilft Unternehmen dabei das volle Potenzial ihrer Daten auszuschöpfen, um ihre Produktivität zu erhöhen.

weiter lesen

Biz & Trends

„Recruit a Friend“ – Mitarbeiterempfehlungen als Recruitingmaßnahme

Eine Win-Win-Situation für Mitarbeiter, Bewerber und Arbeitgeber.

weiter lesen

Cloud

Adacor Experten auf IT-Leiter-Kongress treffen

Treffen Sie die Cloud-Experten der Adacor Group auf dem Deutschen IT-Leiter-Kongress. Wir laden Sie ein. Weitere Infos jetzt im Blog lesen.

weiter lesen