Sollten Junior-Programmierer als Code-Reviewer in die Projekte von Senior-Programmierern einbezogen werden?

55

Eines meiner Teammitglieder, ein Junior-Programmierer, verfügt über beeindruckende Programmierkenntnisse für sein Erfahrungsniveau.

Und ich glaube, dass ich bei Code-Überprüfungen den Schwerpunkt auf das Lernen legen und nicht auf Fehler hinweisen muss.

Aber sollten Junior-Programmierer an Code-Überprüfungen für Senior-Programmierer beteiligt sein? Oder sollten Code Reviews nur von Programmierern mit entsprechender Erfahrung besucht werden?

Md Mahbubur Rahman
quelle
54
Worum geht es bei all dem "Junior" - und "Senior" -Stoff? IMO, ob ein Programmierer qualifiziert ist, den Code anderer Leute zu überprüfen oder nicht, sollte nach Fähigkeit und Erfahrung bestimmt werden - nicht nach Titel ....
Anthill
23
Und der Titel sollte normalerweise nach Können und Erfahrung festgelegt werden. Wenn dieser Junior gut genug ist, um den Seniorenkodex zu überprüfen, ist es an der Zeit, seinen Titel zu ändern.
SuperM
18
Aber manchmal wird dieser Titel durch HR-Politik und Spiele bestimmt :)
Michal Franc
4
Was genau meinen Sie mit "Junior-Programmierern"? Sind diese Personen mit weniger Erfahrung in der Anwendung oder einfach weniger Erfahrung in der Industrie? Meiner Erfahrung nach ist es möglich, dass ein Junior-Mitarbeiter die erfahrenste Person in einem bestimmten Projekt ist, weil er am längsten oder in letzter Zeit daran gearbeitet hat.
Thomas Owens
4
@ThomasOwens, Mit "Junior-Programmierer" meine ich die Leute mit weniger Erfahrung in der Industrie.
Md Mahbubur Rahman

Antworten:

62

Der Hauptzweck einer Codeüberprüfung ist das Auffinden von Fehlern oder möglichen Problemen. Die erforderlichen Teilnehmer an der Überprüfung sollten die Personen sein, die am besten geeignet sind, um diese Probleme zu identifizieren, unabhängig von ihrem Titel oder Dienstalter.

Wenn zum Beispiel eine Anwendung in Python entwickelt wird und der Junior Engineer mehr Erfahrung mit der Python-Sprache hat als der Senior Engineer, der den Code geschrieben hat, dann sind sie möglicherweise eine wertvolle Hilfe, wenn es darum geht, alternative Methoden aufzuzeigen, um etwas zu tun, aber sie Möglicherweise haben Sie auch weniger Kenntnisse über das gesamte System.

Berücksichtigen Sie neben der Erfahrung mit Tools und Technologien auch die Erfahrung im Anwendungsbereich. Jemandem mit 20 Jahren Erfahrung, aber nur 1 oder 2 in der Finanzbranche kann geholfen werden, indem ein insgesamt weniger erfahrener Entwickler mit nur 5 Jahren Erfahrung in der Finanzbranche seine Arbeit überprüft.

Das Einladen weniger erfahrener Mitarbeiter zur Beobachtung und Teilnahme am Codeüberprüfungsprozess kann auch hilfreich sein, um eine Codebasis zu erlernen, Fragen zu stellen und zu erfahren, was von ihnen nicht nur in Codeüberprüfungen, sondern auch in der Datenbank erwartet wird Code, den sie produzieren. Wahrscheinlich möchten Sie jedoch nicht zu viele Personen in den Prozess einbeziehen (anstatt sich auf die Personen zu konzentrieren, die die Codeüberprüfung und deren Zweck voll unterstützen können).

Dies gilt wirklich für jede Art von Überprüfung - Anforderungen, Design, Code ...

Thomas Owens
quelle
4
+1 für "Die erforderlichen Teilnehmer an der Überprüfung sollten die Personen sein, die am besten geeignet sind, diese Probleme zu identifizieren, unabhängig von ihrem Titel oder Dienstalter." Und auch für eine hervorragende Antwort.
Md Mahbubur Rahman
60
"Der Hauptzweck einer Codeüberprüfung ist das Auffinden von Fehlern oder möglichen Problemen." Stimme überhaupt nicht zu. Der Hauptzweck einer Code-Überprüfung ist der Wissensaustausch. Der zweite Zweck einer Codeüberprüfung ist die Festlegung eines Codierungsstandards. Fehler, die bei der Überprüfung gefunden wurden, sind mehr Glück als Urteilsvermögen. programmer.97things.oreilly.com/wiki/index.php/Code_Reviews
pdr
8
@pdr Ein Codierungsstandard sollte lange vor dem Schreiben der ersten Codezeile festgelegt werden. Wenn Sie Bewertungen verwenden, um den Standard festzulegen, ist es zu spät. Es ist vielleicht ein guter Zeitpunkt, um den Codierungsstandard während der Entwicklung anzupassen - Sie können Überprüfungen verwenden, um auf Schwachstellen hinzuweisen oder Verbesserungen des Standards vorzuschlagen, aber ich kann mir nicht vorstellen, ein Entwicklungsprojekt ohne einen Standard zu starten (auch wenn es nur so ist die vorgeschlagenen Richtlinien der Sprache).
Thomas Owens
5
Woher wissen Sie überhaupt, was Sie in die Kodierungsstandards einbauen müssen, bevor das Projekt beginnt, und es wird deutlich (durch die Kodierungsprüfung), dass verschiedene Teammitglieder auf unterschiedliche Weise an das gleiche Problem herangehen? Wir sprechen nicht über die Schreibweise von Methodennamen, bei denen es im Allgemeinen Sprachstandards gibt, sondern über Dinge wie NUnit vs MSTest. Repository-Muster; die Fähigkeit zu sagen "Hey, ich habe bereits einen Wrapper für WCF-Kunden geschrieben. Schau dir meinen an, nimm das Beste von jedem und mache ihn zum Standard." Dieses Zeug kommt nur aus Code-Reviews und ist der beste Grund, sie zu machen.
pdr
4
Unit-Test-Framework war wahrscheinlich ein schlechtes Beispiel, aber es ist beispielsweise üblich, dass zwei verschiedene Entwicklungen erfordern, dass eine Datei entpackt wird. Möglicherweise verwenden zwei verschiedene Entwickler unterschiedliche Bibliotheken, da sie diese bereits verwendet haben. Sie können nicht ALLE diese Diskussionen vor sich haben, oder Sie werden in mehr Meetings als in der Entwicklung aufgehängt. Der Austausch von Wissen durch Code-Überprüfung ist die wichtigste Maßnahme, um sicherzustellen, dass sich diese Probleme nicht ausbreiten.
pdr
81

Sollten Junior-Programmierer als Code-Reviewer in die Projekte von Senior-Programmierern einbezogen werden?

Ja, das sollten sie. Es ist eine gute Lernerfahrung, den Code anderer Leute zu lesen. (Und das gilt sowohl für guten als auch für schlechten Code. Man würde allerdings hoffen, dass der Code eines älteren Entwicklers nicht schlecht ist ...)

Offensichtlich ist es unklug, nur Junioren die Codeüberprüfung durchführen zu lassen. Und unklug, zu hohe Erwartungen an die Junioren in Bezug auf das zu stellen, was sie finden können. Sie könnten jedoch auch von den neuen Erkenntnissen überrascht sein, die die Junior-Programmierer mitbringen können.


Eine andere Antwort erwähnte, dass Junioren eingeschüchtert sind. Darum sollte es bei der Codeüberprüfung NICHT gehen ... weder für die Überprüften noch für die Überprüfer. In diesem Fall muss Ihre Gruppe die Art und Weise ändern, in der sie ihre Codeüberprüfungen durchführt ... und möglicherweise müssen die Einschüchterer in Einklang gebracht werden.

Stephen C
quelle
Ich denke , was mouviciel bedeutet, dass die Senioren Code einschüchternd sein kann, nicht die Senioren selbst (wenn das der Fall ist, dann ja, das Team hat ernstere Probleme als der Code zu überprüfen bekommt).
Yannis
6
@YannisRizos - 1) Ich lese es nicht so. 2) Hier kommt "es ist unklug, zu viel zu erwarten" ins Spiel. Wenn der Senioren-Code "einschüchternd" ist, dann ist es besonders gut für die Junioren-Entwicklung, zu versuchen, ihn zu lesen / verstehen.
Stephen C
1
Zu lernen, wie die erfahrenen Programmierer denken, ist ein weiterer wertvoller Bestandteil der Codeüberprüfung für Nachwuchsentwickler. Als ich ein Junior-Entwickler war, war es sinnvoller, wenn der Senior-Entwickler es mit mir besprach.
Michael Shopsin
38

Ich würde hinzufügen, dass, wenn ein "Junior" -Programmierer einen Seniorencode nicht verstehen kann , dies an sich ein gutes Maß für den Code ist. OK, es mag Zeiten geben, in denen es einfach nicht möglich ist, Code zu schreiben, den jeder verstehen kann, aber das sind hoffentlich Ausnahmen. Wenn nur 1 oder 2 Personen den Code verstehen können, was passiert, wenn diese Personen nicht verfügbar sind und ein Problem vorliegt es?

Den Menschen neue Herausforderungen zu geben, hilft ihnen, sich zu entwickeln. Es kann auch sein, dass nicht jeder für die Überprüfung von Code ausgeschnitten ist, es jedoch dogmatisch erscheint, darauf zu bestehen, dass jemand einen Titel hat (der von der Personalpolitik und den Spielen bestimmt wird ), bevor er für eine Überprüfung in Frage kommt.

Wie andere betont haben, kann eine Codeüberprüfung ein Zwei-Wege-Prozess sein. Es hilft jedem, die Codebasis zu verstehen, teilt also das Wissen, hilft den Junioren, neue und bessere Wege und Techniken von ihren Senioren zu lernen und hilft den Senioren, ihr Verständnis zu verfeinern und zu schreiben, um sicherzustellen, dass jeder dem Code folgen kann. Sie haben mehr Augen, die können fange Fehler.

Simon Martin
quelle
6
Das ist ein guter Anfangssatz.
pdr
Wenn der Code fortgeschrittenere Techniken verwendet (z. B. Set-Operationen anstelle von Arrays und Loops), erhöht jemand im Team sein Spiel.
Kevin Cline
1
Bei Codeüberprüfungen ist dies ein extrem starker Indikator dafür, dass der Code ein oder zwei Kommentare benötigt, wenn jemand fragen muss, was ein bestimmtes Codeteil tut.
Bryan Anderson
24

Der Zweck der Codeüberprüfung besteht darin, Probleme zu erkennen, die beim Testen nicht erkannt werden können, z. B. Wartbarkeitsprobleme und Eckfälle. Ich würde argumentieren, dass Junior-Programmierer in vielerlei Hinsicht besser für diesen Zweck geeignet sind :

  • Sie haben im Allgemeinen mehr Zeit zur Verfügung.
  • Es ist wahrscheinlicher, dass sie es langsam, Zeile für Zeile, angehen, um den Code zu verstehen.
  • Wenn Sie davon sprechen, dass Code wartbar ist, bedeutet dies, dass alle im Unternehmen und nicht nur Ihre Top-Programmierer. Das bedeutet, dass Ihre Junior-Programmierer den Code verstehen müssen, um ihn für wartbar zu erklären.
  • Es ist oft weniger wahrscheinlich, dass sie schlechte Annahmen treffen, weil sie darauf vertrauen, dass etwas so funktioniert, wie es funktionieren sollte.
  • Ihre Ausbildung in einer Programmiersprache ist jünger und lässt sich seltener mit langjähriger Erfahrung in einer anderen Sprache verbinden. Ein Senior könnte beispielsweise versehentlich eine Gewohnheit verwenden, die er aus C ++ übernommen hat und die zwar kompiliert, in Java jedoch auf subtile Weise anders funktioniert. Junioren erkennen solche Fehler leichter.
  • Code-Prüfer müssen nur Probleme identifizieren , nicht unbedingt eine bessere Lösung vorschlagen. Sie äußern sich oft wie folgt: "Ich kann nicht wirklich herausfinden, wie ich es besser machen kann, aber dieser Teil ist wegen all der Wiederholungen wirklich verwirrend." Ein erfahrener Programmierer kann die Verbesserungen dann leicht vornehmen, obwohl er das Problem zunächst nicht bemerkt hat.

Das heißt nicht, dass es keine anderen Möglichkeiten gibt, wie erfahrene Programmierer besser für Überprüfungen geeignet sind. Mein Punkt ist jedoch, dass Sie einen schlechten Dienst leisten, wenn Sie die Vielfalt Ihres Teams nicht voll ausnutzen.

Karl Bielefeldt
quelle
13

Junioren werden oft gebeten, den Code zu pflegen. Es ist wichtig, dass sie ihn verstehen können.

Manchmal sind Junioren die einzigen Personen, die den Code der Senior-Entwickler lesen können. Sollte der Code warten, bis er zur Qualitätssicherung weitergeleitet wird (ohne eine Codeüberprüfung wird nichts aus dem Entwickler herausgedrückt, und ich gehe auch von einer solchen Codeüberprüfung aus), weil der Chef des Senior im Urlaub ist?

Ich habe Junioren auch ausdrücklich gebeten, einen Code zu überprüfen, wenn ich wusste, dass sie in Kürze etwas Ähnliches für einen anderen Kunden tun würden, oder wenn ich wusste, dass sie an etwas anderem gearbeitet hatten, das ähnlich war oder bestimmte Fähigkeiten besaßen.

Wenn der Code ziemlich einfach ist, lasse ich die Überprüfung oft von einer Junior-Person durchführen. Warum die Zeit der älteren Person verschwenden, wenn die jüngere Person in der Lage ist, die Arbeit zu erledigen? Wenn Junioren sich durch die Überprüfung des Senioren-Codes eingeschüchtert fühlen, lassen Sie sie zunächst die einfacheren Teile betrachten. Schließlich kommt man nicht daran vorbei, jünger zu sein, bis man aufhört, sich eingeschüchtert zu fühlen.

Ich habe oft festgestellt, dass, wenn ich den Code einer jungen Person erklären muss, die ihn nicht versteht, ein Fehler auftritt, den ich gemacht habe (normalerweise unter der Annahme), und dass kein erfahrener Code-Prüfer ihn abgefangen hätte, weil der Code ausgeführt wird aber tut nicht genau das, was beabsichtigt war. Nur das Erklären der Dinge hilft dem Entwickler häufig dabei, ein Problem zu erkennen, ohne dass der Code-Prüfer es findet. Da erfahrene Leute nicht oft Schritt für Schritt durch den Code geführt werden, können solche Dinge leichter gefunden werden, wenn ein Junior die Überprüfung durchführt.

Ich finde, dass die Beteiligung von Junior an Reviews mehrere gute Effekte hat. Erstens werden sie sicherer, wenn sie den Code einer älteren Person verstehen können. Es macht sie noch sicherer, wenn sie einen Fehler in diesem Code finden können.

Es setzt sie Denkprozessen außerhalb ihrer eigenen aus und lässt sie andere Arten des Umgangs mit Dingen erkennen. Das ist mir schon als Seniorin passiert - eine andere Art der Problemlösung zu sehen, kann ein Augenöffner für neue Möglichkeiten sein.

Es hilft ihnen, den Code anderer Leute zu lesen und gibt ihnen die Möglichkeit zu fragen, was der Code tut, während er noch in den Köpfen des Autors ist. Das ist viel besser, als das Ding sechs Monate später warten zu müssen, wenn der Autor schon lange nicht mehr da ist oder mit einem anderen Projekt beschäftigt ist und keine Zeit für Fragen hat.

Es ist gut für die Senioren, da die Fragen potenzielle Bereiche aufdecken, in denen der Junior schwach ist und Mentoring benötigt (damit er mehr Verantwortung übernimmt und den Senioren mehr Zeit für andere Arten von Aufgaben lässt), oder Bereiche, in denen der Kodex einfach nicht klar ist mit Ausnahme des Autors (was bedeutet, dass dem Autor in einem Jahr möglicherweise nicht einmal klar ist, wann er geändert werden muss). Es hilft auch den Senioren zu erkennen, dass die Junioren klüger sein können, als sie es bisher zugetraut haben. Es hilft, alle auf einem professionellen Stand zu halten. Wenn Sie Junioren ausschließen, implizieren Sie eindeutig, dass sie nicht in der Lage sind, den Code zu verstehen, der psychologisch bedauerlich ist.

Die Überprüfung des Seniorenkodex durch Junioren kann zu mehr professionellem Respekt in Ihrer Organisation führen. Senioren stellen möglicherweise fest, dass sie die Junioren unterschätzt haben, und Junioren stellen möglicherweise fest, dass die Senioren mehr wissen, als sie ihnen zugetraut haben. Junioren denken manchmal, sie hätten größere Fähigkeiten als sie. Der Kontakt mit Code, den sie nicht schreiben können, ist gut für diese Leute, weil sie allmählich erkennen, dass sie noch viel mehr lernen müssen. Es wird auch die besten von ihnen anspornen, die Fähigkeiten zu erlangen. In der Schule verstehen die B-Schüler manchmal nicht, warum sie kein A bekommen haben, bis ihnen jemand ein Beispiel für die A-Stufe der Arbeit zeigt. Gleiches gilt für Junioren und Senioren bei der Codeüberprüfung.

HLGEM
quelle
7

Meine Antwort lautet: Manchmal . Es wird von Programmierer zu Programmierer und von Aufgabe zu Aufgabe variieren.

Zum:

  • Wenn Sie möchten, dass diese Junioren lernen, wie sie eine effektive Codeüberprüfung durchführen, können sie am besten sehen, wie die Senioren dies tun.
  • Ein Junior-Programmierer verfügt möglicherweise über mehr Erfahrung als ein Senior-Programmierer in einer bestimmten Sprache / Domäne / etc.
  • Indem sie Junioren dazu zwingen, den Seniorenkodex zu bewerten, werden sie unweigerlich etwas lernen. Pair-Programmierung wird jedoch eine effektivere Methode sein, da alle Fragen, die der Junior hat, sofort beantwortet werden können.
  • Niemandes Code ist heilig und niemand ist so gut, dass sein Code nicht überprüft werden sollte. Wenn Sie dies nicht tun, wer wird den Code Ihrer Top-Jungs überprüfen?
  • Nicht alle Junioren sind gleich, und nicht alle Senioren sind gleich. Manchmal gibt es vielleicht keine große Lücke, also lass dich nicht auf Jobtitel ein.

Gegen:

  • Es besteht die Gefahr, dass die Bewertungen mit Nicht-Problemen von Junioren überfrachtet werden.
  • Das erforderliche Niveau an Kenntnissen / Fähigkeiten kann die Fähigkeiten des Junioren übersteigen. Dies wird nicht nur ihre Zeit verschwenden, sondern sie möglicherweise auch demoralisieren.
vaughandroid
quelle
5

Ich bin der festen Überzeugung, dass jeder im Team an beiden Seiten der Codeüberprüfung beteiligt sein sollte. Junioren sollten den Senior Code überprüfen und umgekehrt. Warum beides? Denn in der Regel geht es nicht nur darum, ob Code "das Problem löst". Ich kann Ihnen nicht sagen, wie oft ich jemandem einen Code erklären musste und wie ich ihn am Ende der Erklärung plötzlich viel besser machen kann. Code Reviews dienen wahrscheinlich 3 Zwecken:

  1. Stellen Sie sicher, dass der Code korrekt ist
  2. Lassen Sie den Autor darüber nachdenken, wie andere seinen Code sehen
  3. Holen Sie sich das Feedback des Lesers, was verbessert werden könnte, und ein allgemeines zweites Augenpaar

Ich bin ein Junior und ich überprüfe häufig älteren geschriebenen Code. Es handelt sich um eine allgemeine Unternehmensrichtlinie, nach der "jeder Code von jemandem überprüft wird". Ich lerne viel von diesen, wenn sie ihren Code überprüfen und die Möglichkeit haben, Fragen zu stellen, warum Dinge auf eine bestimmte Art und Weise getan werden. Und manchmal schlage ich einen saubereren Weg vor, um ein bestimmtes Stück Code und so weiter zu machen. Viel seltener als Leute, die mir sagen, wie ich meinen Code verbessern kann, aber es ist mindestens einmal passiert.

Es ist auch wichtig, wie formal Ihre Codeüberprüfungen sind. Unsere sind sehr informell und bestehen aus "Hey, sieh dir meinen Code an", das in den Kabinen oder in einem privaten IRC-Kanal gesagt wird. Ich könnte mir vorstellen, wenn Sie den Code in einer formelleren Umgebung überprüfen, wäre der Junior wahrscheinlich viel mehr eingeschüchtert, wenn er den Code eines Senioren überprüft.

Earlz
quelle
2

Absolut, Junior-Ingenieure sollten zumindest zeitweise den Code der Senior-Ingenieure überprüfen.

Nach meiner Erfahrung sieht der Rezensent in einer Eins-zu-Eins-Code-Überprüfung nur selten einen Fehler, den der ursprüngliche Kodierer übersieht, unabhängig davon, ob der Rezensent älter oder jünger ist. der Rezensent muss nicht einmal menschlich sein . Andererseits ist es sehr verbreitet, dass der ursprüngliche Codierer beim Erklären des Codes einen Fehler erkennt, und je jünger der Prüfer ist, desto wahrscheinlicher ist dies aufgrund der erforderlichen Erklärungstiefe.

Einige meiner Meinung nach häufig übersehene Vorteile der Codeüberprüfung, die auf lange Sicht möglicherweise wichtiger sind als das Abfangen von Fehlern:

  • Teilen des Wissens darüber, was in der Codebasis tatsächlich vor sich geht: "Warten Sie, ich glaube, Bill hatte eine Klasse, die X beherrscht. Wir müssen keine neue schreiben."
  • Wissen über gute Techniken und Programmierstile teilen.

In diesen beiden Aspekten profitiert ein Junior-Reviewer in der Regel mehr als ein Senior-Reviewer.

Russell Borogove
quelle
2

Junior-Programmierer sollten unbedingt Code-Reviews für ihre älteren Kollegen durchführen!

Sie sollten jedoch nicht der einzige Rezensent sein . Koppeln Sie sie mit einem erfahrenen Entwickler per Code Review.

Es gibt eine Vielzahl von Vorteilen:

  • Der Autor wird gezwungen sein, mehr von seinem Code zu erklären. Das Durchsprechen Ihres Codes ist eine der besten Methoden , um Probleme damit zu finden, oder eine bessere Methode, dies zu tun.

  • Der Autor wird Schwachstellen in seinem Code finden. Es ist wahrscheinlicher, dass der Junior-Entwickler von einigen der fortgeschritteneren Chunks verwirrt wird. Häufig sind diese "zu knifflig" und könnten von einer Vereinfachung profitieren.

  • Der Junior-Entwickler lernt bessere Codierungspraktiken. Code Reviews sind eine Gelegenheit, mit gutem Beispiel voranzugehen.

  • Der Junior-Entwickler wird ein effektiverer Code-Prüfer sein. Codeüberprüfung ist schwierig . Je erfahrener jeder mit Codeüberprüfungen ist, desto schneller und effektiver werden Codeüberprüfungen.

  • Der Junior-Entwickler verfügt über tiefere Kenntnisse der Codebasis. Egoistisch sein! Wenn Sie die Junior-Entwickler frühzeitig einschalten, können Sie sie früher an sie weitergeben.

  • Der Junior-Entwickler wird sich mehr involviert fühlen. Der Junior-Entwickler wird anfangen, den "Senior" -Code (und seine Kollegen) als weniger fremd und einschüchternd zu betrachten. Dies ist ein enormer und oft übersehener Vorteil von Code Reviews.

  • Der Junior-Entwickler ist ein frischer Augenschmaus. Sie sind nicht so indoktriniert wie jemand, der lange Zeit an der Codebasis gearbeitet hat. Der Junior-Entwickler wird beim Stellen von Fragen mit größerer Wahrscheinlichkeit auf verschiedene Arten der Ausführung von Aufgaben hinweisen. Schüttle ihre wilderen Kommentare nicht ab, ohne zumindest ein wenig Rücksicht zu nehmen!

  • Die Senior-Entwickler werden zur Rechenschaft gezogen. Ich habe oft Situationen erlebt, in denen ältere Entwickler dazu neigen, den Code des jeweils anderen zu beschönigen (Vertrauen, Faulheit usw.). Ein zusätzlicher Satz von Augen hilft, es zu entmutigen.

Der Nachteil ist, dass alle Beteiligten eine angemessene Menge Zeit damit verbringen werden, Codeüberprüfungen durchzuführen. Daher kann es ein bisschen schwierig sein, es an das Management zu verkaufen. Die Vorteile überwiegen jedoch bei weitem das langsamere Tempo.

Nevir
quelle
0

Eine Codeüberprüfung dient zum Überprüfen von Code, nicht zum Lernen. Wenn ich ein Junior-Programmierer wäre, würde ich mich einschüchtern lassen, den Code von Senioren zu überprüfen.

Auf der anderen Seite ist das Lesen des Senior-Codes eine großartige Lernmethode, vorausgesetzt, der Senior steht für die Beantwortung aller Fragen zur Verfügung.

Zwei Alternativen könnten sein:

  • Lassen Sie Junioren an Code-Review-Meetings teilnehmen und jeden Teilnehmer zu Lehr- / Lerndiskussionen einladen
  • Paarprogrammierung üben
mouviciel
quelle
7
Code Reviews können Lernerfahrungen sein. Das heißt, ich stimme voll und ganz zu, das ist nicht ihr primärer Zweck. Idealerweise sollten alle Teammitglieder involviert sein, aber ich verstehe, dass es eine Weile dauern wird, bis ein (wirklich) Junior-Entwickler sicher genug ist, auf Fehler hinzuweisen (vorausgesetzt, sie kann sie zuerst identifizieren, was ich auch nicht tun würde ehrlich gesagt von einem Junior, der den Kodex eines Senioren überprüft, zu erwarten).
Yannis
Das OP hat ausdrücklich gesagt, dass der Junior-Programmierer gute Fähigkeiten hat. Weniger Erfahrung bedeutet nicht immer schlechtere Codeüberprüfungen.
Cascabel,
@Jefromi: Das OP hat ausdrücklich gesagt, dass es den Zweck der Codeüberprüfung auf Lernen festlegen möchte. Ich sage nur, dass das nicht das ist, wofür sie gedacht sind.
Mouviciel
Hm, ich denke, wir verstehen das OP anders - in dem Post steht der Schwerpunkt auf dem Lernen, aber es heißt auch "als Code-Reviewer beteiligt", was bedeutet, dass der Junior-Programmierer nicht die einzige Person ist.
Cascabel