Ich weiß, dass die Paarprogrammierung eine agile Softwareentwicklungstechnik ist, bei der zwei Programmierer an einer Arbeitsstation zusammenarbeiten. Einer, der Fahrer, schreibt Code, während der andere, der Beobachter, jede Codezeile überprüft, während sie eingegeben wird.
Aber ich frage mich nur, ob die Strategie in dem Fall noch funktioniert. Beispielsweise
- wenn sie eine ganz andere Programmierkenntnis haben.
- wenn man nie erfahrungen in der problemdomäne hat während andere haben.
- Ist es noch in Ordnung, wenn die Programmierkenntnisse niedrig sind?
Könnten Sie die Paarprogrammierungsstrategie im obigen Fall vorschlagen?
agile
pair-programming
Sakares
quelle
quelle
Antworten:
Unter der Annahme, dass die erfahrenere Person in dem Paar das Temperament hat, die andere Person zu betreuen, würde die Paarung einer Person mit wenig Erfahrung in der Sprache oder im Problembereich mit einer erfahrenen Person den Wissenstransfer erleichtern. Die weniger erfahrene Person hätte einen Mentor, der sie in der Sprache, der Domäne, der Anwendung und den Best Practices oder Konventionen des Teams unterrichtet.
Im C2-Wiki gibt es eine interessante Zusammenfassung zum Wissenstransfer mithilfe der Paarprogrammierung . Die erfahrenere Person, die als Team-Mentor herangezogen wurde, lernte viel von den Junior-Programmierern und sein Wissen nahm sogar zu, da sie mit weniger erfahrenen Junior-Software-Entwicklern zusammenarbeitet. Es gibt noch einige andere Geschichten darüber, wie Experten-Programmierer mit Domain-Experten zusammenarbeiten.
quelle
Dies ist genau der Anwendungsfall, für den die Paarprogrammierung gemacht wurde: Erfahrungsaustausch zwischen altem Bart und junger Heuschrecke.
Dies ist ein wechselseitiges Teilen: Bewegliche Insekten haben dem rheumatischen Gehirn viel zu lehren.
quelle
Als ich in mein aktuelles Team befördert wurde, war ich der Neuling in J2EE, aber ich war der Experte auf diesem Gebiet. Mein Senior (der neue Teamleiter) war erfahren in J2EE, aber nicht in der Plattform.
Ich glaube, ich habe in diesen 4 Monaten mit Pair Programming mehr über Java2EE gelernt als in einem Buch, und der Teamleiter hat auch etwas über die Plattform gelernt.
Die Erfahrung Lücke zwischen den beiden ist der Schlüssel zur Paarung Programmierung imho.
quelle
Ich werde meine Erfahrung beschreiben und versuchen, eine "Strategie" daraus zu machen.
Ich habe mal mit einem kompletten Nicht-Programmierer gepaart. Er war Experte für das Thema des von uns entwickelten Softwareprodukts. Im Gegenteil, ich hatte keine Erfahrung im Problembereich. Und er war im Moment auch mein Vorgesetzter (ich weiß, dass das seltsam klingen mag :)
Der Hauptvorteil dieser Methodik war, dass ich die Implementierung vieler Dinge aus seinem Wissensbereich erklären musste, um die Genauigkeit der Implementierung und sein Verständnis des Prozesses zu gewährleisten, was bedeutete, dass er verstand, warum dies Zeit in Anspruch nahm.
Ein weiterer Vorteil ist die einfache Konzentration auf die Aufgabe, keine Ablenkungen (ha-ha, stellen Sie sich vor, Sie öffnen Twitter vor der Nase Ihres Chefs).
Es war jedoch manchmal ziemlich einschüchternd, da sogar eine Teepause zu einer "Ablenkung von der Arbeit" wurde (nicht aus seiner Sicht; es war einfach unpraktisch, nach einer Pause zu fragen und so weiter).
Das ist also keine Paarprogrammierung, da er den Code während der Eingabe so gut wie nicht überprüfen konnte. Es schien jedoch eine vernünftige Strategie zu sein (zumindest für einige Zeit). Letztendlich funktionierte es überhaupt, da sowohl die Entwicklungsmethodik (ich meine, es waren keine komplexen Software-Designtechniken wie OOP-Patterns beteiligt) als auch die Inhalte relativ einfach waren. Dies würde nicht funktionieren, wenn wir einen Compiler entwickeln müssten, denke ich. Ich glaube, es könnte immer noch funktionieren, wenn ein Beobachter, der kein Programmierer ist, an der Entwicklung kleiner, klar definierter Teile beteiligt ist. Sagen wir, es ist in Ordnung, dass er die Programmierung einer Funktion "Berechne den Parameter X aus Y und Z mit einem gegebenen Algorithmus" beobachtet, aber es ist möglicherweise nicht in Ordnung, dass er den gesamten Systementwurfsprozess beobachtet (dh die Entwicklung der Softwarearchitektur, dh die Hierarchie von Klassen,
Ich denke, es würde noch besser funktionieren, wenn er grundlegende Programmierkenntnisse hätte, da ich nicht erklären müsste, was ein Array ist.
Ich hoffe es hilft :)
quelle
Nach meiner Erfahrung kann es ein Problem sein, wenn beide Programmierer über geringe Kenntnisse verfügen. In diesem Fall besteht häufig die Tendenz, das Kopieren und Einfügen zu versuchen. Ich denke, es kann eine gute Idee sein, zwei Anfänger-Programmierer nicht zusammenzupaaren, bis sie ein bestimmtes, vom Team festgelegtes Level erreicht haben.
Andernfalls kann Pair Programming eine großartige Idee sein, vorausgesetzt natürlich, zwei Jungs sind bereit zu teilen, was sie wissen. Dies ist nicht nur eine großartige Möglichkeit, alle über den Quellcode auf dem Laufenden zu halten, sondern auch ein guter Ort für neue Ideen und Diskussionen.
quelle
Solange die Teammitglieder Respekt voreinander haben, kann die Paarprogrammierung ungeachtet der Erfahrung der Programmierer von Vorteil sein. Selbst wenn ein Junior-Programmierer nur ein paar Syntaxfehler (die wir alle machen!) Vor dem erfahreneren Programmierer entdeckt, spart das immer noch Zeit beim Kompilieren von Code.
Ich denke auch, dass es die Einstellung eines Programmierers gegenüber den Fähigkeiten anderer Mitglieder seines Teams öffnen kann, besonders wenn sie offen sind und erwarten, dass jeder Ihnen etwas beibringen kann.
quelle