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.