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.“

Dr. Christopher Schulz

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.“

Dr. Christopher Schulz

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 

Leseempfehlungen

Sie wollen die Technischen Schulden Ihres IT-Systems bewerten und reduzieren?
Gerne unterstützen wir Sie!

Dr. Christopher Schulz

Dr. Christopher Schulz

Business Analyst, Enterprise Architect & Projektmanager

Bitte akzeptieren Sie unsere Datenschutzerklärung.

14 + 6 =