it-swarm.com.de

Was sind mögliche Nachteile der Paarprogrammierung?

Paarprogrammierung ist heutzutage ziemlich berühmt.

Es hat mehrere Vorteile wie:

  1. Programme mit weniger Fehlern.
  2. Die Wartungskosten nach der Produktion sind viel geringer.
  3. Etablierte Praktiken werden in Frage gestellt, was zur Entstehung neuer Ideen führt.
  4. Programmierer lernen voneinander.
  5. Programmierer entwickeln Soft Skills.

Aber was sind die Nachteile der Paarprogrammierung?

22
freebird

Obwohl die Paarprogrammierung einen beachtlichen Ruf erlangt hat, weist sie auch einige Fallstricke auf.

Einige von ihnen sind wie folgt:

  1. Bei der Paarprogrammierung können Sie sich nicht zurücklehnen und Ihren eigenen Code selbst bewerten.
  2. Einer der beiden ist möglicherweise nicht mehr aktiv beschäftigt.
  3. Der Treiber muss "laut programmieren". Lautloses Programmieren verringert den Nutzen.
  4. Die Herstellung der gleichen Funktionen kostet mehr Arbeitsstunden. Das Gleichgewicht zwischen der Qualität des Codes und den erhöhten Codierungskosten muss gewahrt bleiben.
  5. Ein "Watch the Master" -Phänomen kann auftreten, wenn sich ein erfahrener und ein unerfahrener Programmierer paaren. Das Anfängermitglied kann der Beobachter werden, wobei das erfahrene Mitglied die meisten Codierungen durchführt.
  6. Wenn sich zwei erfahrene Benutzer paaren, kann ein "Entwickler-Ego" -Phänomen auftreten, bei dem jedes Mitglied versucht, seine eigenen Ideen voranzutreiben.
28
freebird

Ich habe mehrmals versucht, Paare zu programmieren, auch in einer Organisation, die (kurz) die Einführung als obligatorischen Prozess für alle Ingenieure in Betracht gezogen hat (Sie können sich vorstellen, wie gut diese Idee umgesetzt wurde). Ich persönlich habe es gehasst.

Die Gründe, die ich unten aufführe, sind nur meine subjektiven Erfahrungen, und ich kann ihre Auswirkungen nicht konkret messen. Aber hier sind sie alle gleich:

1 - Ein 'Navigator' und ein 'Fahrer' helfen nur, wenn der erstere lautstark ist und der letztere zuhört.

Wir haben alle Entwickler getroffen, die hartnäckig, eifrig in Bezug auf theoretische Bedenken oder pathologisch nicht in der Lage sind, alte Arbeiten „wegzuwerfen“, wenn jemand ein Problem damit vorschlägt. Und wir alle kennen Personen, die zu schüchtern oder zurückhaltend sind, um Bedenken zu äußern oder Eckfälle vorzuschlagen.

Wenn diese Arten von Entwicklern gepaart werden, übernimmt der Navigator schnell eine passive Rolle, und am Ende erhalten Sie nur eine Programmierung mit einer automatischen Codeüberprüfung. Dies ist eine monumentale Verschwendung von Ressourcen.

2 - Pairing verhindert Kreativität.

Im Gegensatz zu dem, was früher über den Wert des "Gruppen-Brainstormings" empfunden wurde, besteht heutzutage Konsens darüber, dass kreative Wissensarbeit Unabhängigkeit und Autonomie erfordert. Wenn Sie alleine arbeiten, können Sie schnell eine verrückte Idee zusammenhacken, um zu sehen, ob sie tatsächlich machbar ist. Sie können wortlos einen seltsamen Prototyp zusammenbauen, und wenn Sie versagen, spielt es keine Rolle, denn niemand weiß es.

Vergleichen Sie das mit dem Pairing: Wenn ich ein neues Konzept ausprobieren möchte, muss ich meinen Partner überzeugen, ihn Schritt für Schritt durch die Implementierung sprechen und hoffen, dass er mich nicht beurteilt, wenn es fehlschlägt. Diese Art von Umgebung ist giftig, um neue Ideen zu entwickeln.

- Design mit dem kleinsten gemeinsamen Nenner.

Wenn ein Paar wie oben keine neuen Ideen entwickeln kann oder wenn sich die Individuen nicht auf ein grundlegendes Prinzip einigen können, wie ein Feature gestaltet werden soll, entsteht ein durcheinandergebrachtes Design, das versucht, Kompromisse einzugehen und niemanden zufrieden zu stellen.

Wenn Sie einen Entwickler zusammenbringen, der wunderbare, eloquente, himmelwärts gerichtete funktionale Programmierabstraktionen mit einem schnellen und schmutzigen Leistungsfreak erstellt, ist der Code, den sie zusammen produzieren, normalerweise weder besonders elegant noch besonders schnell.

4 - Mangel an Autonomie und gewalttätiger Transparenz.

Gewalttätige Transparenz ist ein Satz, den ich aus einer mäßig berühmten (und ziemlich kontroversen) Polemik gegen die Scrum-Methodik gezogen habe. Es beschreibt die Art und Weise, wie einige Organisationen Entwickler infantilisieren und sie mit dem Verdacht behandeln, der normalerweise nicht professionellen Arbeitnehmern vorbehalten ist.

Was auch immer Sie über die „Nachteile“ denken, die es mit sich bringt, die Arbeit der Entwickler vollständig transparent zu machen (und Sie sind sich vielleicht nicht einig, dass dies tatsächlich ein Schaden ist), viele Menschen schätzen ihre Autonomie und ihre Fähigkeit, alleine zu arbeiten, und vertrauen darauf, das Richtige zu tun. Es ist ein wichtiges psychologisches Bedürfnis, und wenn Entwickler zum Pairing gezwungen werden (wie ich in mindestens einem Geschäft gesehen habe), sind die Mitarbeiter bestürzt, verärgert und entfremdet.

5 - Einige Entwickler spielen paarweise einfach nicht gut.

Einige Menschen werden oder können sich in einer gepaarten Umgebung nicht angemessen verhalten. Sie haben möglicherweise schlechte Hygiene, schlechte Arbeitsgewohnheiten, eine aggressive Persönlichkeit, eine "laute" und "intensive" Art oder eine ganze Reihe anderer Eigenschaften, die sie zu guten Einzelarbeitern machen, aber zu armen Programmierern.

Kannst du das lösen? Nicht wirklich. Persönliches Verhalten zu ändern ist schwierig. Ein Paar-Programmier-Shop muss sehr vorsichtig bei der Einstellung sein und viel Zeit investieren, um zu sehen, wie jemand arbeitet und ob er in der Lage ist, gut mit seinen Kollegen zusammenzuarbeiten. Eine stärkere Diskriminierung der Persönlichkeit bedeutet jedoch, dass die Einstellung länger dauert, es sei denn, Sie lockern Ihre Standards in Bezug auf Fähigkeiten und Fachwissen.

24

Hängt von Ihrer Situation oder Perspektive ab.

Paarprogrammierung ist gut für die Organisation. Aber ist es gut für den Einzelnen?

Immerhin ist es eine kostensparende (frühes Feedback) und Produktivitätsmethode; Es geht nicht um Sie, sondern um das Projekt, Produkt, Unternehmen ($$).

Obwohl Sie persönliche Vorteile haben können, sind diese nicht der Grund oder das Ende einer Entwicklungsmethode. Die (Vollzeit-) Paarprogrammierung verhindert beispielsweise auch, dass Sie nachlassen, surfen usw. Sie müssen Ihre Pausen gegenüber Ihrem Partner begründen.

Ihr (rotierender) Partner ist die beste Überwachungskamera: Die Arbeitsintensität steigt.

Oder durch die Verteilung von Wissen wird die Person für das Unternehmen weniger riskant (z. B. kann sie das Unternehmen nicht mit grundlegendem Wissen verlassen) und hat weniger "Verhandlungschips".

Ich bin sicher, dass Sie mehr Punkte finden, wenn Sie positive Artikel kritischer aus IHRER realen Situation/Ihrem Standpunkt im Unternehmen lesen als aus der Sicht Ihres Managers.

Fast alle Methoden werden aus Sicht des Managers geschrieben.

12
A guest
  1. Plötzlich müssen Sie jemandem sagen, wann Sie auf die Toilette gehen oder einen Kaffee trinken möchten. Zumindest besteht keine Notwendigkeit, um Erlaubnis zu bitten.

  2. Sie müssen mit den Hygienestandards der anderen Person fertig werden.

5
Den

Neben anderen Antworten:

  1. Viele Unternehmen, für die ich gearbeitet habe, stellen ihren Programmierern Laptops zur Verfügung (basierend auf dem Kundenstandort - einfacher, Geräte sicher aufzubewahren, wenn sie nach der Arbeit mit nach Hause genommen werden, zur Not die Gelegenheitsarbeit von zu Hause aus über VPN erledigen können usw.) Viele Jahre Vor einiger Zeit hatte ich bereits Probleme, auf dem Laptop-Bildschirm einer anderen Person (des "Fahrers") aus der Perspektive des Schulter-Surfens zu sehen - das Alter wird dies nicht verbessern (und einige Bildschirme werden auf jeden Fall außerhalb des idealen Betrachtungswinkels schwer lesbar).

    Paarprogrammierer benötigen daher ausreichend große Bildschirme, was die Hardwarekosten erhöht und die Anpassungsfähigkeit an den Standort einschränkt. Kann für einige kein Problem sein, in anderen Fällen wird es ein Problem sein.

  2. Ich habe auch festgestellt, dass Unterschiede in den persönlichen Hygienevorlieben (einschließlich Rauchen, Essen und Trinken) sowie Persönlichkeitskollisionen die Produktivität beeinträchtigen können. Es ist leicht genug, zwei Programmierern zu sagen, sie sollen "aufsaugen und miteinander auskommen". Oft führt dies dazu, dass die Leute lieber den Mund halten und sich gegenseitig stillschweigend durch passiv-aggressive Aktionen sabotieren, um ihre Ressentiments gegeneinander auszudrücken.
  3. Lärm. Ich mag ein ruhiges Arbeitsumfeld. Ich kann mir das ständige Geschwätz einiger Gruppen von Paarprogrammierern nicht vorstellen (da Sie für die Kommunikation sprechen müssen). Sogar Vokalmusik auf meinen Kopfhörern beeinträchtigt meine Konzentration (langweilige Instrumentals für das Hören im Büro ...). Ich denke, dies kann gemildert werden, indem man vom allgegenwärtigen Großraumbüro in dedizierte Büroräume für 2 Personen übergeht, aber das wird die Kosten wieder in die Höhe treiben.

Anekdoten für Ihre Unterhaltung:

  • Ein früherer Arbeitgeber hat einmal einen Auftragnehmer aus einem anderen Land hinzugezogen (alle müssen anonym bleiben, um die Schuldigen zu schützen). Der Arbeitgeber stellte Unterkunft zur Verfügung, aber keinen Transport. Da dieser Auftragnehmer auf meinem Weg zur Arbeit lebte, wurde ich freiwillig gebeten, ihn abzuholen und wieder abzusetzen. Nehmen wir an, seine persönliche Hygiene entsprach nicht dem, was ich gewohnt bin, und er rauchte auch stark ("am stärksten!"), Während ich es nicht tue. Auf unserer 15-minütigen Reise ins Büro ließ ich mein Fenster auch im Winter heruntergeklappt, was mein Auto nach dem dreimonatigen Aufenthalt des Kollegen nicht daran hinderte, nach einem abgestandenen Raucherzimmer zu riechen (nein, er rauchte nicht im Auto , aber er tat es, während er auf mich wartete).
  • Wir haben auch keine Paarprogrammierung durchgeführt, sondern saßen (eine Zeit lang) nebeneinander an einem Konferenztisch. Nach ungefähr einem Monat befand sich auf dem Kunstholz des Tisches ein schöner brauner Ring um die Position der Maushand des Kollegen. Zu diesem Zeitpunkt bekam ich einen offenen Schreibtisch direkt neben dem offenen Bereich des Callcenters, den ich bevorzugte (mit Hilfe meiner Kopfhörer).
  • Dann gibt es das allgegenwärtige Bürogetränk: Kaffee. Obwohl ich es trinke, kann ich ohne auskommen und trinke nicht so oft wie andere Mitarbeiter. Atemzüge aus nächster Nähe können ziemlich unangenehm sein - ähnlich wie der leere, vergessene Bechergeruch. Nennen wir den Duft "schwül" ...
4
fr13d

Ich denke, die Paarprogrammierung schlägt aus sozialen und praktischen Gründen fehl. Im Wesentlichen bitten Sie eine Person, unter ständiger Überwachung zu arbeiten, und die andere Person, nur Löcher zu stechen.

Was nach einer Weile unweigerlich passiert, ist, dass sich das Paar aufteilt, um "E-Mails zu überprüfen" oder "Sie überprüfen dieses Live-Problem weiterhin schlecht" usw.

Anstatt die Code-Ausgabe zu verbessern, wird die Lautstärke verringert. Sowohl aus praktischen Gründen "Ich muss zum Mittagessen/Treffen nicht synchron mit dir gehen" als auch aus sozialen Gründen "Ich warte nur darauf, dass Bob fertig ist, was er tut, bevor ich nach einer erneuten Paarung frage, ich möchte nicht als nervig angesehen werden".

Was die gepriesenen Vorteile betrifft, gibt es viele gängige Praktiken, mit denen diese auf einfachere und effektivere Weise erreicht werden

3
Ewan

Zwei hochrangigen Entwicklern zu sagen, dass sie eine "Schmerzprogrammierung" durchführen sollen, wenn sie sicher sind, dass sie die Arbeit erledigen können, ist einer der größten Nachteile.

2
klm_