IS-Rating: Planungssicherheit durch transparente Qualität

Funktionalitäten wieder entfernbar

Hierunter ist die Transparenz der Abbildung der Fachdomaine in den Quellkode zu verstehen und damit in der Folge die Möglichkeit, Funktionalitäten in möglichst kleinen Gruppen sauber wieder aus dem Quellkode entfernen oder austauschen zu können.

Zielsetzungen

  • Reduktion der inhaltlichen Abhängigkeiten zwischen Funktionalitäten (erhöht Entscheidungsspielräume zur Verlagerung von Funktionalität in andere Systeme),
  • Reduktion der inhaltlichen Risiken externer Änderungen (erleichtert die Anpassung an extern vorgegebene inhaltliche Anforderungen),
  • Reduktion der strukturellen Abhängigkeiten zwischen Funktionalitäten (erhöht die Flexibilität und verringert die Risiken von Nebeneffekten bei Änderungen),
  • Reduktion der Wartungsaufwände durch Ausbau nicht mehr genutzter Funktionalitäten (verringert Kosten durch z.B. ursprünglich politisch motivierte Anforderungen).

Erläuterungen

Schon die Anforderungen zu den Unit-Tests erfordern eine gute Modularisierung der Funktionalitäten des Systems. Diese Modularisierung stellt ein wesentliches Qualitätsmerkmal dar, weil Funktionen, die sich nicht leicht wieder ausbauen lassen, sich in den seltensten Fällen leicht und ohne Kollateralschäden ändern lassen.
Ein wichtiger Aspekt bei der inhaltlichen Modularisierung besteht in der Abgrenzung von geschäftskritischen Funktionalitäten, von denen man sich z.B. einen Wettbewerbsvorteil erhofft oder die Geschäftsgeheimnisse beinhalten. Bei allen anderen Funktionalitäten besteht in Zukunft eine höhere Chance, diese durch andere (Standard-)Systeme ablösen zu können. Dieses sollte nicht durch unnötig starke Abhängigkeiten behindert werden.
Bei der Modularisierung ist auch ein besonderes Augenmerk auf die Abhängigkeiten zwischen den Modulen zu werfen. Hier müssen zyklische Abhängigkeiten und ausufernde Kaskadeneffekte über das ganze System bei Änderungen in tieferen Schichten verhindert werden. Diese behindern die Refaktorierung und erhöhen so das Änderungskostenrisiko beträchtlich.
Ein weiteres grundsätzliches Problem besteht in der Duplikation von Teilen des Quellkodes – sei es nun nur eine Konstante oder eine ganze Klasse. In diesem Fall fehlt i.d.R. im System eine entscheidende Information. Haben z.B. zwei Konstanten den selben Wert, so muss bei einer Änderung unmissverständlich klar sein, ob beide immer synchron geändert werden müssen oder nur unter bestimmten Bedingungen oder völlig unabhängig voneinander sind. Wenn Quellkode oder Unit-Tests den korrekten Fall nicht klar kommunizieren, steigt wieder das Änderungskostenrisiko.

Statistische Untersuchungen, wie auch eigene Erfahrungen, zeigen darüber hinaus, dass über die große Lebenszeit vieler Informationssysteme eine Reihe von Funktionen nach einiger Zeit nicht mehr genutzt werden. Dieses kann verschiedenste Gründe haben, auch z.B., dass Teile der Aufgaben inzwischen über ein anderes System abgewickelt werden. Eine detailliertere Analyse kann ebenfalls auf der Basis einer automatisierten Aufzeichnung des Programmablaufs durchgeführt werden.
Es gibt keinen guten Grund diese nicht mehr genutzten Funktionalitäten weiter im System zu belassen. Sie verteuern sowohl den Wartungs- als auch den Änderungsaufwand.

Aus diesem Grund soll das System nicht nur ein internes Modulkonzept besitzen sondern auch ein inhaltliches externes, das es ermöglicht Funktionen bzw. Module abzuschalten und dabei auch wirklich Teile des Quellkodes zu entfernen. Diese Vereinfachung muss sich dann auch in einer angemessenen Reduktion des Wartungspreises widerspiegeln.
Der Anbieter soll also das System als eine Sammlung inhaltlicher Module darstellen und jedem Modul den Anteil an der Wartung zuordnen, der dann bei dessen Abschaltung entfällt.

Qualitätskriterien

Die konkrete Qualität bemisst sich an der Granularität dieser entfernbaren Module und der sauberen Abgrenzung der geschäftskritischen Funktionalitäten.
Darüber hinaus kann die Qualität der Modularisierung (Kopplung, Kohäsion) mit allgemeinen Werkzeugen zur Quellkodeanalyse überprüft werden (s. Plattformunabhängigkeit).

Technische Hinweise, Referenzen

Zu den Werkzeugen gelten hier die selben Hinweise wie zur Plattformunabhängigkeit.

IS-Rating: Planungssicherheit durch transparente Qualität