Code Reviews – Wohl oder Übel?

Wenn man Entwickler nach Code Reviews fragt, wird sicherlich jeder bejahen, dass diese sinnvoll sind. Doch ist das wirklich in allen Fällen so?
Weshalb werden Code Reviews gemacht? Wichtige Gründe sind beispielsweise:
- Der Code sollte einheitlichen Richtlinien entsprechen (bspw. Einrückungen, Namenskonventionen etc.), um Lesbarkeit, Verständlichkeit und Wartbarkeit zu erleichtern.
- Code Duplizierung sollte vermieden werden.
- Code Reviews unterstützen Know-how-Verteilung.
- Code Reviews können Fehler aufdecken.
Soweit die gut nachvollziehbare Theorie. Aber macht es Sinn, den kompletten Code einem Review zu unterziehen?
Ein bedachter Einsatz von Code Reviews ist sinnvoll. Insbesondere sind es Gründe der Effizienz, die uns veranlassen, dieses Mittel der Qualitätssicherung sehr gezielt einzusetzen. Folgende Aspekte spielen für uns eine Rolle:
- Die Einhaltung von Richtlinien und Konventionen kann durch die Nutzung von Plugins einer Entwicklungsumgebung unterstützt werden (Stylechecker, Beautifier).
- Wir setzen komplett auf automatisierte Tests, um Fehler aufzudecken.
- Tools wie „Codenarc“ unterstützen die Einhaltung von Codier-Richtlinien und können in den Build-Prozess (Jenkins) integriert werden.
- Code Reviews führen sehr häufig zu Diskussionen über „Schönheit“ und „Ansichten“, ohne Mehrwert zu generieren. Ebenso besteht die Gefahr, dass im Vorhinein in „Code-Schönheit“ investiert wird.
Bei exensio werden Code Reviews mit folgender Motivation eingesetzt:
- Kritikalität: Es handelt sich um einen „kritischen“ Code, d.h. dass ein Fehler in diesem Bereich kritische Auswirkungen auf die Software haben könnte.
- Know-how-Transfer: Mitarbeiter führen Code Reviews durch, um ein Verständnis der Software zu erhalten (beispielsweise für spätere Wartungs- und Weiterentwicklungsaufgaben).
Nicht zuletzt ist es aber auch der Kunde, der entscheidet, welche Qualität er gerne hätte und für welche Qualität er bereit ist, zu bezahlen. Aktivitäten, die langfristig für eine gute Qualität im Sinne von Fehlerfreiheit und guter Wart- und Erweiterbarkeit sorgen, führen zu höheren Anfangskosten. Ob sich die Investition langfristig rechnet, ist meist schwer einzuschätzen. Insbesondere bei innovativen Software-Produkten liegt der Fokus oftmals darauf, schnell produktiv zu werden. Die Dauer der Nutzung und der Grad der Weiterentwicklung sind häufig unklar und hängen beispielsweise bei Unternehmens-internen Applikationen von den initiierenden Personen und deren sich verändernden Verantwortungsbereichen ab.
Insgesamt weisen wir als exensio beim Einsatz von Code Reviews noch darauf hin, dass wir keine Software erstellen, bei der extreme Anforderungen an Sicherheit und Zuverlässigkeit oberste Priorität haben, wie etwa bei Software für Flugzeugsteuerungen oder Atomkraftwerke. Letztere fallen in eine komplett andere Kategorie, bei der gänzlich andere Maßstäbe anzusetzen sind, da hier auch Menschenleben gefährdet sein können.