Technical Debt – Technische Schulden von IT-Systemen erkennen, bewerten & senken
Management Summary
- Technische Schulden (engl. Technical Debt oder kurz Tech Debt) sind die negative Eigenschaften 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. Sie entstehen auf Basis bewusster und unbewusster Entscheidung bei (Weiter-)Entwicklung und Betrieb des Systems.
- Verschiedene Maßnahmen helfen technische Schulden zu messen, zu bewerten und einzudämmen bzw. gar nicht erst entstehen zu lassen. Grundlage ist die Unterscheidung zwischen Symptome, Ursachen und Gegenmaßnahmen.
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.
Definition – Was sind Technische Schulden?
Tatsächlich existiert für das Bonmot der Informationstechnik ‚Technische Schulden‘ (oft auch Technische Schuld bzw. englisch Technical Debt, Technology Debt oder kurz TechDebt) keine allgemein akzeptierte Definition. Beispielsweise definiert Gartner Technische Schulden als angesammelte einem IT-System geschuldete Arbeit. Laut dem Marktforschungsunternehmen sind Technical Debt ein unvermeidbarer Seiteneffekt von Software Engineering. Die Online-Enzyklopädie Wikipedia wiederum sieht in Technischer Schuld die notwendige Nacharbeit die entsteht, sobald eine einfache aber limitierte Lösung einem besseren und meist zeitintensiveren Ansatz vorgezogen wird.
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 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 oder mittels des Tech Stacks eines IT-Anwendung in
- Nutzeroberfläche (Responsive Design, Barrierefreiheit)
- Anwendungslogik (Codebasis, Unit-Tests, Dokumentation)
- Datenbank (Normalisierung, Indexierung, Datenqualität)
- Integrationsschicht (API Dokumentation, Datenübertragung, Abhängigkeiten)
- Infrastruktur (Cloud, Serverkonfiguration, Wartungsautomatisierung)
- Sicherheit (Verschlüsselung, Single Sign on, Monitoring)
kategorisieren.
Für die in weiterführender Literatur diskutierten Organisatorischen Schulden wie Prozess-, Anforderungs-, Projektmanagement-, Kultur- oder 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. Mischen Sie Schuldenabbaumaßnahmen die dem Fachbereich gut vermittelbar sind mit solchen, die insbesondere aus der IT-Perspektive umgesetzt werden sollten.“
Auswirkungen – Weshalb sind TechDebt ein Problem?
Technische Schulden…
- verringern die IT-Entwicklungseffizienz (insb. Geschwindigkeit, Kapazität und Team-Moral) mit denen das bestehende IT-System mit neuen Funktionen und verbesserten Qualitätseigenschaften weiterentwickelt werden kann,
- reduzieren häufig die Nutzererfahrung (insb. Bedienungseffizienz, Zufriedenheit) der immer starrer, fragiler und zäher werdenden Applikation und
- erhöhen das Risiko von IT-Systemfehlern, 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. Um in der Metapher der Finanzwelt zu bleiben: Die Zinslast wächst. Zum Zins gesellt sich der Zinseszins, Zinseszinseszins usw..
Geringe IT-Entwicklungseffizienz
Gedrosselte Umsetzungsgeschwindigkeit und Entwickungskapazität bei verringerter Team-Moral
Beeinträchtigte Nutzererfahrung
Starres, fragiles und zähes IT-System
Potentielle IT-Systemfehler
Fehlverhalten, Qualitätsdefizite und mögliche Ausfälle
Ursachen – Wodurch entstehen Technische Schulden?
Technical Debt entsteht durch bewusste und unbewusste Entscheidungen bei der Entwicklung, dem Betrieb und dem Ausbau eines IT-Systems. Ganz gleich ob Sie Ihre IT-Systeme umsichtig und vorausschauend bereitstellen: Aus unserer Sicht lassen sich die Schulden nicht vollständig verhindern.
- Geschäftsmodelle und damit Fachprozesse und -anforderungen wandeln sich.
- Nachbarsysteme werden (samt Schnittstellen) ergänzt oder angepasst.
- Basistechnologien altern, 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 gewartet und weiterentwickelt werden. Dabei bedingen Faktoren wie…
- fachlicher Druck – die übereilte Lieferung vieler neuer Funktionen und Eigenschaften mittels ‚Abkürzungen‘ auf Kosten der Systemqualität
- fehlerhafte Code-Implementierung – fehlerhafte Schnittstellenumsetzung, Missachtung von Compiler-Warnungen, nachlässige Codedokumentation etc.
- unzureichende Qualitätsroutinen – fehlende Teststrategie, unangemessene Testprozesse und unzureichende Schuldensensibilität
- komplexe IT-Systeme – groß, monolitisch gewachsen und kaum noch beherrschbare Legacy Architekturen
- 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
bei ausbleibenden Gegenmaßnahmen zum unablässigen Anwachsen des Technischen Schuldenbergs.
Dabei sind nicht alle TechDebts gleichermaßen sichtbar. Bekannte Technische Schulden sind für Sie und Ihre Kollegen sichtbar. Unbekannte IT-System-Verpflichtungen liegen jedoch im Nebel und kommen erst durch gezielte Analyseaufträge (z.B. Code-Reviews, Dokumentationsprüfung, Architekturchecks) oder bei Änderungsvorhaben bzw. Fehlerfällen ans Tageslicht.
„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)
„Machen Sie es wie die Formel 1: Bei schlechten technischen Bedingungen vereinbaren Sie mit dem Fachbereich eine Safty Car Phase. Während einer bemessenen Zeit optimiert Ihre IT die Prozesse, Tools und Organisation und steht anschließend wieder für Fachbereich und seine Anforderungen zur Verfügung. Nun ist die Straße frei und Sie können mit Fachfunktionen wieder Vollgas geben.“
Reduzierung – 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 sowohl der während IT-System(weiter)entwicklung als auch dem Systembetrieb. Unterscheiden Sie zwischen…
- Symptomen (z.B. zahlreiche Fehlervorfälle eines IT-Systems, hohe Code-Komplexität),
- Ursachen (z.B. unvollständiges Software Testing, fehlende Coding-Konventionen) und
- Gegenmaßnahmen (z.B. striktes Testmanagement, Coding-Konventionen und Trainings).
Ihr Ziel ist es hohe, unberechenbare Kosten für Wartung & Betrieb eines IT-Systems in den Zustand berechenbare Kosten für Wartung & Betrieb zu überführen. Nachfolgend eine Liste grundlegender Maßnahmen die Tech Debt sowohl nachträglich als auch präventiv zu senken.
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. Im Scope dieser IT Governance Maßnahme liegen 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. Nutzen Sie die durch künstliche Intelligenz bereitgestellten Software Co-Piloten.
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.
Tipp #9: IT-Systeme ausphasen
Jedes neue System hebt die Komplexität Ihrer IT-Landschaft – der technische Schuldenberg wächst. Machen Sie es sich zur Regel bei einer zusätzlich eingebrachten IT-Anwendung eine bestehende Anwendung zurückzubauen. Ein Einschalten bedingt ein Ausschalten.
„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. Technische Schulden wird es immer geben. 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 Ihnen die richtige Balance zu halten.
Ebenfalls interessant
Enterprise Architecture Management – im Pilotprojekt gezielt die EAM Fähigkeit aufbauen
Was ist Enterprise Architecture Management? Wie kann EAM bei Ausrichtung von Business und IT helfen? Alles Wichtige für CIOs und Architekten.
Citizen Development – die IT-Entwicklungskapazität im Unternehmen vervielfachen
Was ist Citizen Development? Und worin liegen die Vorteile von Low-/No-Code-Tools? Alle wichtigen Infos für CIOs, IT-Leiter & technische Entscheider.
Eine IT-Strategie muss ein „lebendes Wesen“ sein – Interview mit Volker Johanning
Wie verankern CIOs erfolgreich die entwickelte IT-Strategie? Interview mit Volker Johanning, Autor, Unternehmer und Management Consultant.
Leseempfehlungen
- Brown, Kyle: Pay back technical debt (letzter Abruf: 14.11.2020)
- Cunningham, W.: Debt Metaphor, YouTube Video, 2009 (letzter Abruf: 30.04.2020)
- Gartner: Information Technology Glossary – Technical Debt (letzter Abruf: 06.03.2024)
- 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
- Orlandini, J., Rader, J., Taglienti, C.: LinkedIn Live: Breaking the Cycle of Technical Debt, BrightTalk Video, 2023 (letzter Abruf: 22.10.2023)
- Pötzinger, D.: Technische Schulden in der Software-Entwicklung, YouTube Video, AOE Conference 2016 (letzter Abruf: 30.04.2020)
- ProductPlan: Technical Debt (letzter Abruf: 06.03.2024)
- 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.