Unsere technischen Anforderungen sind im Kern qualitativer Natur. Eine rein formale Erfüllung ist weder ausreichend noch wirtschaftlich. Der Grad der Erfüllung dieser Anforderungen durch den Anbieter (extern oder internes Entwicklungsteam), bestimmt das verbleibende restliche Änderungskostenrisiko. Für die qualifizierte Begutachtung zur Bewertung dieses Erfüllungsgrades liefern Kennzahlen einige Anhaltspunkte. Ziel ist dabei eine ausreichend verlässliche Abschätzung des Restrisikos.
Bei einer Änderung oder Erweiterung von Software bestimmt sich der
Aufwand anhand von zwei weitgehend unabhängigen Dimensionen:
Präzision und Umfang.
Präzision beschreibt den Aufwand, genau die zu ändernden Stellen
zu finden, zu verhindern, dass zuviel geändert wird, und das Fehlerrisiko hierbei.
Umfang beschreibt den eigentlichen Aufwand für die korrekte Änderung,
summarisch über die gesamte Menge der relevanten Stellen (s. Präzision),
und das Fehlerrisiko dabei.
Die wesentlichen statischen Themen zur Präzision (Testbarkeit, Kodelesbarkeit, synchrone Dokumentation) werden über folgende Anforderungen abgedeckt:
Hinzu kommt als dynamisches Thema die Nachvollziehbarkeit von Abläufen im Quellkode:
Die Kernthemen zum Umfang (Strukturierung, Modularisierung, DRY, Dämpfung von Änderungskaskaden) werden über folgende Anforderungen abgedeckt:
Die Anforderungen (1)‑(6) beziehen sich auf einen
konkreten Stand der Software und ermöglichen somit nur eine
Zeitpunktbetrachtung mit all den bekannten Problemen.
Die Prüfung dieser Anforderungen ermöglicht daher nur eine
eher theoretische Bewertung des Risikos, da es
bei der Änderbarkeit immer um den effizienten
Übergang zu einem neuen Stand dieser Software geht
– ohne Qualitätseinbußen.
Das Vertrauen in eine Bewertung des Änderungskostenrisikos nur auf Basis
eines einzigen Systemstandes, wie er bei einer Endabnahme vorliegt,
ist demzufolge zwangsläufig stark begrenzt.
Erforderlich ist vielmehr eine möglichst häufige Bewertung des Erfüllungsgrades
der Anforderungen (1)‑(6) anhand funktionsfähiger Zwischenstände
des Systems.
So können die Auswirkungen des erreichten Erfüllungsgrades auf die
reale Änderbarkeit beobachtet werden.
Diesem Zweck dient die Anforderung:
Alle diese technischen Anforderungen werden heutzutage bereits mit geeigneten Technologien und Techniken (Best Practices) von guten und darin erfahrenen Entwicklungsteams effizient und in hoher Qualität erfüllt – schon im eigenen Interesse und damit für den Nutzer potentiell kostenneutral.