Paar, das programmiert

Paar, das programmiert, ist eine flinke Softwareentwicklungstechnik, in der zwei Programmierer an einem Arbeitsplatz zusammenarbeiten. Ein, der Fahrer, schreibt Code, während der andere, der Beobachter (oder Navigator), jede Linie des Codes nachprüft, weil es eingetippt wird. Die zwei Programmierer schalten Rollen oft.

Während

er nachprüft, denkt der Beobachter auch die strategische Richtung der Arbeit, Ideen für Verbesserungen und wahrscheinliche zukünftige Probleme präsentierend, zu richten. Das befreit den Fahrer, um ganze seine oder ihre Aufmerksamkeit auf den "taktischen" Aspekten zu richten, die aktuelle Aufgabe, mit dem Beobachter als ein Schutznetz und Führer zu vollenden.

Kosten und Vorteile

Einige Studien haben gefunden, dass Programmierer, die in Paaren arbeiten, kürzere Programme, mit besseren Designs und weniger Programmfehlern erzeugen als Programmierer, die allein arbeiten. Studien haben die Verminderung von Defekt-Raten von 15 % bis 50 % gefunden, sich abhängig von der Programmierer-Erfahrung und Aufgabe-Kompliziertheit ändernd. Paare betrachten normalerweise mehr Designalternativen als Programmierer als Arbeitssolo, und erreichen einfacher, mehr - haltbare Designs; sie fangen auch Designdefekte früh. Paare vollenden gewöhnlich Arbeit schneller als ein derselben Aufgabe zugeteilter Programmierer. Paare finden häufig, dass "anscheinend unmögliche" Probleme leicht oder sogar schnell, oder mindestens möglich werden zu lösen, wenn sie zusammenarbeiten.

Jedoch hat eine 2007-Meta-Analyse beschlossen, dass "Paar, das programmiert, nicht gleichförmig vorteilhaft oder wirksam ist", weil viele andere Faktoren außer der Wahl dessen, ob man Paar verwendet, das programmiert, große Effekten auf das Ergebnis einer Programmieraufgabe haben. Die Meta-Studie hat gefunden, dass Paar, das programmiert, dazu neigt, Entwicklungsdauer etwas zu reduzieren, und positive Randeffekten auf die Codequalität erzeugt, aber dass Paar, das programmiert, bedeutsam mehr Entwickler-Anstrengung verlangt; d. h. es ist bedeutsam teurer als Soloprogrammierung. Die Autoren schlagen vor, dass Studien des Paares, das programmiert, unter der Veröffentlichungsneigung leiden, wodurch Studien, die nicht zeigen würden, dass Paar, das programmiert, vorteilhaft ist, entweder, nicht vorgelegt für die Veröffentlichung, oder nicht nicht übernommen wurden für die Veröffentlichung akzeptiert haben. Sie beschließen, dass "Sie schneller und besser und preiswerter nicht erwarten können."

Wenn auch das Codieren häufig schneller vollendet wird als, wenn ein Programmierer allein, Gesamtprogrammierer-Zeit (Zahl von Programmierern × Zeit verbracht) Zunahmen arbeitet. Ein Betriebsleiter muss schnellere Vollziehung der Arbeit und der reduzierten Prüfung und des Beseitigens bei Zeit gegen die höheren Kosten des Codierens erwägen. Das Verhältnisgewicht dieser Faktoren kann sich vom Projekt bis Projekt und der Aufgabe zur Aufgabe ändern. Der Vorteil der Paarung ist auf Aufgaben am größten, dass die Programmierer nicht völlig verstehen, bevor sie beginnen: D. h. schwierige Aufgaben, die nach Kreativität und Kultiviertheit verlangen. Auf einfachen Aufgaben, die das Paar bereits völlig versteht, läuft Paarung auf einen Nettofall auf die Produktivität hinaus.

Produktivität kann auch fallen, wenn Anfänger-Anfänger, der sich paart, ohne genügend Verfügbarkeit eines Mentors verwendet wird, sie zu trainieren.

Kenntnisse gehen zwischen Paar-Programmierern, wie sie arbeiten. Sie teilen Kenntnisse der Details des Systems, und sie nehmen Programmiertechniken von einander auf. Neueinstellungen nehmen schnell die Methoden der Mannschaft auf und erfahren die Details des Systems. Mit der "gemischten Paarung" - jeder Programmierer, der durch alle anderen Programmierer auf der Mannschaft Rad fährt, anstatt sich nur mit einem Partner zu paaren - breiten sich Kenntnisse des Systems überall in der ganzen Mannschaft aus, Gefahr zum Management reduzierend, wenn ein Programmierer die Mannschaft verlässt.

Paarung bringt gewöhnlich verbesserte Disziplin und Zeitmanagement. Programmierer werden mit geringerer Wahrscheinlichkeit Schreiben-Einheitstests auslassen, Zeitwebsurfen oder für die persönliche E-Mail oder Kürzungsecken ausgeben, wenn sie mit einem Paar-Partner arbeiten. Der Paar-Partner "hält sie ehrlich". Leute sträuben sich mehr dagegen, ein Paar zu unterbrechen, als sie jemanden unterbrechen sollen, allein arbeitend.

Zusätzliche Vorteile haben berichtet schließen vergrößertes moralisches und größeres Vertrauen zur Genauigkeit des Codes ein.

Wissenschaftliche Studien

Der Wirtschaftswissenschaftler hat bemerkt, "Laurie Williams von der Universität Utahs in Salt Lake City hat gezeigt, dass paarweise angeordnete Programmierer nur um 15 % langsamer sind als zwei unabhängige individuelle Programmierer, aber 15 % weniger Programmfehler erzeugen. Seit der Prüfung und dem Beseitigen sind häufig oft kostspieliger als anfängliche Programmierung, das ist ein eindrucksvolles Ergebnis." (Zeichen: Die ursprüngliche Studie hat gezeigt, dass "fehlerfreier" Code von 70 % bis 85 % gegangen ist; es kann intuitiver sein, um das 50 % (aber nicht 15 %) Abnahme von Fehlern von 30 % bis 15 % zu nennen.)

Der Williams u. a. 2000-Studie hat eine Verbesserung in der Genauigkeit von ungefähr 15 % und einer 20 %-40-%-Abnahme rechtzeitig, aber zwischen einer 15-%- und 60-%-Zunahme in der Anstrengung — d. h. ganze Programmierer-Stunden gezeigt. Williams u. a. 2000 zitiert auch eine frühere Studie (Nosek 1998), der auch eine 40-%-Abnahme rechtzeitig für eine 60-%-Zunahme in der Anstrengung hatte.

Eine Studie (Lui 2006) präsentiert ein strenges wissenschaftliches Experiment, in dem Paare des Anfängers-Anfängers gegen das Anfänger-Solo bedeutsam größere Produktivitätsgewinne erfahren als erfahren-erfahrene Paare gegen das erfahrene Solo.

Eine größere neue Studie (Arisholm u. a. 2007) hatte 48-%-Zunahme in der Genauigkeit für komplizierte Systeme, aber kein bedeutender Unterschied rechtzeitig, während einfache Systeme 20-%-Abnahme rechtzeitig, aber keinen bedeutenden Unterschied in der Genauigkeit hatten. Insgesamt gab es keine allgemeine Verminderung rechtzeitig oder Zunahme in der Genauigkeit, aber eine gesamte 84-%-Zunahme in der Anstrengung.

Lui, Chan und Nosek (2008) Shows, die Paar, das programmiert, für Designaufgaben überbietet.

Eine umfassende Meta-Analyse des Paares, das experimentelle Studien, aus der Zeit vor oder während 2007, (Hannay programmiert u. a. 2009) bestätigt, "dass Sie schneller und besser und preiswerter nicht erwarten können". Die höhere Qualität für komplizierte Aufgaben kostet höhere Anstrengung, die reduzierte Dauer für einfachere Aufgaben kommt mit der merklich niedrigeren Qualität - die Meta-Analyse "weist darauf hin, dass Paar, das programmiert, nicht gleichförmig vorteilhaft oder wirksam ist".

Das Nichtdurchführen von Anzeigen

Es gibt einige Hinweise, dass ein Paar nicht eine gute Leistung bringt:

  • Befreiung - Eines der Mitglieder schiebt physisch ihren Stuhl von der Tastatur weg oder fängt an, an ihrer E-Mail usw. zu arbeiten. Manchmal kann das so äußerst sein wie ein Mitglied, das einschläft.
  • Beobachten Sie den Master - Manchmal ein Mitglied wird erfahrener sein als der andere. Es gibt eine Versuchung, mehr Ältestem nachzugeben, und das weniger ältere wird zum Beobachter-Status verbannt. Das wird häufig zu Befreiung führen.
  • Schweigen - Paare können nicht zusammenarbeiten, wenn sie mit einander nicht sprechen.
  • Gedanke-Abweichung - Selbst wenn wir die Bewachung als den Master, ein besonderes schriftliches Programm betrachten, hat verschiedene Weisen, durch jeden Entwickler abhängig vom Fachwerk s durchzuführen (er) hat erfahren. Das wird häufig zu Verwirrungen führen, und eine dritte Person muss (Suche in Google oder Opinion von der Mannschaft-Leitung) auf der Annäherung entscheiden zu nehmen.
  • Beleidigende Elternteilbeziehung - Der erfahrenere Programmierer zankt unaufhörlich aus, und beleidigt sogar vielleicht physisch den weniger erfahrenen Programmierer. Milde Formen davon bestehen aus dem übermäßigen Sarkasmus von einem Partner zu einem anderen, während strenge Formen leichten physischen Missbrauch wie Stöße und Schläge einschließen.
  • Anstrengungsabweichung - Seitdem beider konzentriert sich auf ein besonderes Programm, die Anstrengung in Bezug auf Mann-Stunden wird ebenso geteilt. Die Chancen der parallelen geleisteten Arbeit für eine Ausgabe werden ausgeschlossen, und zwei Person, die an demselben Computer ebenso arbeitet, hat vor, 16 Stunden als 8 Stunden auszugeben.

Varianten

Entferntes Paar, das programmiert

Entferntes Paar, das, auch bekannt als virtuelles Paar programmiert, das programmiert oder verteiltes Paar, das programmiert, ist Paar, das programmiert, wo die zwei Programmierer in verschiedenen Positionen sind, über einen zusammenarbeitenden Echtzeitredakteur arbeitend, hat Arbeitsfläche oder ein entferntes Paar geteilt, das Steck-IDE programmiert. Entfernte Paarung führt Schwierigkeiten nicht Gegenwart in der persönlichen Paarung wie Extraverzögerungen für die Koordination ein, mehr von Aufgabe verfolgenden "Schwergewichts"-Werkzeugen statt "leichter" wie Index-Karten und Verlust der Kommunikation ohne Worte abhängend, die auf Verwirrung und Konflikte über solche Dinge wie hinausläuft, wer "die Tastatur hat".

Werkzeug-Unterstützung wird irgendein durch eine Schirm-Teilen-Software zur Verfügung gestellt

(wie VNC oder RealVNC

oder die Mehranzeigeweise (-x) des textbasierten Schirms GNU)

oder durch verteilte Spezialredakteur-Werkzeuge (wie Gobby, Saros oder XPairtise).

Schwirren-Gestank-Paar, das programmiert

Im Schwirren-Gestank-Paar, das programmiert, schreibt der Beobachter einen Mangel-Einheitstest, der Fahrer modifiziert den Code, um den Test zu bestehen. An diesem Punkt tauschen sie Rollen, und der ursprüngliche Fahrer (als Beobachter) schreibt einen Mangel-Test. Der ursprüngliche Beobachter (jetzt Fahrer) modifiziert den Code, um zu veranlassen, dass der neue Test und so weiter geht. Diese Schleife geht weiter, so lange jedes Mitglied des Paares im Stande ist, Mangel-Einheitstests auf den anderen zu schreiben, um durchzuführen. Im Allgemeinen kann diese Annäherung mehr Zeit nehmen als der geschätzte Plan.

In der populären Kultur

Am 1. April 2012 hat der Behältnis-Gastgeber Bitbucket eine Parodie auf das Paar eingeführt, das programmiert: das Auslöffeln, als eine Ergänzung zum Gabeln.

Siehe auch

Links

Programme und Einfügefunktionen, um entferntes Paar zu unterstützen, das programmiert


PDP-11 / Psychologie der Folter
Impressum & Datenschutz