Pair-Programmierung ist heutzutage ziemlich berühmt.
Es hat mehrere Vorteile wie:
- Programme mit weniger Fehlern.
- Die Wartungskosten nach der Produktion sind viel geringer.
- Etablierte Praktiken werden in Frage gestellt, was zur Entstehung neuer Ideen führt.
- Programmierer lernen voneinander.
- Programmierer entwickeln Soft Skills.
Aber was sind die Nachteile der Paarprogrammierung?
design
programming-practices
pair-programming
freier Vogel
quelle
quelle
Antworten:
Obwohl Pair Programming einen beachtlichen Ruf erlangt hat, hat es auch einige Fallstricke.
Einige von ihnen sind wie folgt:
quelle
Ich habe mehrmals versucht, Paare zu programmieren, auch in einer Organisation, die (kurz) in Erwägung gezogen hat, sie als obligatorischen Prozess für alle Ingenieure einzuführen (Sie können sich vorstellen, wie gut diese Idee umgesetzt wurde). Persönlich hasste ich es.
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 dann, wenn der erstere lautstark ist und der letztere zuhört.
Wir haben alle Entwickler getroffen, die hartnäckig, neugierig auf theoretische Fragen sind oder krankhaft - psychologisch - nicht in der Lage sind, alte Arbeiten wegzuwerfen, wenn jemand ein Problem damit vorschlägt. Und wir alle kennen Individuen, die zu schüchtern oder schüchtern sind, um Bedenken zu äußern oder Eckfälle vorzuschlagen.
Wenn diese Art von Entwicklern gepaart werden, übernimmt der Navigator schnell eine passive Rolle, und am Ende müssen Sie nur noch mit einer automatischen Codeüberprüfung programmieren. Dies ist eine enorme Verschwendung von Ressourcen.
2 - Pairing verhindert Kreativität.
Im Gegensatz zu dem, was früher über den Wert von "Gruppen-Brainstorming" empfunden wurde, ist man sich heutzutage einig, dass kreative Wissensarbeit Unabhängigkeit und Autonomie erfordert . Wenn Sie alleine arbeiten, können Sie schnell eine verrückte Idee zusammenfügen, um zu prüfen, ob sie tatsächlich realisierbar ist. Sie können wortlos einen seltsamen Prototyp zusammenbauen, und wenn Sie versagen, spielt es keine Rolle, weil niemand weiß .
Vergleichen Sie das mit Pairing: Wenn ich ein neues Konzept ausprobieren möchte, muss ich meinen Partner überzeugen, ihn Schritt für Schritt durch die Implementierung führen und hoffen, dass er mich nicht beurteilt, wenn es fehlschlägt. Eine solche Umgebung ist giftig für die Schaffung neuer Ideen.
3 - Design mit dem niedrigsten gemeinsamen Nenner.
Wenn ein Paar wie oben keine neuen Ideen entwickeln kann oder wenn sich die Einzelpersonen 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, am Himmel funktionierende Programmierabstraktionen mit einem schnellen und schmutzigen Performance-Freak erstellt, wird der Code, den sie zusammen produzieren, in der Regel weder besonders elegant noch besonders schnell sein.
4 - Mangelnde Autonomie und gewaltsame Transparenz.
Gewalttätige Transparenz ist ein Satz, den ich aus einer mäßig bekannten (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 von Entwicklern völlig transparent zu machen (und Sie stimmen möglicherweise nicht zu, dass dies tatsächlich ein Schaden ist), viele Menschen schätzen ihre Autonomie und ihre Fähigkeit, allein zu arbeiten, und vertrauen darauf, das Richtige zu tun. Es ist ein wichtiges psychologisches Bedürfnis, Entwickler zum Pairing zu zwingen (wie ich es in mindestens einem Geschäft erlebt habe), wird die Mitarbeiter bestürzt, verärgert und entfremdet zurücklassen.
5 - Einige Entwickler spielen nur zu zweit 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 Programmierern mit schlechten Paaren.
Kannst du das lösen? Nicht wirklich. Persönliches Verhalten zu ändern ist schwierig. Ein Pair-Programming-Shop muss sehr vorsichtig 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 verlieren Ihre Standards in Bezug auf Fähigkeiten und Fachwissen.
quelle
Kommt auf deine Situation oder Perspektive an.
Pair Programming ist gut für die Organisation. Aber ist es gut für den Einzelnen?
Immerhin ist es eine kostensparende (frühzeitige Rückmeldung) und produktive Methode. 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 wird die beste Überwachungskamera sein: Die Arbeitsintensität steigt.
Oder durch die Weitergabe von Wissen wird der Einzelne für das Unternehmen weniger riskant (z. B. kann er das Unternehmen nicht mit grundlegendem Wissen verlassen) und verfügt über weniger "Verhandlungschips".
Ich bin sicher, dass Sie mehr Punkte finden, wenn Sie positive Artikel kritischer aus IHRER realen Situation / Sicht im Unternehmen lesen, als aus der Sicht Ihres Managers.
Fast alle Methoden werden aus Sicht des Managers geschrieben.
quelle
Plötzlich musst du jemandem sagen, wann du auf die Toilette gehen oder einen Kaffee trinken möchtest. Zumindest müssen Sie nicht um Erlaubnis fragen.
Sie müssen mit den Hygienestandards der anderen Person fertig werden.
quelle
Neben anderen Antworten:
Viele Unternehmen, für die ich gearbeitet habe, haben ihren Programmierern Laptops ausgehändigt (bei Kunden vor Ort - einfacher, Geräte sicher aufzubewahren, wenn sie nach Feierabend mit nach Hause genommen werden, in der Lage zu sein, gelegentliche Aufgaben von zu Hause aus per VPN zu erledigen usw.). Viele Jahre Vor einiger Zeit hatte ich bereits Probleme, den Laptop-Bildschirm einer anderen Person (des "Fahrers") aus der Perspektive des Schulter-Surfens zu sehen - das Alter wird dies nicht verbessern (und einige Bildschirme sind außerhalb des idealen Betrachtungswinkels auf jeden Fall schwer zu lesen).
Paarprogrammierer benötigen daher ausreichend große Bildschirme, was die Hardwarekosten erhöht und die Anpassbarkeit an den Standort einschränkt. Für manche kein Problem, in anderen Fällen wird es ein Problem sein.
Anekdoten für Ihre Unterhaltung:
quelle
Ich denke, Paarprogrammierung scheitert aus sozialen und praktischen Gründen. Im Wesentlichen bitten Sie eine Person, unter ständiger Aufsicht zu arbeiten, und die andere Person, nur Löcher zu stechen.
Was unvermeidlich nach einer Weile passiert, ist, dass sich das Paar aufteilt, um "E - Mails zu überprüfen" oder "Sie überprüfen das Live - Problem weiterhin schlecht" usw
Anstatt die Code-Ausgabe zu verbessern, wird die Lautstärke verringert. Beides aus praktischen Gründen: "Ich muss zu Mittag essen / mich nicht mehr synchron mit dir treffen" und "Ich warte nur, bis Bob fertig ist, bevor ich nach einem erneuten Pairing frage. Ich möchte nicht gesehen werden, wie ich ihn quäle."
Was die gepriesenen Vorteile angeht, so gibt es viele gängige Praktiken, mit denen diese auf einfachere und effektivere Weise erreicht werden
quelle
Zwei leitende Entwickler zu einer "Schmerzprogrammierung" zu bewegen, wenn sie zuversichtlich sind, dass sie die Aufgabe erfüllen können, ist einer der größten Nachteile.
quelle