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.
time-management
code-reviews
peterchen
quelle
quelle
Antworten:
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.
quelle
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.
quelle
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.
quelle
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.
quelle
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.
quelle