Architekturberatung im Software-Engineering
Evaluation von Systemstrukturen und Entwicklungsprozessen
Softwarequalität ist dynamisch und das Resultat aktiver Steuerung.
Gleichzeitig wächst die Komplexität technischer Systeme rasant und verlangt eine gezielte Steuerung
(controlled Self-Governance/architectural governance).
Um Qualität, Stabilität, Leistungsfähigkeit und Anpassungsfähigkeit systematisch zu erhöhen,
werden Steuerungsinstrumente und Methoden der Validierung und Verifikation speziell
für industrielle Systeme ständig weiterentwickelt.
Da sich die Systemumgebung und die Anforderungen der Stakeholder ändern,
werden erfolgreiche Softwaresysteme zwangsläufig ständig weiterentwickelt.
Ohne zielgerichtetes Refactoring (ohne aktive Steuerung) ergibt sich ein bekanntes Phänomen,
das sich branchenübergreifend mustertypisch beobachten lässt (siehe Abbildung 1).

Abbildung 1: Das Phänomen „Technische Schulden“ (Kruchten et al., 2019)
Die Gründe für das Phänomen „Technische Schulden im Software-Engineering“ sind umfangreich untersucht.
Eine wesentliche Ursache ist die projektbezogene Finanzierung;
damit werden Anforderungen priorisiert, die einen direkten Geschäftswert (Projektnutzen) generieren.
Software-Qualitätsmetriken (wie Wartbarkeit, Modularisierung und Isolation) sind daher stark unterrepräsentiert.
Formulierte Qualitätsziele und gemessene Metriken driften auseinander;
die entstehende Diskrepanz lässt sich auf Organisationsebene messen.
Kruchten, Nord & Ozkaya argumentieren, dass mit Entscheidungen über kurzfristigen Nutzen langfristige Kosten einhergehen können.
Technische Schulden haben damit neben einer technischen auch eine organisatorische und ökonomische Dimension.
Quelle:
Kruchten et al. (2019),
Kruchten, Nord & Ozkaya (2012)
Das Muster:
Abhängig von der Organisation entstehen bereits nach einem Jahr aufgrund der Vernachlässigung qualitativer Anforderungen erhöhte Kosten in der Entwicklung.
Nach wenigen Monaten sinkt die Produktivität messbar, Fehlerkorrekturen nehmen zu, Entwicklungsgeschwindigkeit (Velocity) und Entwicklungskapazität mit direktem Geschäftswert nehmen ab.
Nach wenigen Jahren übersteigen Aufwände für Fehlerkorrekturen die Kosten der Entwicklung, die Externalisierungsquote steigt und trägt zur Beschleunigung der Architektur-Erosion bei;
die (fehlende) strategische Ausrichtung verstärkt das Phänomen und wirkt unmittelbar auf die Wettbewerbsfähigkeit.
Dabei hängen Ausmaß und Verlauf wesentlich von Systemarchitektur, Entwicklungspraktiken und organisatorischen Rahmenbedingungen ab.
Unkontrollierte Systemkomplexität und eine hohe Feature-Priorisierung führen zwangsläufig zu technischen Schulden und schleichender Architekturerosion;
flankierend wirken „Architectural smells“. Sie gelten als eine bekannte Begleiterscheinung technischer Schulden und
beeinträchtigen zusätzlich die Wartbarkeit und inbesondere die Erweiterbarkeit komplexer Systeme.
Daher ist das Management sich ändernder Anforderungen ein andauernder Prozess
der Feststellung von Veränderungen,
der Neubewertung von Risiken sowie
der Evaluierung von Systemen.
Darüber hinaus sind mit dem Prozess Kosten und eine Reihe von Herausforderungen verbunden. Werner et al. (2021)
Daraus ergibt sich eine wesentliche Aufgabenstellung im Software-Engineering: Die differenzierte Analyse qualitativer Merkmale,
auch da moderne Regulatorien wie der EU Cyber Resilience Act (CRA) oder die ISA/IEC 62443 Series einen Nachweis der Beherrschbarkeit von Sicherheits- und Qualitätsrisiken über
die gesamte Produktlebensdauer verlangen.
Für eine unabhängige Studie stehen wir gerne zur Verfügung