Architekturberatung im Software-Engineering
Evaluation von Systemstrukturen und Entwicklungsprozessen
Mit einem Anteil von etwa 75 Prozent am Cost of Poor Software Quality (CPSQ) verursachten
operative Softwareausfälle und Systemabstürze rund 1,56 Billionen US-Dollar in den USA (Stand 2022).
Seit Jahren stiegen diese Werte weltweit, wobei ein wesentlicher Teil auf Schwachstellen und Softwarefehler zurück gehen.
Gleichzeitig wächst die Komplexität technischer Systeme rasant und verlangt eine gezielte Steuerung:
Systemumgebung, Anforderungen und Produkte ändern sich und entwickeln sich weiter.
Ohne aktive Steuerung ergeben sich verschiedene Phänomen, darunter eines, das sich branchenübergreifend und nahezu mustertypisch beobachten lässt
(siehe Abbildung 1).
Wir analysieren Entwicklungsprozesse und Methoden und entwickeln Steuerungsinstrumente für softwaregetriebene Organisationen,
mit dem Ziel die Qualität (Stabilität, Leistungsfähigkeit und Anpassungsfähigkeit) systematisch zu erhöhen.
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.
Das Muster:
Aufgrund der Vernachlässigung qualitativer Anforderungen entstehen erhöhte Kosten in der Entwicklung.
Nachfolgend sinkt die Produktivität, Fehlerkorrekturen nehmen zu, Entwicklungsgeschwindigkeit (Velocity) und Entwicklungskapazität mit direktem Geschäftswert nehmen ab.
Aufwände für Fehlerkorrekturen übersteigen die Kosten der Entwicklung, die Externalisierungsquote steigt und trägt zur Beschleunigung der Architektur-Erosion bei.
Eine (fehlende) strategische Ausrichtung verstärkt das Phänomen und wirkt unmittelbar auf die Wettbewerbsfähigkeit
(Technical Dept Management).
Dabei hängen Ausmaß und Verlauf wesentlich von Systemarchitektur, Entwicklungspraktiken und organisatorischen Rahmenbedingungen ab.
Quelle:
Kruchten et al. (2019),
Kruchten, Nord & Ozkaya (2012)
Softwarequalität ist dynamisch und das Resultat aktiver Steuerung.
Die Aufgabe der Architektur verstehen wir als Software Engineering Decision Support (SEDS).
Als Zusammenführung organisatorischer Ziele sowie (sozio-)technischer und methodischer Erkenntnisse und Möglichkeiten,
um geeignete Rahmenbedingungen für eine wettbewerbsfähige und planbare Software-Entwicklung zu schaffen.