Technical Debt – Technische Schulden von IT-Systemen erkennen, bewerten und senken

von Business-IT-Alignment

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.

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
  • fehlendes Knowhow – Treffen falscher technischer 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.

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ählt der verfügbare Technologie-Stack gleichermaßen wie die gültigen Programmcode-Konventionen 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 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 durchgeführte Strukturverbesserung des Programmcodes. Das beobachtbaren Systemverhalten bleibt bei diesen Maßnahmen unangetastet.

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 zu erzeugen.

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.

Leseempfehlungen

  • 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

Dr. Christopher Schulz

Managing Partner

Dr. Christopher Schulz berät seit 2007 Kunden in der Automobil- und Bankenbranche an der Schnittstelle zwischen Business und IT.

Er studierte Informatik am KIT in Karlsruhe und an der INSA de Lyon. Seine Consulting Schwerpunkte liegen im Enterprise Architecture Management sowie der Business Analyse.

Neben Kundenprojekten gibt Christopher seine Expertise mittels Fachartikeln, Vorträgen und Trainings weiter. Christopher bloggt leidenschaftlich gerne. Er ist verheiratet und hat zwei Kinder.

Bitte akzeptieren Sie unsere Datenschutzerklärung.

3 + 9 =