Software-Reviews – rechtfertigt hochwertige Software ihre Kosten?¶
Reviews finden in unserem gesamten Softwareentwicklungsprozess statt, angefangen bei der Analyse der Anforderungen und der passenden Softwarearchitektur bis hin zu Code- und Test-Analysen. Wir führen aber auch Audits der Software unserer Kunden durch, damit sie eine Einschätzung für die Weiterentwicklung und den Betrieb ihrer Software erhalten.
Was sind die Vorteile von Software-Reviews?¶
Software-Reviews führen zu deutlich weniger Fehlern. Nach einer Studie von Capers Jones [1] über zwölftausend Projekte werden diese reduziert durch
bei Requirements-Reviews um 20–50 Prozent
bei Top-Level-Design-Reviews um 30–60 Prozent
bei detaillierten funktionalen Entwurfsüberprüfungen um 30–65 Prozent
bei detaillierten logischen Entwurfsüberprüfungen um 35–75 Prozent
Die Studie kommt zu dem Schluss:
Schlechte Codequalität ist bis zum Ende der Code-Phase billiger; danach ist hohe Qualität billiger.

Kosten über die Entwicklungsphasen Anforderung, Design, Kodierung, Test und Betrieb¶
Die Studie geht immer noch von einem klassischen Wasserfallmodell aus, das von den Anforderungen über die Softwarearchitektur und den Code bis hin zu den Tests und dem Betrieb reicht. In der agilen Softwareentwicklung wird dieser Prozess jedoch in vielen Zyklen wiederholt, so dass wir die meiste Zeit mit der Entwicklung von Software verbringen, indem wir die bestehende Codebasis ändern oder ergänzen. Daher müssen wir nicht nur die Änderungsanforderungen, sondern auch den bestehenden Code verstehen. Eine bessere Codequalität macht es uns leichter zu verstehen, was unsere Anwendung tut und wie sinnvoll die Änderungen sind. Wenn der Code gut in einzelne Module unterteilt ist, kann ich mir viel schneller einen Überblick verschaffen als bei einer großen monolithischen Codebasis. Wenn der Code außerdem klar benannt ist, kann ich schneller verstehen, was die verschiedenen Teile des Codes tun, ohne ins Detail gehen zu müssen. Je schneller ich den Code verstehe und die gewünschte Änderung umsetzen kann, desto weniger Zeit brauche ich für die Implementierung. Zu allem Überfluss steigt die Wahrscheinlichkeit, dass ich einen Fehler mache. Es geht mehr Zeit verloren, um solche Fehler zu finden und zu beheben. Diese zusätzliche Zeit wird normalerweise als technische Schuld verbucht.
Umgekehrt kann ich vielleicht einen schnellen Weg finden, um eine gewünschte Funktion bereitzustellen, die jedoch die bestehenden Modulgrenzen sprengt. Eine solche „quick and dirty“-Implementierung erschwert jedoch die Weiterentwicklung in den nächsten Wochen und Monaten. Auch in der agilen Softwareentwicklung ohne ausreichende Codequalität kann der Fortschritt nur am Anfang schnell sein, je länger es keine Überprüfung gibt, desto schwieriger wird die Weiterentwicklung. In vielen Gesprächen mit erfahrenen Kolleg*innen war die Einschätzung, dass regelmäßige Reviews und Refactorings schon nach wenigen Wochen zu einer höheren Produktivität führen.
Welche Arten von Überprüfungen lösen welche Probleme?¶
Es gibt verschiedene Möglichkeiten, einen Review durchzuführen. Diese hängen von der Zeit und den Zielen des Reviews ab.
Der Standard IEEE 1028 [2] definiert die folgenden fünf Arten von Reviews:
- Walkthroughs
Mit dieser statischen Analysetechnik entwickeln wir Szenarien und führen Testläufe durch, um z. B. Anomalien in den Anforderungen und alternative Implementierungsoptionen zu finden. Sie helfen uns, das Problem besser zu verstehen, führen aber nicht unbedingt zu einer Entscheidung.
- Technische Reviews
Diese technischen Reviews führen wir durch, um z. B. alternative Softwarearchitekturen in Diskussionen zu bewerten, Fehler zu finden oder technische Probleme zu lösen und zu einer (Konsens-)Entscheidung zu kommen.
- Inspektionen
Diese formale Review-Technik setzen wir ein, um z. B. Widersprüche in den Anforderungen, falsche Modulzuordnungen, ähnliche Funktionen etc. schnell zu finden und möglichst frühzeitig beseitigen zu können. Wir führen solche Inspektionen oft während der Paarprogrammierung durch, was auch weniger erfahrenen Entwicklern ein schnelles und praktisches Training ermöglicht.
- Audits
Bevor die Software in Betrieb genommen wird, führen wir häufig eine Evaluierung des Softwareprodukts hinsichtlich Kriterien wie Walk-Through-Reports, Softwarearchitektur, Code- und Sicherheitsanalyse sowie Testverfahren durch.
- Management-Reviews
Diese systematische Bewertung von Entwicklungs- oder Beschaffungsprozessen nutzen wir, um uns einen Überblick über den Projektfortschritt zu verschaffen und ihn mit etwaigen Zeitplänen zu vergleichen.
Testimonials¶
“Vielen Dank für die gute Arbeit. Wir sind sehr zufrieden mit dem Ergebnis!”
– Niklas Kohlgraf, Projektmanagement, pooliestudios GmbH
Kontaktiert uns¶
Gerne beantworte ich eure Fragen und erstelle ein passendes Angebot für unsere Software-Reviews.