Mein Team hat seit seiner Gründung, lange bevor ich dort gearbeitet habe, Pair-Programmierung im Rahmen eines meist "extremen Programmierens" durchgeführt. Die Paarprogrammierung ist der Standardzustand . Leute gehen nur dann wirklich singleton, wenn es eine ungerade Zahl gibt, oder gelegentlich für Ermittlungen, insbesondere wenn sie mit feindlichen Geräten herumspielen und versuchen, sie zum Laufen zu bringen.
"Junior / Senior" ist nicht der einzige Weg. "Intermediate / Junior" ist nützlich; Es hilft dem mittelschweren Mann, das Wissen, das er erlangt hat, zusammenzufassen, indem er ihn dazu zwingt, es jemand anderem mitzuteilen. "Intermediate / Intermediate" fordert zwei Personen heraus, die zusammenarbeiten, um ihr Wissen zu teilen, zu kommunizieren und als Teil eines Teams zu arbeiten. Und selbst wenn Sie zwei hochrangige Mitarbeiter haben, haben diese wahrscheinlich unterschiedliche Fachgebiete und können unterschiedliche Ansätze entwickeln. Die Aspekte des Wissensaustauschs enden nicht, wenn jemand ein Projekt nur vage "auf dem neuesten Stand" hält. Paarprogrammierung ist vielmehr der Inbegriff einer lernenden Organisation . Neue Techniken und Best Practices verbreiten sich schnell.
Paar Programmierung hilft auch , die Qualität des Codes (weniger Fehler) und die geistige Gesundheit des Codes zu halten (es ist nicht nur das tut , was er will, aber das tut , was es soll ... idealerweise ohne eine mehrwöchige Kaninchen- going down Loch, das das Falsche tut, oder zwei verschiedene richtige Dinge, die wild in Konflikt geraten). Das hilft den Programmierern, ihren Fokus zu behalten: Hier im Herzen des Silicon Valley, wo die 80-Stunden-Woche stattfindet, können wir nur 40 Stunden pro Woche arbeiten, weil wir acht Stunden pro Tag intensiv programmieren und die Dinge wechseln miteinander aus. (Wenn Sie länger Pair-Programmierung machen würden, würden Sie wahrscheinlich ausflippen. Oder zumindest ausbrennen.) Dies ist ideal für die Vereinbarkeit von Beruf und Familie und hilft Ihrem Unternehmen auch dann, wenn es auf eine schnelle Abwicklung ankommt (insbesondere bei geringer Latenz).
Es ist nicht alles, 100% Pfirsiche und Sahne; Ich stelle fest, dass die Paarprogrammierung gelegentlich ein Hindernis für die Anwendung intuitiver Gehirnprozesse darstellt, die bei bestimmten Problemen hilfreich sind. In letzter Zeit habe ich bei einer Memory-Leak-Aufgabe einige Zeit mit und ohne Paare verbracht. ohne eins fühlte ich mich freier, herumzuspielen und Experimente zu machen, ohne wirklich genau zu wissen, was ich gerade tat. Es gibt auch einige Vorteile, Singleton zu arbeiten, wenn man in der Lage ist, aus einer Laune heraus eine Tangente zu ziehen und bestimmte wilde Refactorings (die in der XP-Methodik geschätzt werden) durchzuführen.
Insgesamt überwiegen die Vorteile jedoch bei weitem die Kosten, und das Pairing hat sich für uns hervorragend bewährt: vom Start bis zur Akquisition durch ein größeres Unternehmen und unserer anschließenden Integration. (Apropos, die Paarprogrammierung hat uns geholfen, durch Expansion und trotz eines geringen Umsatzes eine Kontinuität der Kultur aufrechtzuerhalten.)
(Wir entwickeln eine Software-Appliance in Perl für einen Listenpreis von 4.000 bis 40.000 US-Dollar.)