Menge des Codes in der Codeüberprüfung

8

Nach meiner Erfahrung überprüfen die meisten Teams im Unternehmen den Code des Teammitglieds mit einer kleinen Menge Code, immer weniger als Hunderte von Zeilen. Ist es angemessen, eine große Menge an Code zu überprüfen, beispielsweise ein Modul, wenn der Code vollständig und bereit ist, ein für alle Mal überprüft zu werden?

Upton
quelle
1
Ihre Frage impliziert die Überprüfung "auf einmal". Es gibt nichts zu sagen, dass ein großes Modul nicht in kleinere Überprüfungssitzungen unterteilt werden konnte.

Antworten:

8

Der Grund für die kleinen Codeüberprüfungen ist die Maximierung der Effektivität.

Studien, die den Personal Software-Prozess betreffen, haben ergeben, dass Prüfer hinsichtlich der Maximierung der in der Überprüfung festgestellten Fehler am effektivsten sind, wenn sie nicht mehr als 150-200 Quellcodezeilen pro Stunde überprüfen. Angesichts dieser empirischen Daten geht es darum zu bestimmen, wie lange Menschen aufmerksam bleiben können. Ich habe keine empirischen Daten, aber ich weiß, dass meine Gedanken nach etwa einer Stunde Lesen beginnen zu wandern. Für mich bedeutet dies, dass Codeüberprüfungen weniger als 150 Codezeilen gleichzeitig überprüfen sollten.

Thomas Owens
quelle
Ich würde wahrscheinlich mehr als eine Stunde brauchen, um 200 neue Codezeilen richtig zu überprüfen . Nun, vielleicht ist Java-Code weniger knapp als beispielsweise Ruby oder Python, aber ich bevorzuge Änderungslisten mit <50 stark geänderten Zeilen. Diese können sehr schnell und mit geringerem Risiko, einen potenziellen Fehler zu verpassen, überprüft werden.
9000
@ 9000 Es hängt von Ihrem Überprüfungsgrad ab. Eine formelle Inspektion, bei der jede Zeile gelesen wird, ist viel langsamer als eine Schreibtischprüfung, bei der ein einzelner Entwickler in seinem eigenen Tempo liest. Die Vertrautheit mit der Programmiersprache und dem in der Entwicklung befindlichen System wirkt sich ebenfalls aus. Die 150-200 Zeilen / Stunde sind eine Obergrenze. Persönlich finde ich, dass ich Code in einer Entfernung von fast 80 bis 100 Zeilen pro Stunde lese, wenn ich ihn verstehe und feststelle, wie er in das System passt.
Thomas Owens
4

Es ist angemessen, wenn es Ihrem Team hilft, ein besseres Produkt zu entwickeln.

Einige Gründe, warum sich Codeüberprüfungen häufig auf kleinere Teile konzentrieren:

  • Um eine große Menge an Code richtig zu überprüfen, muss jeder Teilnehmer ziemlich viel Zeit für die Vorbereitung aufwenden, und das kann teuer sein.

  • Je länger ein Review-Meeting dauert (wirklich jedes Meeting), desto weniger Aufmerksamkeit schenken die Leute. Zwei Stunden sind ungefähr so ​​viel, wie die meisten Menschen aushalten können, und kürzere Besprechungen (z. B. eine Stunde oder 90 Minuten) tragen wesentlich dazu bei, dass alle in Bestform sind.

  • Es ist oft nicht notwendig, jede Zeile zu überprüfen. Ein Grund für die Überprüfung des Codes besteht darin, sicherzustellen, dass sich alle an die gleichen Codierungsrichtlinien halten. Eine detaillierte Überprüfung einer kleineren Codemenge funktioniert für diesen Zweck besser als eine weniger detaillierte Überprüfung von mehr Code.

Das heißt, wenn Sie der Meinung sind, dass das Überprüfen von mehr Code hilfreich ist und Ihr Team es aushält, probieren Sie es auf jeden Fall aus. Es wird hilfreich sein, sicherzustellen, dass es einige Grundregeln gibt und dass jemand als Moderator fungiert, um das Meeting am Laufen zu halten. Ziehen Sie auch in Betracht, dass Rezensenten ihre Kommentare im Voraus einreichen, damit Sie weniger Zeit für pingelige Dinge wie die missbräuchliche Verwendung von Leerzeichen und mehr Zeit für die Diskussion wichtiger und interessanter Themen aufwenden.

Caleb
quelle
1
Zu beachten ist, dass die ersten beiden Punkte nur für formelle Inspektionen gelten. Ein Desk Check nach Belieben eines anderen Entwicklers erfordert weder eine formelle Vorbereitung (wenn er mit dem in der Entwicklung befindlichen System vertraut ist) noch eine Besprechung.
Thomas Owens
@ ThomasOwens vereinbart. Hoffentlich ist eine informelle Überprüfung auch kleiner als Hunderte von Zeilen.
Caleb
2

Wenn Sie eine große Menge an Code überprüfen, sobald dieser bereits vollständig (und vermutlich funktionsfähig) ist, wird dies mehr zu einer Sitzung mit dem Titel "Wir hätten tun sollen ..." als zu "Lassen Sie uns dies beheben / ändern ...".

Wenn der Hauptzweck der Aktivität eine Post-Mortem-Lernübung ist, ist die umfassende Codeüberprüfung sinnvoll. Wenn es darum geht, Fehler zu erkennen, funktioniert es wahrscheinlich nicht sehr gut. Kleine Fehler werden wahrscheinlich übersehen, da sich jeder in der Überprüfung langweilt und müde wird, und große strukturelle Fehler werden wahrscheinlich übersprungen, da "jetzt zu spät - Code ist geschrieben und der Kunde möchte ihn gestern".

Erik Dietrich
quelle
+1 für die Notwendigkeit, den Zweck hinter der Überprüfung zu identifizieren.
Burhan Ali