Pair-Programming

Pair-Programming

Bei Paarprogrammierung (auch Pair Programming genannt) handelt es sich um eine Arbeitstechnik, die sich häufig bei agilen Vorgehensweisen zur Softwareentwicklung findet. So ist Paarprogrammierung beispielsweise ein wichtiger Bestandteil von Extreme Programming (XP).

Inhaltsverzeichnis

Beschreibung

Paarprogrammierung bedeutet, dass bei der Erstellung des Quellcodes jeweils zwei Programmierer an einem Rechner arbeiten. Ein Programmierer schreibt den Code, während der andere über die Problemstellungen nachdenkt, den geschriebenen Code kontrolliert sowie Probleme, die ihm dabei auffallen, sofort anspricht. Diese können dann sofort (im Gespräch zu zweit) gelöst werden. Die beiden Programmierer sollten sich bezüglich dieser beiden Rollen abwechseln. Auch die Zusammensetzung der Paare sollte sich häufig ändern.

Sinn

Zunächst soll Paarprogrammierung die Softwarequalität steigern. Durch die Kontrollfunktion der zweiten Person sollen problematische Lösungen vermieden werden. Die Paarprogrammierung dient aber auch zur Verbreitung von Wissen über den Quellcode. Durch das regelmäßige Rotieren der Partner kann immer der jeweils neue Partner durch "learning by doing" etwas über die bearbeiteten Quelltexte lernen.

Positive Effekte

  • Höhere Disziplin. Paare entwickeln viel eher an der richtigen Stelle und machen kürzere Pausen.
  • Besserer Code. Beim Pair Programming entwickelt man sich weniger leicht in Sackgassen und erreicht so eine höhere Qualität.
  • Belastbarerer Flow. Pair Programming führt zwar zu einer anderen Art von Flow, ermöglicht diesen aber eher als der konventionelle Ansatz: Ein Programmierer kann seinen Partner jederzeit nach dem aktuellen Stand fragen und dort anknüpfen. Unterbrechungen werden auf diese Art besser abgewehrt.
  • Höhere Moral. Pair Programming ist oft spannender und interessanter als alleine zu arbeiten.
  • Collective Code Ownership. Wenn das gesamte Projektteam mit der Methode Pair Programming arbeitet und die jeweiligen Partner oft wechseln, erlangen alle Wissen über die gesamte Codebasis.
  • Mentoring. Jeder hat Wissen, das andere nicht haben. Pair Programming ist eine bequeme Möglichkeit, dieses Wissen zu verteilen.
  • Teambildung. Die Leute lernen sich gegenseitig schneller kennen, wodurch die Zusammenarbeit verbessert werden kann.
  • Weniger Unterbrechungen. Paare werden seltener unterbrochen als jemand, der alleine arbeitet.

Siehe auch: Arbeitsperson

Nachteile

  • Kosten. Da sich Vorteile wie gesteigerte Qualität teils erst in späteren Phasen des Produktlebenszyklus bemerkbar machen, sind in der ursprünglichen Entwicklungsphase die Kosten durch die doppelte Besetzung meist höher.
  • Teamfindung. Teamfindung ist aufwendig, nicht alle Personen können miteinander produktiv eingesetzt werden. Eingewöhnung an die Teammitglieder erfordert Zeit.
  • Autoritätsproblem. Wer hat die Kompetenz, bei konträren Problemlösungen zu entscheiden, welche implementiert wird?
  • Zeitliche Belastungen. Wenn zusätzliche Aufgaben wie Mentoring während der Programmierung wahrgenommen werden müssen, kann es zu Verzögerungen in der Entwicklung kommen. Die Teilnehmer müssen sich an unterschiedliche Programmierfähigkeiten und -stile gewöhnen.
  • Urheberrecht. Es kann zu Konflikten kommen, da später nicht unbedingt klar ist, wer Urheber der einzelnen Passagen des Codes ist.
  • Haftung. Es kann zu Konflikten kommen, da später nicht unbedingt klar ist, wer für fehlerhaften oder urheberrechtsverletzenden Code haftet.
  • Teamgröße. Bei steigender Zahl von Programmierern wird es schwieriger zu kommunizieren, wie Probleme zu lösen sind. Deshalb ist diese Arbeitsweise eher für kleinere Teams geeignet.
  • Arbeitsaufkommen. Je mehr verschiedenartige Aufgaben zu bewältigen sind, desto mehr muss der Programmierer wissen.

Produktivität

Befürworter der Paarprogrammierung behaupten, dass die Produktivität durch diese Vorgehensweise nicht sinke, sondern im Gegenteil sogar steige. Voraussetzung sei allerdings, dass die fachliche Kompetenz der Partner nicht zu sehr abweicht.

Weblinks


Wikimedia Foundation.

Игры ⚽ Нужно сделать НИР?

Schlagen Sie auch in anderen Wörterbüchern nach:

  • Pair programming — is an agile software development technique in which two programmers work together at one workstation. One, the driver, types in code while the other, the observer (or navigator[1]), reviews each line of code as it is typed in. The two programmers …   Wikipedia

  • Pair Programming — Bei Paarprogrammierung (auch Pair Programming genannt) handelt es sich um eine Arbeitstechnik, die sich häufig bei agilen Vorgehensweisen zur Softwareentwicklung findet. So ist Paarprogrammierung beispielsweise ein wichtiger Bestandteil von… …   Deutsch Wikipedia

  • Pair programming — Programmation en binôme La programmation en binôme (ou pair programming en anglais) est une méthode de travail dans laquelle deux développeurs travaillent ensemble sur la même partie de code, en binôme sur un même poste de travail. Sommaire 1… …   Wikipédia en Français

  • pair programming — noun A software development technique, part of extreme programming, in which two programmers work together at a single keyboard, one coding while the other observes and reviews. The roles are switched at regular intervals …   Wiktionary

  • Programming language — lists Alphabetical Categorical Chronological Generational A programming language is an artificial language designed to communicate instructions to a machine, particularly a computer. Programming languages can be used to create programs that… …   Wikipedia

  • Extreme programming — (XP), auch Extremprogrammierung, ist eine agile Methode, die das Lösen einer Programmieraufgabe in den Vordergrund der Softwareentwicklung stellt und dabei einem formalisierten Vorgehen geringere Bedeutung zumisst. Die Extremprogrammierung… …   Deutsch Wikipedia

  • Xtreme Programming — Extreme Programming (XP), auch Extremprogrammierung, ist eine agile Methode, die das Lösen einer Programmieraufgabe in den Vordergrund der Softwareentwicklung stellt und dabei einem formalisierten Vorgehen geringere Bedeutung zumisst. Die… …   Deutsch Wikipedia

  • Extreme Programming — (XP), auch Extremprogrammierung, ist eine Methode, die das Lösen einer Programmieraufgabe in den Vordergrund der Softwareentwicklung stellt und dabei einem formalisierten Vorgehen geringere Bedeutung zumisst. Diese Vorgehensweise definiert ein… …   Deutsch Wikipedia

  • Extreme Programming Practices — Extreme Programming (XP) is a popular agile software development methodology used to implement software projects. This article details the practices used in this methodology. Extreme Programming has 12 practices, grouped into four areas, derived… …   Wikipedia

  • Extreme Programming — (or XP) is a software engineering methodology (and a form of agile software development) Human Centred Technology Workshop 2005 , 2005, PDF webpage: [ftp://ftp.informatics.sussex.ac.uk/pub/reports/csrp/csrp585.pdf Informatics UK report cdrp585]… …   Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”