Bei meinem letzten Job hatten wir drei verschiedene Arten von Codeüberprüfungen, die wir in verschiedenen Phasen des Produktlebenszyklus durchführen würden. Der erste Typ, den wir Sanity Review nannten, fand statt, bevor ein Entwickler Unit-Tests durchgeführt hatte - tatsächlich wurden Sanity Reviews durchgeführt, noch bevor die Funktionen abgeschlossen waren. Die Idee war, dass zwei Teammitglieder sich hinsetzen und einfach ein paar zufällige Codeabschnitte durchgehen, wie es im Entwicklungsprozess war, um sicherzustellen, dass die Entwicklung gut lief und wir nicht mit einem Riesen enden würden TDWTF-Eintrag, sobald das Feature für die Zusammenführung bereit war. Dies wurde hauptsächlich für Personen durchgeführt, die zusätzliche Unterstützung benötigten (Junior-Entwickler, neue Mitarbeiter und Personen, die mit Arbeiten beauftragt waren, mit denen sie weniger vertraut waren als andere Teammitglieder) zu einer kurzen Besprechung gehalten, in der nur ungeheure Probleme angesprochen wurden.
Als nächstes hatten wir Unit Reviews. Diese wurden in der Regel mit drei Entwicklern durchgeführt und wurden durchgeführt, wenn eine Einheit / ein Feature getestet wurde und bereit war, in den Hauptbaum integriert zu werden. Dies war die fleischigste Kritik und würde ziemlich ins Detail gehen. Wir hatten drei Entwickler dafür, weil wir den ursprünglichen Autor des Codes hatten, den Baumpfleger, der den Code abmelden musste, bevor er zusammengeführt werden konnte, und einen dritten Entwickler, der als Backup für den ursprünglichen Entwickler ausgewählt worden war (Die Idee war, dass nach Fertigstellung eines Codeabschnitts ein vollständiger Wissenstransfer an ein anderes Teammitglied stattfinden sollte, sodass immer mindestens 2 Personen im Team waren, die sich mit einem Teil der Codebasis voll auskannten.)
Zuletzt hatten wir Projektprüfungen. Dies umfasste das gesamte Team und dauerte ungefähr eine Woche. Nach der Qualitätssicherung und Produkteinführung war es das Ziel, alle Beteiligten dazu zu bringen, alle Änderungen an der gesamten Codebasis während des letzten Veröffentlichungszyklus durchzugehen, wo es jedem möglich war Sprechen Sie über architektonische Veränderungen, Fallstricke und entscheiden Sie, was überarbeitet und repariert werden muss, bevor wir mit der Entwicklung der nächsten Version des Projekts beginnen.