Ich leite ein Team mit einem halben Dutzend leitender Ingenieure. Ich bin der festen Überzeugung, dass es für uns von großem Vorteil ist, aus allen gängigen Gründen Code-Reviews durchzuführen. Nicht unbedingt jede Änderung, aber immer wieder Hintergrundberichte. Die Leute sehen also zumindest die Veränderungen anderer und fangen an, über sie zu sprechen.
Gibt es eine gute Möglichkeit, Rezensionen einzuführen? Ich spüre eine große Zurückhaltung im Team, weil es nur noch eine Sache zu tun gibt und Gespräche schmerzhaft werden können. Ich habe das Gefühl, dass die Überprüfung jeder Änderung ein Nichtstarter ist, zumindest als erster Schritt. Ich möchte, dass die Leute sich in den Rhythmus einarbeiten und üben, zuerst mit einer niedrigen Frequenz zu rezensieren, bevor sie die Menge erhöhen.
Hat jemand erfolgreich Codeüberprüfungen nach und nach eingeführt? Wie? Ich habe über das Erfordernis von Bewertungen für "heiße" Dateien oder Bibliotheken nachgedacht. Oder willkürlich pflücken. Oder ich wähle "Wahl" muss Änderungen überprüfen. Oder ist es der einzige Weg, den Sprung zu wagen und jede Veränderung vorzunehmen?
quelle
Antworten:
Dies ist kein Werkzeug- oder Prozessproblem. Es geht um Kultur. Sie beschreiben ein Team, das sich aus Menschen zusammensetzt, die kritisch sind und ihre eigene Arbeit schützen. Es ist sehr, sehr verbreitet. Aber es ist nicht professionell.
Mein Rat ist, mit gutem Beispiel voranzugehen. Bieten Sie Ihre Commits zur Überprüfung an. Seien Sie offen, wenn Sie darum bitten, dass Personen die Probleme in Ihrem Ansatz hervorheben. Seien Sie offen für Rückmeldungen. Sei nicht defensiv, sondern erkunde die Gründe für das Feedback und stimme Aktionen als Team zu. Fördern Sie eine Atmosphäre des offenen Dialogs. Finden Sie einen oder zwei Champions in Ihrem Team, die auch dazu bereit sind.
Es ist harte Arbeit.
quelle
Der erste Schritt wäre, auf jemanden zuzugehen und zu sagen "Hey, würdest du meinen Code überprüfen?". Seien Sie die Veränderung, die Sie in Ihrer Organisation sehen möchten. Wenn Sie keine einzige Person finden, die dazu bereit ist, können Sie nicht das gesamte Team überzeugen. Wenn Sie beide Erfolg haben, melden Sie sich beim Team.
Wenn Sie jemanden gefunden haben, der Ihren Code überprüft, fragen Sie ihn, ob es Ihnen etwas ausmacht, wenn Sie einen Teil seines Codes überprüfen . Formulieren Sie es als Lernmöglichkeit für Sie und nicht als Gelegenheit für sie , ihren Code zu verbessern.
quelle
Als Teamleiter ist der größte Nutzen, den ich aus dem Code-Überprüfungsprozess ziehen kann, das Bewusstsein dafür, was vor sich geht. Ich möchte die Möglichkeit haben, jeden Änderungssatz zu sehen, auch wenn ich keine Änderungen oder Vorschläge für den Entwickler habe. Ich nenne diese "Bewusstseinsüberprüfungen". Ich kann sie in weniger als 30 Minuten umdrehen, sodass es keinen Engpass gibt.
Ich würde vorschlagen, dass Sie mit diesen anfangen. Definieren Sie den Codeüberprüfungs-Übermittlungsprozess (er ist ziemlich einfach, wenn Sie TFS verwenden) und lassen Sie alle Beteiligten ihre Änderungssätze an Sie (und nur Sie) übermitteln, bevor Sie einchecken. Sagen Sie ihnen, es ist nur zur Information gedacht und niemand wird ihren Code kritisieren.
Laden Sie nach ein oder zwei Wiederholungen der Bewusstseinsüberprüfungen andere Mitglieder des Teams ein, den Code der jeweils anderen zu überprüfen. Ob Sie es glauben oder nicht, dies allein kann für den Zusammenhalt des Teams und die Einheitlichkeit des Codes hilfreich sein.
Sobald Sie das gesamte Team beschäftigt haben, werden Sie wahrscheinlich feststellen, dass Ihre Entwickler einfach nicht anders können, als Vorschläge für den Code des jeweils anderen zu machen. Dies geschieht auf natürliche und organische Weise (Ingenieure können sich nicht selbst helfen!). Lassen Sie das Team zusammentreffen, um dies zu besprechen und Richtlinien für ein konstruktives gegenseitiges Feedback zu erstellen. Stellen Sie sie dann darauf ein. Herzlichen Glückwunsch, Sie befinden sich jetzt im vollständigen Code-Überprüfungsmodus!
quelle
Es gibt wahrscheinlich mehrere gute Möglichkeiten, abhängig von Ihrem Team und den Vorteilen, die Sie von den Bewertungen erwarten, aber jeder Ansatz hat einige Gemeinsamkeiten:
Erklären Sie, was Sie erwarten: Dies ist ein neuer Prozess für Ihr Team oder zumindest eine Änderung des bestehenden Prozesses. Es ist daher nur fair, dem Team mitzuteilen, warum Sie die Änderung einleiten, wie Sie erwarten, dass das Team davon profitiert, und wie Sie wissen, ob es funktioniert.
Definieren Sie den Prozess: Führen Sie die Mitarbeiter durch den Prozess, dem sie folgen sollen, um den Code zu überprüfen, Änderungen zu besprechen usw., damit jeder im Team weiß, wie es weitergeht.
Definieren Sie die Kriterien: Legen Sie die Arten von Änderungen fest, die Menschen als verbesserungsbedürftig bezeichnen sollten und nicht. Zum Beispiel sind Fehler und signifikante Leistungsverbesserungen zu erwähnen. Codierungsstandards, Lesbarkeit und Wartungsprobleme sollten beachtet, aber nicht besprochen werden. Fragen des persönlichen Geschmacks oder Stils sollten in Ruhe gelassen werden.
Verhalten besprechen: Weisen Sie darauf hin, dass das Ziel darin besteht, den Code zu verbessern und ein gemeinsames Verständnis zu fördern, das dem Team dabei hilft, besseren Code auf breiter Front zu schreiben, niemanden in Verlegenheit zu bringen, Punkte abzurechnen usw. Kritik sollte objektiv und konstruktiv sein, niemals persönlich. Die Festlegung einiger Grundregeln kann dazu beitragen, Bedenken hinsichtlich der Überprüfung von Code auszuräumen.
Versetzen Sie sich zuerst in die heiße Phase: Unabhängig davon, ob Sie Einzel- oder Gruppenbewertungen planen, ist es wahrscheinlich eine gute Idee, die ersten paar als Gruppe durchzugehen. Bei der ersten Überprüfung sollte es sich um Ihren eigenen Code handeln, damit andere Teammitglieder erkennen können, dass der Prozess nicht so schlecht ist und Sie bereit sind, ihn selbst durchzuarbeiten.
Führen Sie zunächst ein Kickoff-Meeting durch, um alle oben genannten Punkte zu erläutern und die Bedenken der Teammitglieder auszuräumen. Schreiben Sie anschließend eine E-Mail, die den Vorgang dokumentiert.
Das sind zwei unterschiedliche Bedenken. Wenn Sie der Meinung sind, dass Überprüfungen hilfreich sind, müssen Sie Zeit in den Zeitplan einbauen, um sie durchzuführen. Vergewissern Sie sich, dass die Teammitglieder verstehen, dass das Überprüfen wie jede andere Aufgabe funktioniert, und nicht zusätzlich, dass sie weiterhin andere Aufgaben mit der gleichen Geschwindigkeit ausführen müssen.
Besprechungen zur Gruppenüberprüfung sollten von einem Moderator geleitet werden, der die Diskussion am Laufen hält, die Besprechungsdauer begrenzt und die Dinge konstruktiv hält. Das sollte dazu beitragen, schmerzhafte Gespräche zu vermeiden. Wenn Sie bereit sind, einzelne Überprüfungen durchzuführen, hat das Team hoffentlich Verhaltensweisen übernommen, die es ihnen ermöglichen, die Dinge konstruktiv zu halten.
Sie sollten den Überprüfungsprozess auch von Zeit zu Zeit überprüfen. Bringen Sie das Team von Zeit zu Zeit zusammen, um den Prozess zu besprechen: Wie gut funktioniert es, wie könnte es verbessert werden, welche Praktiken sollten aufgegeben werden usw. Geben Sie dem Team die Eigenverantwortung für den Prozess und die Freiheit, neue Dinge auszuprobieren.
quelle
Eine Möglichkeit besteht darin, nach jedem Sprint Code-Überprüfungssitzungen durchzuführen und alle Änderungen durchzugehen, bei denen Code auf einen großen Bildschirm projiziert wird, sodass jeder im Team teilnehmen kann. Eventuelle Verbesserungen können als technische Verschuldung dem Auftragsbestand hinzugefügt werden.
Dieser Ansatz funktioniert, ist aber nicht perfekt.
Das ultimative Ziel wäre es, Pull-Anforderungen zu verwenden, um Code wieder in den Master zusammenzuführen oder einen Zweig zu entwickeln, in dem jede Codezeile überprüft werden muss.
quelle