Wie kann man Nachwuchsentwickler zur Teilnahme an der Codeüberprüfung ermutigen?

13

Ich arbeite derzeit als Senior-Entwickler mit drei Junior-Entwicklern unter mir und habe einen Codeüberprüfungsprozess eingeführt, um die Qualität des Codes zu verbessern, der in die Produktion geht.

Ich bin der Ansicht, dass es für uns alle sehr vorteilhaft ist, die Arbeit des anderen zu überprüfen, aber nach etwa 5 Wochen des Prozesses bin ich der einzige, der Kommentare im Tool (BitBucket) abgibt.

Ich denke, es gibt teilweise kulturelle Probleme bei der Arbeit und vielleicht eine natürliche Zurückhaltung, falls ihre Kommentare falsch sind. Aber gibt es eine Möglichkeit und ich kann den Junioren helfen, sich wohler zu fühlen, wenn sie meine und die Arbeit der anderen kritisieren?

Graham S
quelle
2
Ich frage mich, ob dies möglicherweise keine bessere Frage für Workplace.SE ist, sondern meine eigenen 2 Cent als Junior-Entwickler. Während meines Praktikums war ich aus mehreren Gründen sehr nervös, an Codeüberprüfungen teilzunehmen: mangelnde Fähigkeiten, mangelnde Vertrautheit mit der Codebasis usw. Ich stellte bald fest, dass die Teilnahme an der Codeüberprüfung bei beiden Aspekten hilfreich war ( besonders vertraut) und war auch sehr hilfreich, weil ich das Gefühl hatte, dass unsere Codebasis etwas ist, an dem ich ein großes Interesse hatte, und deshalb wollte ich einen Beitrag leisten. Ich habe definitiv nicht immer großartige Kommentare hinterlassen, aber ich wusste es nicht, bis ich (Fortsetzung)
Dannnno
2
(Fortsetzung) ausprobiert, und es hat mir geholfen, besser mit dem gesamten Team zusammenzuarbeiten. Ich denke, wenn Sie versuchen zu erklären, warum es für Sie, das Team und die Codebasis hilfreich ist, daran teilzunehmen, auch wenn ihre Kommentare falsch sind. Wenn ihre Kommentare falsch sind, ist das fast besser, denn dann können sie daraus lernen.
Dannnno

Antworten:

15

Für mich lautet die Frage hier: "Was suchen Sie, damit Ihre Nachwuchsentwickler aus den Code-Überprüfungen herauskommen?". Für mich ist es möglicherweise das Wichtigste, dass die Nachwuchsentwickler lernen, indem sie sich den hoffentlich guten Code ansehen. Wenn sie auch Probleme in Ihrem Code finden, ist das ein Bonus.

Wenn Sie auf der Suche nach Nachwuchskräften sind, die aus den Code-Überprüfungen lernen möchten, müssen Sie vor allem ein Umfeld schaffen, in dem Lernen geschätzt und nicht als Zeitverschwendung angesehen wird. Dies bedeutet eine Reihe von Dingen:

  • Eine blöde Frage gibt es nicht . Wenn jemand ein bisschen Code nicht versteht, warum Sie ein bestimmtes Muster verwendet haben oder was auch immer, muss er sich frei fühlen, zu fragen, ohne jemals das Gefühl zu haben, dass er entweder Ihre Zeit oder die der anderen Entwickler verschwendet .
  • Lernzeit ist gut investierte Zeit . Sie möchten, dass Ihre Nachwuchsentwickler Zeit damit verbringen, sich Code anzuschauen und daraus zu lernen, da sie dadurch in Zukunft bessere und produktivere Mitarbeiter erhalten. Wenn es sich nicht um eine kritische Korrektur handelt, die jetzt überprüft werden muss , ermutigen Sie sie, mehr als weniger Zeit für die Codeüberprüfung aufzuwenden.
  • Führungskräfte haben nicht immer Recht . Nur weil du das schon länger tust, heißt das noch lange nicht, dass du recht hast. Wenn sie glauben, einen Fehler gefunden zu haben, haben sie wahrscheinlich recht. Wenn sie der Meinung sind, dass ein anderes Designmuster für dieses Stück Code geeignet ist, können sie dies gerne sagen, ohne negative Rückmeldungen zu erhalten.
Philip Kendall
quelle
Vielen Dank für den Input. Ich werde darüber nachdenken und morgen in unserem Stand aufstehen
Graham S,
1
Ich würde hinzufügen: Sie werden zum Experten, indem Sie Fehler machen und daraus lernen. aus praktischen Gründen könnte es für die sr hilfreich sein. Entwickler erzählen einige Kriegsgeschichten über ihre Misserfolge in der Vergangenheit.
5

Lassen Sie sich jede Woche zur festgelegten Zeit von Code-Review-Meetings persönlich beraten. Ich habe dies meinem Teamkollegen so verkauft (wir sind eigentlich beide leitende Entwickler, aber was auch immer):

"Die Codeüberprüfung ist teilweise für mich da, um Ihren Code ein bisschen besser kennenzulernen und zu wissen, was auf Ihrer Seite vor sich geht, falls Sie eines Tages von einem Lastwagen angefahren werden und ich den Befehl bekomme, Ihren Sprint zu beenden. Aber hauptsächlich ist es das." Damit Sie Ihren Code jemand anderem erklären können, greift er in einen anderen Teil Ihres Gehirns ein, und häufig führt Ihre Erklärung und / oder ihre Fragen oder Kommentare dazu, dass Sie sich an etwas erinnern, das Sie vergessen haben im Code zu tun, oder Sie könnten einen besseren Weg finden, ihn lesbarer zu machen, oder ihn besser zu gestalten. Das führt zu schönerem Code. "

Ich betrachte es gerne als Show-and-Tell. Die Leute dürfen ihre Arbeit ihren Kollegen vorführen. Es geht nicht darum, dass Ihre Kollegen bei Ihrer Arbeit etwas falsch finden, was niemandem gefällt. Es geht darum, Ihre Kollegen mit Ihrem großartigen Code zu beeindrucken, den jeder mag.

Ich denke jedoch, dass ich Tools zur Codeüberprüfung verwende, bei denen es keine menschliche Interaktion, keine Besprechung in einem Raum oder ein Whiteboard gibt. Es ist nicht so, dass es solche Tools nicht geben sollte, aber es sollte etwas sein, auf das Sie zurückgreifen sollten, wenn Sie während des Coderevisionsmeetings feststellen, dass eine eingehendere Überprüfung eines bestimmten Codeabschnitts erforderlich sein könnte. Dann könnten Sie einen der Junior-Entwickler damit beauftragen, den Code des anderen in einem bestimmten Bereich zu überprüfen.

CommaToast
quelle
+1 für die Einbeziehung eines anderen Teils Ihres Gehirns. Nach meiner Erfahrung, insbesondere als ich ein Junior-Entwickler war, ließ mich die Erkenntnis, dass mein Code einer Peer-Review unterzogen werden würde, auf Details achten, die ich ansonsten möglicherweise ignoriert hätte.
Laconic Droid
0

Sie können mit gutem Beispiel vorangehen. Sie können nicht defensiv werden, wenn jemand auf Ihre Fehler hinweist. Führen Sie eine Codeüberprüfung für Ihren eigenen Code durch und stellen Sie Verbesserungsbereiche fest. Teilen Sie dies mit dem Team. Schließlich werden sie erfahren, dass dies ermutigt wird und niemand dafür geschlagen wird, dass er einen Fehler in seinem Code hat.

Einen Job zu haben bedeutet, Verantwortung zu übernehmen und stolz auf deine Arbeit zu sein. Wenn die Codeüberprüfung ein Teil davon ist, sollte die Teilnahme an der Codeüberprüfung in die Bewertungen einbezogen werden. Ich habe Online-Kurse besucht, in denen die Teilnahme an Online-Diskussionen Teil der Note ist. Kommentare müssen ausgearbeitet werden. "Ich stimme zu" ist nicht akzeptabel.

Die Codeüberprüfung sollte den Code verbessern. Abhängig von Ihrer Situation kann dies an Verkaufszahlen, Benutzerbeschwerden oder einer anderen Bewertung gemessen werden, wenn Sie Code für den internen Gebrauch schreiben. Die Realität ist, dass Ihr Code einem bestimmten Zweck dient und Ihr Team daran gemessen werden sollte, wie gut es diesem Zweck dient. Diejenigen, die Sie bestimmen, tragen zum Erfolg bei und können sich anteilig an den Belohnungen beteiligen.

Konzentrieren Sie sich auf die Freigabe des Qualitätscodes. Das Ziel ist nicht, dass jeder sich gut fühlt, wenn er sich vor Käfern scheut. Ich schreibe schlechten Code; Ich muss den fehlerhaften Code reparieren. Das ist Arbeit und Leben. Ich hasse es, Fehler zu beheben, also versuche ich, sie zu vermeiden. Ich bin stolz auf meine Arbeit, daher stört es mich, wenn mein Code nicht funktioniert. Ich fühle mich schlecht für die Benutzer oder andere, die sich die Zeit nehmen müssen, um auf diese Dinge hinzuweisen, und es motiviert mich, das Problem beheben zu wollen.

Als Randnotiz: Wenn Sie ein Umfeld haben, in dem niemand konstruktive Kritik aussprechen oder akzeptieren kann, haben Sie ein Problem.

JeffO
quelle
-3

Der Prozess: Jemand möchte seine Änderungen vornehmen. Jemand ist als Prüfer zugewiesen und prüft die Änderungen. Anschließend werden die überprüften und festgelegten Änderungen getestet.

Wenn das Testen in der Änderung eingeführte Fehler feststellt, sind Autor und Prüfer gleichermaßen schuld.

Wenn Sie also eine Überprüfung ohne Kommentare durchführen, geraten Sie in Schwierigkeiten, es sei denn, der Code war perfekt.

gnasher729
quelle
5
1) Das Zuweisen von "Schuld" für Fehler ist eine großartige Möglichkeit, um Ihre Mitarbeiter zum Verlassen zu bewegen. 2) Das Zuweisen von Schuld an Nachwuchskräfte, die von leitenden Mitarbeitern geschriebene Fehler nicht entdeckt haben, ist doppelt schlecht.
Philip Kendall
2
@PhilipKendall Wenn mein Code einen Fehler aufweist, muss mich niemand beschuldigen. Ich bin professionell und sehr stolz auf meine Arbeit. Ist das eine Art New Age-Sache, bei der niemand etwas falsch macht und jeder einen Pokal für die Teilnahme bekommt?
JeffO
@PhilipKendall: Ich weiß nicht, wo du arbeitest ... Wo ich arbeite, sage ich "was für ein dummer Fehler, den ich gemacht habe" und der Rezensent sagt "und ich habe ihn auch verpasst" und dann lachen wir beide. "Schuld" bedeutet Verantwortung zu übernehmen, nicht mit einem Dummkopf in der Ecke zu stehen.
gnasher729
1
@ gnasher729 Ja. Aber niemand bekommt "Ärger" dafür.
Philip Kendall