Ist es angebracht, positive Kommentare in Code-Reviews zu hinterlassen, oder dient es ausschließlich konstruktiver Kritik?

36

Ich habe in letzter Zeit eine Menge Codeüberprüfungen durchgeführt und bin mir nicht sicher, welche positiven und negativen Auswirkungen und welche Professionalität es hat, positive und / oder lustige Kommentare in Codeüberprüfungen einzubringen.

Wir verwenden Github als unsere Codeüberprüfungsplattform in meinem Team, sodass die Kommentare von jedermann eingesehen werden können. Ich versuche im Allgemeinen, diese Plattform zu verwenden, damit der gesamte Prozess von Anfang bis Ende sichtbar und historisch ist.

Codeman
quelle
Ja, mir ist klar, dass dies hauptsächlich mit Kultur zu tun hat, aber ich suche nach einer allgemeinen Antwort.
Codeman
22
Es ist wichtig, das, was Sie sehen möchten, mit positiven Kommentaren zu verstärken.
2
Ich weiß nicht, ob es angebracht ist, aber manchmal poste ich Haikus-Codes in Reviews: Junior-Programmierer - Ihr unkommentierter Code ist - wie Schmerzenssplitter.
Yannis
Ich bin eigentlich der Junior-Programmierer, der den Senior-Code überprüft - wir haben hier einen ziemlich strengen Prozess, alle Codes müssen überprüft werden :)
Codeman

Antworten:

53

Es ist wichtig, sowohl positive als auch negative Aspekte hervorzuheben. Ich weiß, wenn ich den Refactor eines bestimmten höllischen Subsystems in etwas Ordentliches und Sauberes überführe, würde ich dem Programmierer wahrscheinlich eine Pizza für seine Bemühungen kaufen.

Wenn Sie Überprüfungen als Training verwenden, ist dies doppelt wichtig - das Hervorheben eines guten Codeteils ist hilfreich, wenn die Junior-Programmierer diesen Code auch überprüfen. Sie haben die Möglichkeit, Fragen zu stellen, warum ein bestimmter Ansatz oder eine bestimmte Technik besser ist als eine andere.

Jonathan Rich
quelle
Können Sie einen Hinweis hinzufügen, warum es wichtig ist? Ich werde als akzeptiert markieren, wenn Sie das tun :)
Codeman
3
Es zeigt den Leuten, dass das, was sie tun (guten Code schreiben), geschätzt wird, und konzentriert sich weiterhin auf das Wachstum, worum es bei Code-Reviews geht.
Jonathan Rich
1
Können Sie dies zu Ihrer Antwort hinzufügen?
Codeman
2
+1 Sie verdienen die nette Antwort Abzeichen für diese. Die Anzahl der Orte, die konstruktive Kritik nicht genug wertschätzen, überrascht mich immer wieder. Den Leuten zu sagen, dass sie einen guten Job machen, wenn sie einen guten Job machen, kann ein überraschend effektiver Motivator sein.
Benjamin Gruenbaum
@Benjamin: Zu viele Organisationen behandeln die Codeüberprüfung als einen "Finde die Fehler, die der jeweils andere Code aufweist" -Stempelprozess und nicht als "Lässt uns ein leistungsstarkes Team aufbauen". Nach meiner Erfahrung sind Code-Reviews der schnellste und beste Weg, um Barrieren abzubauen, die die Leistung von Software-Teams beeinträchtigen. Wir haben einen Notationsstandard, bei dem wir den Kommentaren -2 (muss behoben werden) bis +2 (großartige Arbeit) voranstellen.
Mattnz
8

Witzig: Speichern Sie es für den Wasserkühler, außer in minimalen Dosen - ein beschnittenes Gesicht ist nicht erforderlich, um den Code zu überprüfen.

Positiv: Auf jeden Fall. Die Überprüfung umfasst per Definition sowohl positive als auch negative / konstruktive Aspekte.

Positives Feedback hilft allen:

Für denjenigen, der die Daumen hoch hat, stärken Sie das Selbstvertrauen und regen ihn an, durch Ihr positives Feedback mehr davon zu tun.

Im Übrigen werden sie, wie bereits erwähnt, lernen, was zu tun ist und was nicht . Sie werden auch ermutigt, Spitzenleistungen zu erbringen, damit auch sie eines Tages im Rampenlicht stehen können.

Ich habe einmal für einen Chef gearbeitet, der ein offenes und positives Feedback gab - das Team war daher sehr erfolgreich und produktiv. Er zog weiter, und andere übernahmen, dass seine Fähigkeit fehlte, eine gut gemachte Arbeit zu loben. Produktivität und Moral nahmen einen Sturzflug und viele der besseren Teammitglieder verließen die Firma.

Vektor
quelle
3

Ich würde sagen, halte die Kommentare sauber und auf den Punkt, genau wegen der Kultur.

Sie können nicht vermeiden, dass manche Menschen die Dinge falsch angehen.
Um dem entgegenzuwirken, wird ein persönliches Einzelgespräch Abhilfe schaffen, wenn ein persönliches Gespräch nicht möglich ist.

ton.yeung
quelle
1
Guter Punkt. Beim Kommentieren "witzig" zu sein, kann leicht ins Hintertreffen geraten, insbesondere in mehrsprachigen, multikulturellen Umgebungen.
David Navarre
2

Das Kommentieren in einer Codeüberprüfung verwaltet

Behandeln Sie Kommentare als Verwaltungsinstrument

Das Einfügen von Kommentaren in eine Codeüberprüfung ist eine Form der Verwaltung. Als solches sollte es als Instrument des Managements betrachtet werden.

Verwenden Sie beim Kommentieren Verwaltungspraktiken

Es gibt eine Struktur für die Verwaltung von Personen, bei der das Ziel darin besteht, ein gewünschtes Ergebnis zu erzielen. Einige der wichtigsten Managementansätze werden nicht in Kommentaren verwendet, die meisten jedoch. Die anwendbaren Themen umfassen Umwelt, Führung, Organisation und Kontrolle.

Umgebung

Kultur

Die Umgebung bestimmt den Führungsstil. Bei der Verwendung von Managementinstrumenten sollten die Kultur und das Umfeld des Arbeitsplatzes berücksichtigt werden. Dies hängt in der Regel von der Branche und der Größe des zu verwaltenden Unternehmens oder der zu verwaltenden Einheit ab.

Stil

Wenn es eine unbeschwerte Kultur gibt, kann dies an der Art des Managements liegen. Wenn es sehr strenge Richtlinien, Richtlinien und Konsequenzen gibt, sollte sich dies im verwendeten Stil widerspiegeln. Wenn also jeder an Bord ist, um einen Star Wars-Witz über Droiden und einen schwachsinnigen Sturmtruppler zu machen, kann eine komödiantische Interjektion angebracht sein. Wenn es jedoch schwerwiegende Konsequenzen gibt, das Endergebnis nicht ernst zu nehmen, muss dies möglicherweise vermieden werden.

Führung

Grundlagen

Es gibt drei Hauptpfeiler der Führung, die bei Kommentaren berücksichtigt werden müssen. Sie sind nämlich Vision, Kommunikation und Urteil.

Vision

Es ist wichtig, dass Sie beim Erklären oder Erteilen von Anweisungen die große Vision im Auge behalten. In Kommentaren könnte dies bedeuten, darauf hinzuweisen, wie sich kleine Änderungen auf das gesamte Projekt auswirken, welche Konsequenzen es hat, wenn unterschiedliche Ansätze verfolgt werden, oder einen wichtigen Hinweis auf die Trennung von Bedenken zu geben.

Communication

In vielen Bereichen des Lebens ist es wichtig, ein guter Kommunikator zu sein. In Kommentaren ist es nicht anders. Es ist wichtig, ein weises Maß an Kürze zu verwenden - zumal Kommentare nicht viel Platz beanspruchen sollten. Gehen Sie frühzeitig auf den Punkt und ergänzen Sie ihn bei Bedarf mit einem Beispiel. In einer größeren Organisation kann dies auch die Notwendigkeit beinhalten, eine Mitteilung oder ein Memo zu versenden, wenn das Problem nicht auf eine Überprüfungssitzung beschränkt ist.

Judgement

Es ist wichtig, dass eine Strategie angewendet wird, um zu beurteilen, ob Kommentare erforderlich sind und welche Änderungen erforderlich sind. Ihr Urteil muss nicht immer richtig sein, aber es muss konsequent richtig sein, insbesondere wenn große Urteilsrufe getätigt werden.

Organisieren

Aus Managementsicht bezieht sich das Organisieren darauf, das Endziel im Auge zu behalten und sicherzustellen, dass die Prozesse so ausgerichtet sind, dass sie einer Reihe von Regeln folgen. Kommentare sollten dies auch berücksichtigen, da die Kommentare nach Möglichkeit aufeinander aufbauen sollten, um sicherzustellen, dass der Designfluss eingehalten wird. Es ist auch wichtig, den Umfang des zu überprüfenden Codes zu berücksichtigen, um die Kopplung zu verringern und das Gesamtdesign zu verfolgen.

Steuern

Die Kontrolle der Aktionen der Verwalteten ist ein heikler Prozess. Wenn man fest ist, sollte man auch bedenken, dass die Menschen wichtig sind. Es gibt verschiedene Managementfähigkeiten, mit denen Sie andere steuern können. Diese Fähigkeiten sind politisch, konzeptionell, zwischenmenschlich, diagnostisch und technisch.

Politisch

Politik ist zu jeder Zeit zu finden, in der Menschen interagieren. Es ist ein großes Thema, aber im Allgemeinen dreht sich die Politik um Einfluss. Es ist wichtig, die persönliche und berufliche Politik bei der Kommentierung im Auge zu behalten. Dies kann mit einer Anweisung, einem Witz oder sogar einer Frage zusammenhängen.

Konzeptionelle

Management durch Konzeptualisierung ist ein wichtiges Instrument. Es erfordert eine komplexe Analyse der vorliegenden Situation. Bei der Kommentierung kann es von Vorteil sein, einen Teil der Analyse einzubeziehen, die verwendet wurde, um die in der Überprüfung angegebene Schlussfolgerung oder Änderung zu erzielen.

Zwischenmenschlich

Zwischenmenschliche Fähigkeiten sind beim Management sehr wichtig. Dies ist auch ein großes Thema. Einige der wichtigen Dinge, die bei zwischenmenschlichen Fähigkeiten berücksichtigt werden müssen, sind Mentoring, konstruktive Kritik und "Harpunieren".

Mentoring

Es ist wichtig, dass das Management eher als Mentor als als Antagonist gesehen wird. In einer Codeüberprüfung bedeutet dies, dass es manchmal von Vorteil ist, auf ein Entwurfsmuster oder einen Entwurfsansatz hinzuweisen, mit dem sich eine Situation verbessern lässt.

Constructive Criticism

Kritik ist wichtig, weil sie zum Nachdenken anregt. Kritik sollte jedoch so positiv wie möglich gehalten werden. Dies bedeutet, gültige Beweise zur Unterstützung der Kritik vorzulegen und sicherzustellen, dass der verwendete Ton nicht negativ ist. Bei der Überprüfung des Codes könnte dies die Anzeige einer Ausnahme oder eines möglichen Szenarios beinhalten, bei dem ein Fehler beim Anzeigen einer Lösung generiert wird, anstatt jede Stelle anzuzeigen, die falsch war, wenn der gesamte Code ohnehin ersetzt werden müsste.

"Harpooning"

"Harpunieren" ist, wenn Sie jemanden im übertragenen Sinne zu Boden harpunieren. Dies geschieht, indem sie Schritt für Schritt ohne Aufschub abgebaut werden, bis sie sich unfähig fühlen, aufzustehen. Wenn Sie eine Person in einer Codeüberprüfung oder anderswo harpunieren, verlieren Sie deren Zusammenarbeit. Es ist wichtig zu vermeiden, dass jemand übermäßig kaputt geht.


Zusammenfassung

Behandeln Sie Kommentare in einer Codeüberprüfung als Verwaltungstool. Beachten Sie, dass Kommentare kurz, sachlich und konstruktiv sein sollten. Stellen Sie außerdem sicher, dass beim Kommentieren die zu überprüfende Person berücksichtigt wird.

Travis J
quelle
Die Codeüberprüfung sollte nicht verwaltungstechnisch sein. Der andere Name lautet aus gutem Grund "PEER review". Das andere Problem, das ich mit der Antwort habe, ist, dass es sich um den zu überprüfenden Code handelt, nicht um die Person. Wenn die Codeüberprüfung als Überprüfung der Person behandelt wird, hat sie sich (oder wird es in Kürze sein) zu einem Management-Tool entwickelt, um Menschen zu „verprügeln“. Schauen Sie es sich um eine Eingabe in KPIs werden, und beobachten Sie die Spiele die Peers spielen - „Dieser Code könnte besser sein, ich lasse es schieben , wenn Sie einfach auf meinen nächsten Code Drop gehen versprechen“
mattnz
@mattnz - Peers verwalten sich häufig. Darüber hinaus arbeiten nicht alle Organisationen nach einer strengen Top-Down-Hierarchie. In diesem Fall sind Peers ein Schlüsselfaktor des Managements. Ich habe jedoch ein Problem mit Ihrer Behauptung, dass es bei einer Codeüberprüfung nicht um die Person geht. Das Korrigieren von schlechten Codierungsgewohnheiten erfordert eine tatsächliche Anleitung, und es ist sehr wichtig, diese Anleitung auf anmutige und respektvolle Weise herauszugeben, um erfolgreich zu sein.
Travis J
@mattnz - Beachten Sie auch, dass ich niemals impliziere, dass eine Codeüberprüfung eine Überprüfung der Person ist. Ich stelle fest, dass Sie die hier akzeptierte Antwort unterstützt haben, der ich ebenfalls zustimme. Das Seltsame ist jedoch, dass sich die Antwort explizit auf den Einzelnen konzentriert, ihn kauft und ihm persönlich Lob gibt. Ich habe kein Problem damit, aber wie kann man sagen, dass dies nicht auch eine "Rezension der Person" ist? Um ehrlich zu sein, scheint es eher so, als ob Sie nur den ersten und den letzten Satz dieser Antwort lesen.
Travis J
0

Code Reviews sind ein Werkzeug zur Verbesserung der Codequalität, unter anderem durch Aufdeckung von Fehlern. Noch wichtiger ist, dass Sie gute Codierungspraktiken einführen möchten.

Aus dieser Perspektive ist es wichtig, die Dinge zu kommentieren, die gut gemacht wurden. In einem Trainingskontext sollten auch Verbesserungen kommentiert werden. Wenn es in Ihrer Kultur um kontinuierliche Verbesserungen geht, sollten Sie Verbesserungen immer kommentieren.

Fehler, Bugs und schlechte Codierung werden auftreten. Zeigen Sie sie nicht persönlich auf und behandeln Sie sie wie erwartet.

Aus der Perspektive der Verhaltensänderung ist Belohnung viel besser darin, Veränderungen hervorzurufen als Bestrafung. Ich würde gute Arbeit als Belohnung ansehen.

BillThor
quelle