Innere Werte, Teil 6: Metriken
Schneller, weiter, höher. Der Leistungszwang macht auch vor dem Software-Engineering nicht Halt. Schlaue Köpfe haben deshalb die Metriken erfunden und sich dabei einen Bärendienst erwiesen.
- Dr. Michael Stal
Schneller, weiter, höher. Der Leistungszwang macht auch vor dem Software-Engineering nicht Halt. Schlaue Köpfe haben deshalb die Metriken erfunden und sich dabei einen Bärendienst erwiesen.
"Wer viel misst, misst Mist", so lautet zumindest eine bekannte Kritik. Da in einer Ära des Kosten/Nutzen-Glaubens die Quantifizierung aller Aspekte eine Wunderwaffe zu sein scheint, macht sie natürlich auch nicht vor innerer Qualität von Architekturen oder Codebasen halt. Metriken definieren dabei die Messgrößen, mit denen gewisse Eigenschaften quantifiziert werden sollen. Doch was sagen Metriken überhaupt aus?
Nehmen wir mein Lieblingsbeispiel, die McCabe Cyclomatic Complexity (CC), die für eine Observer-Pattern-Anwendung mit 50 Beobachtern von einem unkalkulierbarem Risiko spricht. Dumm nur, dass Metriken ausschließlich Syntax prüfen. So betrachtet die CC-Metrik den Entwurf als Kreidehaufen und übersieht dabei unweigerlich, dass die 50 Verbindungen zu Beobachtern im Grunde genommen eine einzige Abhängigkeit in 50facher Ausfertigung darstellen.
Achtung, LOC
Heftiges Schenkelklopfen lösen bei mir die bisweilen hilflosen Versuche aus, Produktivität und Wachstum mit der Zahl von Codezeilen messen zu wollen. Der irregeführte Anwender wird gleichsam von der LOC überrollt. Leider ist Codezeile nicht gleich Codezeile, aber Metriken gehen häufig trotzdem von dieser Annahme aus. Wie war das gleich mit dem Hammer & Nail Syndrome?
Conditio sine qua non
Ich behaupte nicht, dass Metriken keinen Sinn machen. Um aber Metriken Sinn zu geben, mĂĽssen bei ihrer Anwendung mehrere Voraussetzungen erfĂĽllt sein:
- Derjenige, der die Metrik nutzt, muss sie zuvor in allen Aspekten verstehen.
- Nur wer die Metrik versteht, darf sie interpretieren bzw. aus ihrem Ergebnis Schlussfolgerungen ziehen.
- Bei den meisten Metriken kommt es auf relative Änderungen an, nicht auf Absolutwerte.
- Um eine Eigenschaft zu vermessen, sollten mehrere Metriken mit unterschiedlichen Messstrategien zum Einsatz kommen.
- Es sollte nicht nur ein architektonischer Aspekt betrachtet werden, sondern alle als wichtig bewerteten Aspekte.
- Das Berechnen von Metriken muss automatisiert und werkzeuggesteuert erfolgen.
- Architekten sollten Architekturanalysewerkzeuge benutzen, die gewünschte Metriken berechnen und visualisieren können.
Fazit
Die Messlatte für Metriken und Werkzeuge sollte dementsprechend hoch liegen. Metriken können also durchaus sehr wertvoll sein, wenn man sie sinnvoll nutzt. Es gibt immerhin ein paar wertvolle, weil nützliche Metriken wie die Software Package Metrics von Robert Martin aka Uncle Bob, einem ausgewiesenen Praktiker. Selbst McCabes CC hat durchaus ihre Berechtigung. Wer die Gefahren von Risiken kennt und vermeidet, kann sehr gut mit ihnen arbeiten.
Im nächsten und letzten Teil über innere Qualität möchte ich mich den Architekturgerüchen widmen. ()