Ich bin ein Softwareentwickler in einem 7-8 Entwicklerteam. Wir führen seit geraumer Zeit Code-Reviews durch und die Code-Qualität hat sich im Laufe der Zeit verbessert.
Allerdings habe ich kürzlich festgestellt, dass einige Entwickler mehr Code-Reviews als die anderen erhalten. Ich fürchte, das liegt an ihrer flexiblen Einstellung.
Meiner Ansicht nach sollte Code-Review nicht so durchgeführt werden: Das gesamte Team sollte dafür verantwortlich sein, und Code-Reviewer sollten nicht aufgrund ihrer Bereitschaft ausgewählt werden, Änderungen einfach zu akzeptieren.
Wie gehen Sie in Ihrem Team mit diesem Problem um?
Haben Sie Regeln für die Auswahl von Code-Reviewern festgelegt?
Denken Sie, dass Code-Reviewer für die Zeit, die sie mit (guten) Code-Reviews verbringen, belohnt werden sollten? Und wie sollen sie belohnt werden?
Vielen Dank für Ihre Antworten / Ideen.
quelle
Antworten:
Wir wählen keine Gutachter aus.
In unserem Team:
Code Reviews werden nicht zugewiesen, sondern abgeholt, wenn es für sie funktioniert. Das Verständnis ist, dass wir keine Geschichten durch die Pipeline schieben können. Gelegentlich wird jemand erwähnen, dass er auf eine CR im Standup wartet, aber das war es auch schon.
Ich mag dieses Modell, es gibt den Leuten die Möglichkeit aufzuheben, was sie können, und vermeidet es, "den Leuten Jobs zu geben".
quelle
Führen Sie eine Regel ein, nach der ein Fehler behoben werden kann, und zwar nicht nur für diejenigen, die die Änderung übernommen haben, sondern nur für diejenigen, die sie überprüft haben. Das sollte die richtige Perspektive für die Codeüberprüfung schaffen.
Wie für,
Nun, ich bin mir nicht sicher, wie Entwickler im Allgemeinen für ihre Arbeit belohnt werden, außer wenn sie nur ein Gehalt bekommen und irgendwie stolz auf das sind, was sie getan haben. Da die Überprüfung von Code Teil ihrer Aufgabe ist, sollte der Prüfer Zeit für die Überprüfung erhalten und das Guthaben auf irgendeine Weise teilen.
quelle
Das Hauptproblem, das Sie haben, ist nicht technisch, aber einige Tools können den Aufwand für Codeüberprüfungen verringern. Es gibt ein paar Herausforderungen zu meistern:
Das soll nicht heißen, dass Sie nicht SubVersion oder andere Tools (wie Fisheye) verwenden können, aber die in die Git-Pipeline integrierte Integration mit Feature-Verzweigungen macht die Arbeit wirklich weniger mühsam.
Außerhalb des Werkzeugbaus müssen Sie sich mit weiteren sozialen Herausforderungen befassen:
Es könnte sich auch lohnen, zu prüfen, welche Arten von Aufgaben von den engagierteren Personen überprüft werden. Möglicherweise greifen sie zu all den einfachen Überprüfungen, was die Situation für alle anderen schmerzhafter macht.
quelle
Eine gute Idee ist es, dies auf Round-Robin-Basis zu tun - Sie wählen jemanden aus, der die geringste Anzahl von Überprüfungen für Ihren Code durchgeführt hat. Im Laufe der Zeit sollte jeder im Team ungefähr die gleiche Anzahl von Überprüfungen durchgeführt haben. Es verbreitet auch das Wissen.
Offensichtlich wird es gelegentlich Ausnahmen wie Feiertage geben, an denen es zu Höhen und Tiefen kommt.
Es sollte keine Unterscheidung zwischen Junioren und Senioren / Leads geben. Codeüberprüfungen sollten für jeden Code durchgeführt werden - egal wie alt er ist. Es reduziert die Reibung und hilft, unterschiedliche Ansätze zu teilen.
Wenn Sie sich nach alledem immer noch Sorgen über die Qualität der Überprüfungen machen, sollten Sie eine Reihe von Mindeststandards einführen, damit eine Codeüberprüfung erfolgreich ist. Was Sie einbeziehen, liegt ganz bei Ihnen, aber einige Dinge, die Sie in Betracht ziehen könnten, sind Codeabdeckung, Komponententests, Entfernen von auskommentiertem Code, Metriken, ausreichende Kommentare, Verarbeitungsqualität, SOLID-Prinzipien, DRY, KISS usw.
Für die Überprüfung von Anreizen ist der Qualitätscode die Belohnung. Ich bin mir sicher, dass wir an suboptimalen Codebasen gearbeitet haben, bei denen der Schmerz erheblich hätte verringert werden können, wenn ein anderer Entwickler den Code von Anfang an neu erstellt und konstruktive Änderungen vorgeschlagen hätte.
quelle
Es hört sich so an, als ob dem Team ein formaler Prozess für die Codeüberprüfung fehlt.
Ich spreche nicht von der Erstellung eines 350-seitigen Word-Dokuments, sondern von ein paar einfachen Aufzählungspunkten.
Die wichtigen Punkte:
Definieren Sie eine Kernmenge von Prüfern. Keine allgemeinen Aussagen. Nennen Sie Leute.
Dies sollten Ihre leitenden Entwickler sein.
Fordern Sie mehr als einen Hauptprüfer auf, um die Überprüfung abzuschließen.
Identifizieren Sie mindestens einen anderen Nicht-Kernprüfer pro Sprint oder Release, der ein temporärer Kernprüfer ist. Erfordern die Abmeldung bei allen Codeüberprüfungen während dieser Zeit.
Element 3 ermöglicht den anderen Entwicklern, sich in der Hauptprüfergruppe zu drehen. In einigen Wochen verbringen sie mehr Zeit mit Bewertungen als in anderen. Es ist ein Spagat.
Wie für die Belohnung von Menschen? Viele Male zugeben, dass der Aufwand, den eine Person während der Codeüberprüfung vor dem gesamten Team unternimmt, funktionieren kann, aber Sie sollten sich nicht darüber streiten.
Definieren Sie im Zweifelsfall den Prozess und teilen Sie dem Team mit, dass es sich daran halten muss.
Und es gibt noch eine letzte Sache, die Sie versuchen können - so kontrovers es auch sein mag: Lassen Sie das @ # $% den Fan treffen, wenn ich ein Idiom verwenden darf.
Lassen Sie das Team scheitern, da der Codeüberprüfungsprozess nicht befolgt wird. Das Management wird sich engagieren, und dann werden sich die Leute ändern. Dies ist wirklich nur eine gute Idee in den extremsten Fällen, in denen Sie bereits einen Prozess definiert haben und das Team sich geweigert hat, sich daran zu halten. Wenn Sie nicht die Befugnis haben, Personen zu entlassen oder zu disziplinieren (wie die meisten führenden Entwickler dies nicht tun ), müssen Sie jemanden einbeziehen, der diese Aufgaben ausführen kann.
Und es gibt nichts Schöneres, als Dinge nicht ändern zu können. Trotz allem , was könnte die Leute sagen, Sie können die Titanic steuern - aber nicht , bevor er trifft das Eis burg.
Manchmal muss man einfach die Titanic auf die Eisburg schlagen lassen.
quelle