Ein Kopf ist gut und zwei sind besser oder Paarprogrammierung in Aktion


Fahrer und Navigator in Aktion (nordkoreanische Version der Methodik)

Von einem Übersetzer: Heute veröffentlichen wir für Sie einen Artikel von Andrew Sprul , Data Science Specialist. Er spricht über die Vorteile der Kopplung von Programmierern im selben Projekt.

Ich höre oft Leute sagen, dass sie am besten alleine arbeiten. Ich verstehe, dass einige Ideen und Methoden, die für eine Person geeignet sind, für eine andere Person nicht geeignet sind. Trotzdem steht mir das Sprichwort „Ein Kopf ist gut und zwei ist besser“ nahe. Unter dem Schnitt befinden sich zwei Videos, die zeigen, wie gut zwei Personen an einer einzelnen Aufgabe arbeiten können. Dies ist nur Harmonie - sowohl wörtlich als auch im übertragenen Sinne.

Skillbox empfiehlt: einen zweijährigen praktischen Kurs "Ich bin ein PRO Web Developer".

Wir erinnern Sie daran: Für alle Leser von „Habr“ - ein Rabatt von 10.000 Rubel bei der Anmeldung für einen Skillbox-Kurs mit dem Promo-Code „Habr“.



Hier ist das zweite Video (der Autor hat das Einbetten in Ressourcen von Drittanbietern verboten, aber es ist definitiv einen Blick wert).

Musik ist nicht der einzige Bereich, in dem die Zusammenarbeit zwischen zwei Personen einem gemeinsamen Projekt zugute kommen kann. Es gibt viele weitere, wie Michael P. Farrell, Professor für Soziologie an der Universität von Buffalo, in seinem Buch Collaborative Circles: Friendship Dynamics and Creative Work beschrieben hat. Insbesondere glaubt er, dass viele großartige Ideen bei Menschen aufgetaucht sind, die zu zweit gearbeitet haben: Es könnten Wissenschaftler, Künstler, Schriftsteller sein.

In der Malerei sind dies Monet und Renoir, in der Schrift - Tolkien und Lewis, in der Wissenschaft - Creek und Watson ... Sie können für eine lange Zeit auflisten. Darüber hinaus sind etwa die Hälfte der Nobelpreisträger in der Kategorie "Physiologie und Medizin" Zweierteams.

Nun, in unserer Zeit liefert die „Paarprogrammierung“, die Wikipedia als agile Methodik für die Softwareentwicklung beschreibt und die aus zwei Programmierern besteht, die an derselben Workstation arbeiten, hervorragende Ergebnisse. Einer von ihnen, der Fahrer, schreibt den Code, der zweite, der Beobachter, überwacht den Prozess und liest jede eingegebene Zeile. Programmierer wechseln häufig die Rollen.

Diese Technik hat nichts mit der Arbeit am Modell "Lehrer-Schüler" zu tun, wir sprechen von der gemeinsamen Arbeit zweier gleichberechtigter Spezialisten. Einer von ihnen hat vielleicht mehr Erfahrung, aber sie arbeiten genauso, Rechte sind gleich. Im Allgemeinen besteht die Idee darin, dass zwei Personen schneller als eine eine Lösung finden.

Anfänglich kann es für ein Paar schwierig sein, reibungslos zu arbeiten, und tatsächlich wird ein solcher Workflow vielen lächerlich erscheinen. Aber hier wie anderswo ist Erfahrung erforderlich. Mit der Zeit wird die Arbeit besser und der Prozess verläuft reibungslos, fast ohne Probleme.



Ich wiederhole, bei der Paarprogrammierung gibt es zwei Rollen: Treiber und Navigator. Die Hauptaufgabe des ersten besteht darin, den Details des Codes zu folgen, Ideen umzusetzen und sie in Codezeilen umzuwandeln. Der Fahrer und der Navigator sollten Ideen und Probleme besprechen.

Der Navigator achtet auf jede eingegebene Zeile, und diese Aufmerksamkeit wird nicht gestreut, da er keinen Text eingeben muss. Das Hauptziel des Navigators ist es, dem Fahrer klare Ideen zu vermitteln. Der Navigator sollte dem Fahrer Anweisungen mit einem bestimmten Abstraktionsgrad geben, damit er diese so effizient wie möglich implementieren kann.



Wenn ein Fahrer eine Idee hat, können der Navigator und der Fahrer die Rollen wechseln. Dies hilft den Partnern, synchron zu arbeiten. Das Teilen von Ideen ähnelt dem Brainstorming, ist jedoch effizienter und die Fehlerrate wird reduziert (siehe Abbildung oben).

Ich kann Spezialisten, die paarweise arbeiten, raten, manchmal zu unterbrechen und sich gegenseitig Fragen zu stellen. Dies hilft, in eine Richtung zu denken, sich zu verstehen und effizient zu arbeiten.

Paarprogrammierung und Workflow




Als ich die Frage der Paarprogrammierung studierte, stellte ich fest, dass es für solche Arbeiten mehrere Strategien gibt. Einige der Optionen finden Sie hier . Eine der interessantesten Strategien heißt Ping Pong Sparring. Es funktioniert wie folgt:
  • Programmierer A schreibt einen neuen Test und stellt fest, dass er nicht funktioniert.
  • Programmierer B fügt den Code hinzu, der zum Bestehen des Tests erforderlich ist.
  • Programmierer B schreibt einen neuen Test und stellt fest, dass er nicht funktioniert.
  • Programmierer A fügt den Code hinzu, der zum Bestehen des Tests erforderlich ist.
  • Komm zurück.

Ja, es sieht nicht nach einem idealen Workflow aus, aber wir werden erst wissen, wie effektiv er ist, wenn wir es versuchen.

Ich habe kürzlich von einem Klassenkameraden erfahren, dass Atom ein Teletype-Paket hat, mit dem Entwickler in Echtzeit zusammenarbeiten und Kollegen Zugriff auf ihren Desktop gewähren können. Dies ist sogar noch besser, als nur zusammen am selben Arbeitsplatz zu sitzen, da Sie sich in komfortableren Bedingungen befinden und weniger abgelenkt sind.

Und vergessen Sie nicht: die Rollen, die Sie im Laufe des Tages ändern müssen. Sie können den Timer jedoch nicht verwenden, da er den Workflow stört. Viele Leute denken, dass Sie die Rollen innerhalb eines Intervalls von 30 Minuten wechseln sollten. Aber hier ist alles subjektiv.

Die Anpassungsphase beim Übergang von Singles zur Paarprogrammierung ähnelt dem Verzehr von Paprika. Das erste Mal, wenn alles falsch ist, magst du es nicht. Aber je öfter Sie Pfeffer essen, desto eher beginnen Sie, ihn zu mögen.

Abschließend, was gesagt wurde


Als ich den Satz hörte: „Damit die Idee in einer Figur verwirklicht werden kann, muss sie durch die Hände einer anderen Person gehen. Diese Art der Programmierung ist Kommunikation und Zusammenarbeit. “ Kommunikation und Zusammenarbeit scheinen mir die beiden Komponenten einer erfolgreichen Arbeit zu sein.

Ich selbst bin produktiver, wenn ich mit jemandem zusammenarbeite. Meine Erfahrung als Musiker zeigt, dass es besser ist, in einem Ensemble zu spielen, als ein Solokünstler zu sein. Dies liegt nicht daran, dass ich von einer anderen Person abhängig bin, sondern daran, dass mein Vertrauen in den Erfolg wächst, wenn ich sehe, dass die allgemeine Arbeit effektiver ist. Jetzt habe ich einen besseren Navigator als einen Fahrer, aber ich verbessere mich allmählich. Hoffe, dieser Artikel hilft Ihren zukünftigen Projekten.

Skillbox empfiehlt:

Source: https://habr.com/ru/post/de436442/


All Articles