Zeit für Codeüberprüfungen

14

Wenn Sie Codeüberprüfungen durchführen

  • Wie viel Zeit verbringen Sie mit Codeüberprüfungen im Vergleich zur Implementierung?
  • Wie viele der Änderungen werden einer Codeüberprüfung unterzogen?
  • du denkst es ist zu viel / sollte mehr sein?

Gibt es Studien zur Wirksamkeit?

[edit] danke an alle für die antworten, es ist schwer einen "gewinner" für eine solche frage zu finden, es gibt auch viele wertvolle infos in den anderen antworten.

peterchen
quelle
2
Meine Antworten auf diese drei Fragen wären "keine", "keine von ihnen" und "es sollte mehr sein". :-)
Carson63000
4
Gute Frage, ich bin gerade dabei, einen persönlichen Kreuzzug zu starten, um Code-Reviews in meine Arbeit einzuführen. Die Antworten darauf könnten also hilfreich sein.
Kevin D
Die nächste Frage ist "Warum" - Die meisten denken über Qualität nach, aber der große Gewinn entsteht, wenn Sie verstehen, dass der Bildungswert von Code den Qualitätswert übersteigt.
Mattnz

Antworten:

7

Bei meiner Arbeit haben wir das folgende Verfahren für Codeüberprüfungen. Bisher hat es bei uns gut funktioniert, und wir fanden es sehr zeiteffizient, insbesondere in Bezug auf die Arbeitszeit. Wir haben nicht wirklich eine bestimmte Zeit für die Bewertungen. Jeder Commit oder Zusammenschluss mit dem Trunk muss überprüft werden. Es dauert so lange, bis der Prüfer den Commit ausgeführt hat.

Bearbeiten: Die Zeit, die benötigt wird, hängt natürlich von der Größe der Änderung ab. Kleine Funktionen und Fehlerbehebungen dauern Minuten. Es kann einen halben Tag dauern, bis umfangreiche neue Funktionen, Überarbeitungen oder Änderungen, die sich auf viele Teile des Systems auswirken, überprüft wurden, und einen weiteren Tag, bis alle daraus resultierenden Probleme behoben sind.

Um dieses System zum Laufen zu bringen, ist es wichtig, sich häufig auf den Trunk festzulegen, damit die Änderungen von überschaubarer Größe sind. Sie möchten nicht die Situation haben, in der Sie den Code von jemandem im Wert von einem Jahr überprüfen müssen.

Dima
quelle
1
Hast du eine Ahnung, wie viel es kostet?
Peterchen
5

In Bezug auf Studien erhalten Sie von der Smart Bear-Software kostenlos ein kleines Buch mit dem Titel Best Kept Secrets of Peer Code Review . Es enthält eine Reihe von Artikeln zu verschiedenen Aspekten der Codeüberprüfung, einschließlich Studien darüber, wie viel Zeit sie in Anspruch nehmen sollten und wie effektiv sie sind.

Caleb Huitt - cjhuitt
quelle
Ich habe gerade dieses Buch bestellt. Sollte hoffentlich eine interessante Lektüre sein.
Kevin D
3
Ich habe es auch bestellt. Es ist seltsam, 20 Tage auf ein " freies " Buch zu warten - von einem Unternehmen, das Software über das Internet verkauft, nicht weniger.
Peterchen
Dieses Buch macht seit einigen Jahren die Runde an meinem Arbeitsplatz. Unser Exemplar ist gut gelesen und mit einigen wichtigen Punkten versehen. Es ist klein (kann es in einer Stunde lesen), aber vollgepackt mit tollen Informationen. Der klare Zweck besteht darin, Sie zu überzeugen, eine Codeüberprüfung durchzuführen, und Sie dann zu überzeugen, ein Tool zu verwenden, und Sie dann zu überzeugen, das Tool zu kaufen - fair genug, sie gaben Ihnen das Buch.
Mattnz
4

In unserem Projekt wird jede wesentliche Änderung am System vom Teamleiter oder zusammen mit einem anderen Entwickler überprüft, der der Haupt- "Verbraucher" des neuen Moduls sein wird. Wir unterhalten uns über Skype und verwenden entweder Rudel in Emacs (ein Plugin für die gemeinsame Bearbeitung, mit dem mehrere Benutzer dieselbe Datei live bearbeiten können) oder TypeWith.me (Piratepad), oder einer von uns teilt seinen Bildschirm in Skype.

Es ist schwierig, dies zu quantifizieren, da alltägliche Änderungen wie neue Ansichten, Seiten usw. nicht überprüft werden. Wir überprüfen neue Module, wichtige Updates und Refactorings. Bei großen Änderungen kann die Codeüberprüfung 10% bis 30% der Zeit in Anspruch nehmen, aber das ist es wert.

Ich kann sagen, dass die Paarbildung, wenn zwei Programmierer gleichzeitig dieselbe Datei bearbeiten und nicht nur am selben Computer sitzen, viel besser ist als die übliche Praxis im Büro, hinter der Schulter zu sitzen.

Für einfache Dinge wie Namenskonventionen und Bereichsfehler verwenden wir unsere eigenen oder Open-Source-Automatiktools (jslint, pylint, pyflakes, pep8). Und wir begrenzen Commits und Pushs nicht: Wir verwenden Mercurial, das sich sehr leicht verzweigen und zusammenführen lässt (ich muss sagen, einfacher als in Git). Bugs sind keine Codeüberprüfungssache.

Wir führen Teambesprechungen durch, bei denen Änderungen und neue Dinge angekündigt werden, aber nicht jeder achtet wirklich darauf. Wahrscheinlich sollten wir ein bisschen mehr Codeüberprüfungen durchführen.

culebrón
quelle
2

Darauf gibt es keine richtige oder falsche Antwort. Aber wie viele vor mir vorgeschlagen haben - wenn die Codeüberprüfung von einem externen Teammitglied durchgeführt wird [sehr empfohlene Methode], kann dies ungefähr 30% bis 35% des Entwicklungsaufwands ausmachen. Wenn dies jedoch von einem internen Projektteammitglied durchgeführt wird, das Teil des Entwicklungsteams war [nicht empfohlen], kann dies in ungefähr 20% der für die Entwicklung aufgewendeten Zeit abgeschlossen werden.

Hinweis: Ich bin auf diesen Thread gestoßen, als ich nach etwas anderem gesucht habe, und dachte, ich könnte hier einen Mehrwert schaffen. Übrigens basiert die obige Aufwandsschätzung auf meiner Berufserfahrung als Engagement Manager in mehreren Projekten. Ich hoffe es hilft.

Nav
quelle
danke - und kein schwitzen, ich freue mich über zahlen für eine "wie viel" frage!
Peterchen
0

Jede Organisation und Codebasis ist unterschiedlich, daher ist es schwierig, einen branchenweiten Wert zu erzielen.
Wenn Sie es wirklich ernst meinen, sollten Sie mit dem Sammeln von Metriken beginnen. Dh die Codeüberprüfung bis einschließlich Nacharbeit zufriedenstellend durchgeführt wird. Sammeln Sie dies in einer Datenbank (LOC, Code-Komplexität, Programmiersprache, Zeit usw.). Sammeln Sie dann während des Testens auch Metriken zu Ihrer Fehlerrate. Solange Sie diesen Code reduzieren können, sollte sich die Überprüfung von selbst auszahlen. Wenn der Fehler von den Tests stammt, erfassen Sie Messdaten darüber, wie viel Zeit für die Fehlerbehebung aufgewendet wurde. Erstellen Sie diese Daten in Ihrer Organisation, erstellen Sie Baselines, und Sie können sie ziemlich genau vorhersagen. Die Begriffe für die Suche nach weiterführendem Lernen lauten Kosten für Qualität und Kosten für schlechte Qualität.

Die einzige Einschränkung ist, dass dies bürokratisch werden kann und von der Unternehmenskultur abhängt.

softveda
quelle
Ich suche nach praktischen Daten, um eine Vorstellung von der erwarteten Reichweite zu bekommen .
Peterchen