Technical Debt – Technische Schulden von IT-Systemen erkennen, bewerten und senken
Management Summary
- Technische Schulden sind die negative Eigenschaft eines IT-Systems für Betrieb und Wartung nennenswerte zeitliche und finanzielle Aufwände einzufordern.
- Technische Schulden senken die IT-Entwicklungseffizienz, mindern die Nutzerfahrung und können IT-Systemfehler verursachen.
- Verschiedene Maßnahmen helfen technische Schulden zu messen, zu bewerten und einzudämmen bzw. gar nicht erst entstehen zu lassen.
Application Landscape Management
In einer IT-Systemlandschaft stecken 2 Mio. Dollar Optimierungspotential.
Wie viel können Sie realisieren?
Bestimmen Sie in weniger als 8 Minuten mit 14 Einzelfragen die Optimierungshebel im Management Ihres Applikationsportfolios.
Was sind Technische Schulden?
Zu Beginn eine schlechte Nachricht. Leider existiert für das Bonmot der Informationstechnik ‚Technische Schulden‘ (oft auch Technische Schuld bzw. englisch Technical Debt) keine allgemein akzeptierte Definition. Laut einschlägiger Literatur stellte Ward Cunningham das Phänomen 1992 auf der OOPSLA Konferenz in Vancouver vor. Doch ab dieser Stelle weichen die Quellen ab, erklären nicht konsistent, was Technische Schuld genau ausmacht.
Bleiben wir pragmatisch. Für uns beschreiben Technische Schulden bildhaft die negative Eigenschaft eines IT-Systems für Betrieb und Wartung nennenswerte zeitliche und finanzielle Aufwände einzufordern.
Technische Schulden…
- verringern die IT-Entwicklungseffizienz (insb. Geschwindigkeit und Kapazität) mit denen das bestehende IT-System mit neuen Funktionen und verbesserten Qualitätseigenschaften weiterentwickelt werden kann,
- reduzieren häufig die Nutzererfahrung der immer starrer, fragiler und zäher werdenden Applikation und
- können IT-Systemfehler verursachen, die im Worst-Case zu einem hohen fachlichen Schaden führen.
Erneut mit einer Metapher zusammengefasst: Technische Schulden lassen Ihr Unternehmen für Betrieb, Weiterentwicklung und Nutzung des IT-Systems wiederkehrend Technische Zinsen in Form von Zeit, Qualität und Kosten (bzw. Nerven) bezahlen.
Dabei akkumulieren sich die Schulden im Rahmen der Weiterentwicklung des Systems und vergrößern sich in der Regel mit seiner fortschreitender Nutzungsdauer. Die Zinslast wächst, zum Zins gesellt sich der Zinseszins, Zinseszinseszins usw..
Technische Schulden können bewusst oder unbewusst von den verantwortlichen Entwicklungsteams aufgenommen werden. Falls Sie möchten, können Sie zudem entlang des Software Engineering Prozesses für das IT-System zwischen…
- Architektur- & Design-Schulden (Software und Systemlandschaft)
- Implementierungs- & Build-Schulden (Entwicklungswerkzeuge, Programmcode)
- Test & Releases-Schulden (Testabdeckung, Testdaten, Testgeschwindigkeit)
- Dokumentations-Schulden (Architektur, Nutzung, Entscheidungen)
unterscheiden.
Für die in weiterführender Literatur diskutierten Organisatorischen Schulden wie Prozess-, Anforderungs-, Projektmanagement-, Kultur-, Entwicklungswerkzeugschulden wollen wir an dieser Stelle nicht weiter eingehen und verweisen Sie an die unten stehenden Lesempfehlungen.
„Technical Debt verursachen Ihnen (wiederkehrende) Kosten. Aber auch das Beseitigen und Vermeiden bedarf wiederkehrender Investitionen. Strukturieren, verbessern und erhalten Sie nur, was sich auch wirklich lohnt.“
Geringe IT-Entwicklungseffizienz
Gedrosselte Umsetzungsgeschwindigkeit und Entwickungskapazität
Beeinträchtigte Nutzererfahrung
Starres, fragiles und zähes IT-System
Potentielle IT-Systemfehler
Fehlverhalten, Qualitätsdefizite und mögliche Ausfälle
Wodurch entstehen Technische Schulden?
Wie alles in der Welt altern auch IT-Systeme.
- Geschäftsmodelle und damit Fachprozesse und -anforderungen wandeln sich.
- Nachbarsysteme werden (samt Schnittstellen) ergänzt oder angepasst.
- Basistechnologien erfahren Updates oder werden komplett ersetzt.
Um weiterhin nutzbar zu bleiben und für die Anwender einen (wachsenden) Mehrwert zu stiften, muss ein IT-System weiterentwickelt werden. Dabei bedingen Faktoren wie…
- fachlicher Druck – die übereilte Lieferung vieler neuer Funktionen und Eigenschaften auf Kosten der Systemqualität
- fehlerhafte Code-Implementierung – fehlerhafte Schnittstellenumsetzung, Missachtung von Compiler-Warnungen, nachlässige Codedokumentation etc.
- unzureichende Qualitätsroutinen – unangemessene Testprozesse und fehlende Schuldensensibilität
- komplexe IT-Systeme – groß, monolitisch gewachsen und kaum hoch dynamisch
- fehlendes Knowhow – Treffen falscher technischer Architektur- und Entwicklungsentscheidungen
- ungenügende Governance – das Zulassen von individuellen Entwicklungswerkzeugen und -prozessen
- geringe Kommunikation – mangelnde Abstimmung von Fachanwendern, Entwicklern und Betriebsverantwortlichen
zum unablässigen Anwachsen des Technischen Schuldenbergs.
„Technische Schulden entstehen, wenn bewusst oder unbewusst falsche oder suboptimale technische Entscheidungen getroffen werden.“
– Howard G. Cunningham, US-amerikanischer Programmierer
Garage Method: How to pay back technical debt (3min)
Wie lassen sich Technische Schulden senken?
Eine Reihe von Maßnahmen helfen Ihnen technische Schulden zu messen, zu bewerten und einzudämmen bzw. gar nicht erst entstehen zu lassen. Diese wirken auf der Prozess-, Fach- Organisations- (Business & IT) sowie Systemebene.
Tipp #1: Leitplanken definieren
Verhindern Sie das Entstehen Technischer Schulden, indem Sie für Design, Programmierung und Testing eines IT-Systems feste Prozess-, Ergebnis- und Werkzeugvorgaben vereinbaren. Dazu zählen der verfügbare Technologie-Stack und gültigen Programmcode-Konventionen gleichermaßen wie die Architekturprinzipien und die einzusetzenden Test-Tools.
Tipp #2: Analysewerkzeuge einsetzen
Messen Sie Technische Schulden mit Hilfe von Softwarewerkzeugen. Speziell für den Programmcode gibt es einen Menge ausgereifter kostenfreier und kommerzieller Analyse-Tools, die sogenannte Code-Smells automatisch aufspüren, bewerten und visualisieren sowie Korrekturen vorschlagen.
Tipp #3: Refactoring vorantreiben
Reduzieren Sie die Technische Schuld durch iterativ und kontinuierlich durchgeführte Strukturverbesserung des Programmcodes. Das beobachtbaren Systemverhalten bleibt bei diesen Maßnahmen unangetastet. Beachten Sie: Der Abbau technischer Schulden ist eine langfristige Investition. Halten Sie diszipliniert an Ihrer Reduktionsstrategie fest.
Tipp #4: Entwicklung agilisieren
Verhindern Sie das Entstehen neuer technischer Schulden durch agile Techniken wie das Pair Programming oder der Retrospektive. Verankern Sie in der Definition of Done eine ‚Schuldenbremse‘. Versehen Sie Ihre User Stories zusätzlich zu Story Points ebenfalls mit sogenannten Pain Points.
Tipp #5: Testprozesse optimieren
Vermeiden und senken Sie Technische Schulden durch Test Driven Development, institutionalisierte Code Reviews, automatisiertes Testen und ein gemeinschaftlich Qualitätsbewusstsein. Beherzigen Sie dabei die Broken-Window-Theorie. Bereits ein kleiner Betrag an Technischer Schuld in Architektur, Code, Tests oder Dokumentation sorgt für Nachlässigkeit und damit Anstieg.
Tipp #6: Kompetenzen doppeln
Vermeiden Sie den sprunghaften Anstieg Technischer Schulden aufgrund des plötzlichen Weggangs einzelner IT-Wissensträgers. Verteilen Sie das System-Knowhow auf mehrere Köpfe und lassen Sie das System dokumentieren. Sichern Sie damit die IT-Entwicklungseffizienz ab.
Tipp #7: Kommunikation fördern
Mindern Sie das Anwachsen Technischer Schulden durch visuelle Kommunikation. Das Reduzieren von Schulden ist eine Sache des gesamten Entwicklungsteams. Techniken wie die Story Map, das Datenmodell, der System Footprint oder das Kontextdiagramm helfen ein einheitliches Verständnis zu Ist- und Soll-Stands des IT-Systems sowohl für Fach- als auch IT-Experten zu erzeugen.
Tipp #8: Reduktionsstrategie bewusst wählen
Das IT- und Beratungsunternehmen IBM unterscheidet zwischen zwei Formen der Schuldenreduktion. Bei ‚Höchste Zinsen zuerst‚ beseitigen Sie dort die Technischen Schulden, wo die Auswirkungen am größten sind. Bei ‚Geringster Stand zuerst‚ konzentrieren Sie sich zunächst auf die Quick-Wins und reduzieren die kleinsten technischen Schuldenberge. Beide Ansätze haben ihre Vorteile.
„Wenn eine Gruppe Pfadfinder ihre Zelte für die Nacht aufstellt, dann müssen sie am nächsten Tag den Ort so aufräumen, dass er in einem besseren Zustand ist als bei Ihrer Ankunft. Befolgen Sie auch bei der Änderung von IT-Systemen die Pfadfinder-Regel. Tragen Sie bei der Änderung eines IT-Systems technische Schulden ab.“
Fazit
Bei all den Nachteilen die Technische Schulden mit sich bringen: Bitte tappen Sie nicht in die ‚Zero Technical Debt‘-Falle. Die Technical Debt eines IT-Systems komplett abzubauen ist perfektionistisch und dauerhaft nicht finanzierbar.
Investieren Sie dann in die Reduktion der Technischen Schulden eines Systems, sobald dies seiner Entwicklungs- und Nutzungsproduktivität messbar zu Gute kommt. Moderne Analyse-Tools, ein ausgeprägter Qualitäts-Mindset sowie das bewusste Entscheiden pro oder contra neuer Technischer Schulden helfen die richtige Balance zu halten.
Ebenfalls interessant
TOGAF® 10 – The Open Group Architecture Framework Standard für Manager
Was ist TOGAF® 10? Wie kann TOGAF beim Enterprise Architecture Management helfen? Alles Wichtige zum The Open Group Architecture Framework.
IT-Vision – ein attraktives Zielbild für die Organisation kreieren
Was ist eine gute IT-Vision? Wie grenzt sich diese zur IT-Mission ab? Entwicklung, Beispiele & Vorlagen für das Zielbild der IT-Organisation.
Green IT – Informationstechnik im Einklang mit der Umwelt nutzen
Was ist Green IT? Und wie lässt sich Informationstechnik im Einklang mit der Umwelt aufbauen und nachhaltig betreiben? Alles Wichtige.
Leseempfehlungen
- Brown, Kyle: Pay back technical debt (letzter Abruf: 14.11.2020)
- Cunningham, W.: Debt Metaphor, YouTube Video, 2009 (letzter Abruf: 30.04.2020)
- Lilienthal, C.: Langlebige Software-Architekturen: Technische Schulden analysieren, begrenzen und abbauen, dpunkt.verlag, 3. Auflage, 2019
- Murer, S., Worms C., Furrer, F.: Managed Evolution: Nachhaltige Weiterentwicklung großer Systeme, Informatik-Spektrum 03/2008
- Pötzinger, D.: Technische Schulden in der Software-Entwicklung, YouTube Video, AOE Conference 2016 (letzter Abruf: 30.04.2020)
- Schmidt, M.: Hindernisse wegsprengen – technische und organisatorische Schulden (er)kennen, itemis Blog (letzter Abruf: 30.04.2020)
- Tom, E., Aurum, A., Vidgen, R.: An exploration of technical debt, Journal of Systems and Software, 86(6), 2013
Sie wollen die Technischen Schulden Ihres IT-Systems bewerten und reduzieren?
Gerne unterstützen wir Sie!

Dr. Christopher Schulz
Business Analyst, Enterprise Architect & Projektmanager
Bitte akzeptieren Sie unsere Datenschutzerklärung.