Wird die Paarprogrammierung jemals zu einer langen unproduktiven Diskussion?

8

Ich habe nur über Paarprogrammierung nachgedacht und ein Gedanke ist mir gerade in den Sinn gekommen, dass sich zwei Codierer sicherlich irgendwann nicht mehr einig sein werden und es zu einer langen (vielleicht hitzigen) Diskussion über die Implementierung eines Paradigmas oder Algorithmus usw. führen würde Ich gehe davon aus, dass dies "religiöse" Kriege um Dinge sein könnten. Passiert das?

Ist dies etwas, das noch nie "programmiert" wurde? Gibt es Prozesse, um lange Diskussionen zu stoppen?

Gary Willoughby
quelle
5
Siehe meine Antwort auf StackOverflow
Sklivvz
1
Einige meiner produktivsten Arbeiten basierten auf Gesprächen, die sowohl langwierig als auch hitzig waren. Wenn diese Gespräche tatsächlich nur eine "Diskussion" ohne irgendeinen "Eureka" -Moment sind, kann dies ein Problem sein.
Ramhound
A. Ja. An diesem Punkt nennen wir es Teambuilding . ;-)
Drew
Gibt es irgendetwas, an dem mehr als eine Person beteiligt ist, was manchmal nicht zu einer langen, unproduktiven Diskussion wird?
mjfgates
@mjfgates Fairer Punkt! lol.
Gary Willoughby

Antworten:

4

Harte Diskussionen sind manchmal ein Nebeneffekt der Paarprogrammierung, aber das ist nicht immer eine schlechte Sache. Wenn Sie darüber diskutieren, welchen Ansatz Sie wählen sollen, denken Sie über den Code nach, bevor Sie ihn schreiben, und Sie haben mehr als einen Satz Augen darauf.

Entnommen aus: http://wundasworld.blogspot.com/2007/11/joy-of-pair-programming.html :

Die ideale Paarungssituation erfordert, dass beide Personen erfahrene Entwickler sind. Sie müssen offen für die Idee der anderen Person sein. Und in diesem Fall (erfahrene Entwickler mit guten, starken Meinungen) kann es Schmerzen verursachen.

"Religionskriege" werden jedoch, wenn sie auftreten werden, in einer Codeüberprüfung oder anderswo auftauchen, wenn sie nicht in der Paarprogrammierung auftauchen. Das Vermeiden unproduktiver Diskussionen muss in jedem Aspekt der Programmierung identifiziert und vermieden werden. Der Hauptweg, um eine Paarprogrammierung zu vermeiden, besteht darin, sich darauf zu konzentrieren, den Job zu erledigen, zu lernen, Lösungen auszuwählen, die mehreren Anliegen entsprechen, und zu lernen, wann man nachgibt, wenn eine Wahl nicht die Zeit wert ist, die erforderlich ist, um darüber zu streiten.

jzd
quelle
3

Ich habe nicht viel Paarprogrammierung durchgeführt und reserviere es im Allgemeinen für Fälle, in denen ich wirklich festsitze oder größere Designprobleme habe. Dies sind jedoch genau die Situationen, in denen Diskussionen auftauchen. Das ist meine Erfahrung:

  • Es kommen große Diskussionen auf, ob Sie Paar programmieren oder nicht. Der Unterschied besteht darin, dass die Paarprogrammierung sie früher an die Oberfläche bringt und mehr Köpfe sofort an dem Problem arbeiten lässt. Aus diesem Grund suche ich in der Regel einen Programmierpartner, wenn ich wichtige und schwierige Codeentscheidungen treffe.
  • Erhitzte Diskussionen richten sich in der Regel weniger gegeneinander als vielmehr gegen das Problem. Wenn das Problem weg ist oder umsetzbar gemacht wird (z. B. "Lassen Sie uns ein Meeting abhalten, um das zu klären"), sind schlechte Gefühle verschwunden und erledigt.
  • Hitzige Diskussionen sind Anzeichen dafür, dass sich die Menschen für das Problem interessieren und eine Lösung finden möchten. Diese Art von Leidenschaft führt oft zu Kreativität und großartigen Lösungen.
  • Die Vorteile der Paarprogrammierung überwiegen nicht nur das Risiko von Frustrationen, sondern isolieren auch gegen dieses Risiko. Erfolg und guter Code können viel Frustration oder harte Gefühle auslöschen.
  • Ich sehe hitzigere Diskussionen, wenn eine Person alleine codiert und in die falsche Richtung geht. Zu diesem Zeitpunkt hat der Codierer viel in die falsche Richtung investiert, und es erfordert viel mehr Charakter, um zuzugeben, dass er einen großen Teil der Arbeit wiederholen muss, als ein paar Codezeilen oder eine Gliederung für das Projekt.
  • "Heilige Kriege" werden normalerweise durch Unternehmens- oder Managementpräferenzen, rationale Diskussionen über Vor- und Nachteile oder Dienstalter gelöst. Heilige Kriege, die mit einem dieser Probleme nicht gelöst werden können, weisen normalerweise darauf hin, dass jemand schlecht zum Unternehmen passt, und das Thema des Heiligen Krieges wäre schließlich auch ohne Paarprogrammierung als Reibungsquelle aufgetaucht. Ein Aufruf an eine andere Behörde kann häufig zur Lösung dieser Probleme beitragen. Lassen Sie beispielsweise unseren Chef / den Kunden dies entscheiden.
Ethel Evans
quelle
1

Wenn ich ein Programm kopple und ein wichtiger Diskussionspunkt auftaucht, versuchen wir normalerweise, es für eine separate Diskussion beiseite zu legen. Es wird Dinge geben, die bei der Ausarbeitung des ursprünglichen Entwurfs nicht berücksichtigt wurden, oder unterschiedliche Meinungen darüber, wie etwas implementiert werden soll. Es ist am besten, die Programmiersitzung einfach in Bewegung zu halten, da diese Art von Diskussion mit produktiveren Mitteln behandelt werden kann als mitten in der Paarprogrammierung.

JohnRegner
quelle
0

Die in der nächsten Kabine von mir scheinen IMMER so zu enden.

Dan Ray
quelle
0

Nach meiner Erfahrung wurde die Paarprogrammierung als Teil eines allgemeinen "extremen" Ansatzes durchgeführt, bei dem der kurzfristige Fokus darauf liegt, etwas zum Laufen zu bringen, mit dem Verständnis, dass das Refactoring später durchgeführt werden soll. Angesichts dessen werden die möglichen hitzigen Diskussionen in der Regel von jemandem gelöst, der sagt: "Nun gut, wir werden es vorerst auf Ihre Weise codieren und sehen, wie das geht. Wir können es später jederzeit ändern."

dfan
quelle