Technical Debt - Risiken, Management technischer Schulden und die Rolle von KI

Technische Schulden sind eines der größten Risiken im Kontext IT und Softwareentwicklung. Hier findest Du eine Erklärung zu technischen Schulden, ihren Ursachen und Strategien für ein produktives Management

Andreas Diehl
From dno

Technische Schulden (engl. technical debt) sind eines der größten (versteckten) Risiken im Kontext IT und Softwareentwicklung. Sie führen zu Mehraufwand im Betrieb von Systemen, sinkender Agilität und Innovationskraft und können bis zum völligen Stillstand führen. Dabei entstehen technische Schulden vordergründig durch fahrlässige Planung oder schlechten Softwarecode, haben ihre tieferliegenden Ursachen jedoch auch in umliegenden Rahmen- und Systembedingungen, in denen Software Teams agieren.

In diesem Artikel findest Du eine Erklärung zu technischen Schulden, ihren Ursachen und Strategien für ein produktives Management. Schließlich sollten alle an einem Projekt beteiligten Stakeholder verstehen, was technische Schulden sind und wie damit umzugehen ist. Für mehr Verständnis technischer Schulden auch bei "non-techies" und erfolgreiche Softwareprojekte.

TLTR - Technical Debt in a nutshell

  • Technische Schulden sind versteckte Belastungen in Softwaresystemen mit weitreichenden negativen Folgen, wie zusätzliche Kosten, Qualitätsprobleme, sinkende Agilität und Innovationskraft und bis hin zur völligen Unbrauchbarkeit von technischen Systemen.
  • Technische Schulden können absichtlich (strategisch) oder unabsichtlich (durch Inkompetenz) entstehen. Ein Verständnis der systemischen Ursachen ist elementar, um technical debt zu minimieren.
  • Teams sollten technische Schulden aktiv managen, indem sie entsprechende Aufgaben im Backlog priorisieren, Zeit für Refactoring einplanen und Stakeholder coachen.
  • Die Vermeidung und das Management von technischen Schulden ist ein Team Effort, nicht alleine Aufgabe der Softwareentwickler.

Was sind technische Schulden?

Technische Schulden (engl. technical debt) sind versteckte Belastungen in Softwaresystemen. Der Begriff wurde in den 1990ern von Ward Cunningham geprägt, der ganz bewusst den Vergleich mit finanziellen Schulden wählte, um Managern und Unternehmen die Problematik verständlich zu machen und für einen bewussten Umgang zu sorgen. Schließlich kannst Du diese Metapher nun ganz praxisnah weiterführen. Denn erstens musst Du deine Schulden irgendwann tilgen und zweitens bis dahin eine Menge Zinsen zahlen.

  • Zinsen: Wer Schulden hat, muss Zinsen zahlen. Die Zinsen für technische Schulden zahlst Du in Form höherer Belastungen im Betrieb, z.B. durch mehr Bugs und aufwändigere Bearbeitung sowie der Weiterentwicklung eines Systems.
  • Tilgung: Die Tilgung deiner technischen Schulden erfolgt durch gezielte Refactorings, d.h. Anpassungen des Codes und vor allem der Architektur. Im Extremfall kannst Du technische Schulden nur durch einen kompletten Neustart loswerden, Du meldest sprichwörtlich also Insolvenz an und beginnst von vorne.

Mit dieser Metapher kannst Du den Begriff der technischen Schulden hoffentlich jedermann erklären.

Weitreichende Konsequenzen technischer Schulden

Technische Schulden haben über die direkten unmittelbaren Folgen einen ganzen Rattenschwanz unangenehmer Begleiterscheinungen.

  • Qualität / Fehleranfälligkeit
  • Auftretende Bugs, dadurch möglicherweise auch negative Kundenerfahrungen.
  • Höhere Betriebskosten
  • durch höheren Aufwand im Betrieb und Wartung von Systemen, z.B. durch mehr Bugs und aufwändigere Bearbeitung
  • Frust und Stress -  Unnötige Arbeitsbelastung durch permanentes “hot fixing", fehlende Handlungskompetenz bis zum Gefühl der völligen “Ohnmacht” senken Arbeitszufriedenheit und Leistungsfähigkeit von Software-Teams.
  • Sinkende Agilität
  • Technische Schulden führen zu aufwändigen Umsetzungen, langsamen Reaktionszeiten, erhöhen die Komplexität (known unknowns, unknown unknowns) und erschweren damit die Planbarkeit von Aufgaben.
  • Keine Skalierbarkeit - technische Schulden verhindern und blockieren die Skalierbarkeit von Systemen.
  • Fehlende Innovationskraft
  • Technische Limitierungen führen zu schwerfälligen bis unmögliche Implementierung neuer Ideen und Systeme.

Der Technical Debt Quadrant - Vier Arten von technischen Schulden

Um die Ursachen und die Entstehung von Technical Debt besser zu ordnen, hat Martin Fowler den Technical Debt-Quadranten eingeführt.

Grafik Der Technical Debt-Quadrant mit eigenen Anmerkungen (grün) - Quelle: Andreas Diehl / Martin Fowler

Der Technical Debt-Quadrant mit eigenen Anmerkungen (grün) - Quelle: Andreas Diehl / Martin Fowler

In seinem Technical Debt-Quadranten unterscheidet Martin Fowler einerseits, ob technische Schulden absichtlich gemacht werden (↕ deliberate - inadvertent) und wie umsichtig damit umgegangen wird (↔ reckless - prudent). Das heißt, technische Schulden sind nicht per se schlecht, sondern werden mitunter auch bewusst und strategisch gemacht.

1. Deliberate & Reckless - “We don’t have time for design.”

Dieser Quadrant steht für technische Schulden, die bewusst und rücksichtslos in Kauf genommen werden. Wenn jemand sagt „We don’t have time for design“, weiß das Team meist ganz genau, dass technische Schulden entstehen und spart sich aber trotzdem bewusst Konzeption und Design, um schneller liefern zu können. Im Unterschied zum zweiten Quadranten werden diese technischen Schulden rücksichtslos in Kauf genommen, ohne die Absicht zu verfolgen, künftige Nachbesserungen einzuplanen. Sozusagen eine “Nach mir die Sintflut" Haltung.

2. Deliberate & Prudent - “We must ship now and deal with the consequences.”

Dieser Quadrant beschreibt technische Schulden, die bewusst und mit Bedacht aufgenommen werden. Das heißt, das Team liefert jetzt schnell, weiss aber, dass es nacharbeiten muss. Diese Art der technischen Schulden steht also für eine kalkulierte und strategische Priorisierung, z. B. bei MVPs oder knappen Deadlines. Die technischen Schulden werden bewusst gemacht, sind aber Teil eines Plans.

3. “Inadvertent & Reckless“ - “What’s layering?“

Dieser Quadrant steht für technische Schulden, die durch fehlende Kompetenz entstehen. Dabei steht die Frage “What’s layering?“ beispielhaft für fehlendes Wissen in der Planung von Software-Architekturen, wenn Entwickler z.B. UI (User Interface), Business Logik und Datenzugriff nicht sauber voneinander trennen. Diese technischen Schulden entstehen aus Unwissenheit und Nachlässigkeit und sind oft die Folge von “billig einkaufen”.

4. “Inadvertent & Prudent“ - “Now we know how we should have done it.”

Dieser Quadrant steht für unwissentlich entstandene technische Schulden, die später erkannt und reflektiert werden. Das heißt, das Team merkt im Betrieb und der Weiterentwicklung, dass grundlegende Fehler gemacht wurden. Vielleicht sind diese technischen Schulden auch nur die Folge sich verändernder Anforderungen oder die Folge einer "unbewussten Inkompetenz”. In einem agilen Verständnis führen diese technischen Schulden zu einem besseren Verständnis und zukünftiger Verbesserung. Das heißt, das Team geht auch mit diesen technischen Schulden reflektiert und umsichtig um.

Systemische Ursachen für technische Schulden

Der Technical Debt Quadrant beschreibt technische Schulden aus Sicht eines Software-Teams. Hier ein paar Blicke über den Tellerrand und Hypothesen zu den systemischen Ursachen technischer Schulden.

Schaubild: Was verursacht technische Schulden?
  1. Unrealistische Zielvorgaben: Unrealistische zeitliche Planungen - oft von Stakeholdern, die nicht direkt an der Umsetzung beteiligt sind - zwingen Teams in schnelle Umsetzung.
  2. Zu enger Fokus auf nachweisbaren Business / Customer Value: Der Abbau technischer Schulden erzielt keinen direkten sichtbaren Wert. So werden Sprints oberflächlich als “unproduktiv” eingeschätzt, obwohl durch gezieltes Refactoring wichtige Voraussetzungen für zukünftige Umsetzungen geschaffen werden. Deswegen definiert die WSJF-Methode z.B. Aspekte wie das "Opportunity Enablement” als wichtigen Bestandteil einer Priorisierung.
  3. Change in context: Rahmen- und Marktbedingungen verändern sich, dadurch auch Anforderungen an Produkte und Plattformen. Zudem verändern sich Technologien, so entstehen technische Schulden auch “ganz natürlich”. Wie ein wenig Unkraut im Garten.
  4. Alter des Systemes: Diese Form der technischen Schulden entspringt ebenfalls einer ganz natürlichen Evolution. Irgendwann haben Technologien und Systeme möglicherweise ihren “end of lifecycle” erreicht.
  5. Kostendruck: Die Beherrschbarkeit von Software sollte eine strategische Kernkompetenz sein. Tatsächlich werden Verhandlungen für den Einkauf externer Partner oft unter Kostengesichtspunkten geführt. Das führt dann zu fehlender Kompetenz oder dem Streichen von wichtigen Angebotspunkten, wie z.B. der Planung und Konzeption.
  6. Zu wenig Zeit für Konzeption / Design: Agiles Arbeiten wird oft mit “einfach mal schnell machen” verwechselt. Entsprechend werden konzeptionelle Aufgaben als potentielle "Zeitverschwendung" eingestuft. Dabei hat Bent Flyvbjerg eindrucksvoll belegt, dass ausreichend Zeit für Planung, Konzeption und schnelles Prototyping wichtige Voraussetzungen für den Projekterfolg sind.
  7. Geringe digitale Kompetenz bei Entscheidern: Fehlende Kompetenz bei Stakeholdern, die durch ihre Entscheidung Einfluss auf die Priorisierung haben.
  8. Fehlende psychologische Sicherheit: Über technische Schulden zu sprechen und Maßnahmen zu diskutieren erfordert Offenheit, Konfliktmut und auch der “Überbringer schlechter Nachrichten” zu sein. Das erfordert ein gewisses Maß an psychologischer Sicherheit. Sonst werden Probleme auch gerne mal totgeschwiegen, was zu einem Zusammenbruch von Unternehmen führen kann (Bsp. Nokia).
  9. Zu wenig Testing / Dokumentation / Code-Reviews: Teams testen ihre Arbeit nicht ausreichend, Tests sind nicht automatisiert und Softwarecode ist nicht dokumentiert.
  10. Erfahrung / Skills im Team: Teams sind zu juniorig, es fehlt an Erfahrung und Kompetenz.
  11. Fehlendes Alignment: Gerade bei verteilten Teams zu wenig Synchronisation auf dem zweiten Flight Level.
  12. Team Dynamik : Schließlich kann auch ein schwaches Scrum Team die Ursache für technische Schulden sein. Der Product Owner ist technisch nicht versiert genug, das Engineering Team testet nicht und schweigt und der Scrum Master kriegt nichts mit. So werden technische Schulden immer weiter geschrieben.
  13. Zu viel “selber machen” statt strategische Entscheidungen
    • Viele Entwickler schreiben gerne Softwarecode. Das kann dazu führen, dass ggf. Teile der Lösung selbst entwickelt werden, statt gezielt auf verfügbare Open Source, Plattform- oder Infrastructure as a Service Angebote zu setzen.  Natürlich erhöht auch das unter Umständen die Komplexität eines Systems, senkt jedoch das Risiko technischer Schulden. Eine schwieriger Balanceakt, der gute strategische Entscheidungen braucht.

Technische Schulden im Zeitalter von KI - The good, the bad, the ugly side of AI

Künstliche Intelligenz und Agentic AI sorgen im Hinblick auf technische Schulden für ein gewisses Paradoxon. Denn KI-gestützte Programmierwerkzeuge und automatisierte Systeme haben einen zunehmenden Einfluss auf die Softwarearchitektur. Sie sorgen einerseits für den Auf- und vor allem aber den Abbau technischer Schulden. Welche Seite dominiert, liegt vor allem an einem Verständnis für KI und für einen verantwortungsvollen Umgang mit diesen neuen Werkzeugen.

The bad side of AI: KI treibt technische Schulden nach oben

Entwickler können mit Werkzeugen wie Cursor oder Bolt sehr schnell programmieren. So  entstehen neue technische Schulden, weil weniger manuelle Code-Reviews stattfinden, Tests fehlen oder die Entwickler ihren eigenen Code weniger gut kennen. Außerdem werden von KI vorgeschlagene Lösungen oft unverändert übernommen. Dadurch kann eine starre Software-Architektur entstehen und es werden technische Schulden aufgebaut.

The good side of AI: Positive Folgen von KI

KI-Lösungen helfen, technische Schulden zu erkennen und besser zu verwalten. So können KI-Agenten automatisch problematische Codestellen, fehlende Tests oder schlechte Dokumentation finden. Dadurch werden Fehler und Probleme schneller erkannt und behoben. KI-Tools geben Entwicklern außerdem Vorschläge für bessere Lösungen und erinnern regelmäßig daran, den Code sauber zu halten. Sie können sogar vorhersagen, wo später Probleme auftreten könnten. Dadurch treffen Entwickler bessere Entscheidungen, vermeiden neue technische Schulden und verbessern allgemein die Qualität ihrer Software.

Das produktive Management technischer Schulden im Scrum Team

Technische Schulden lassen sich nur in der Theorie ganz vermeiden. Für mich gehören sie zur Entwicklung von Softwaresystemen dazu, wie Verletzungen zum Sport. Ganz vermeiden kann ich sie nicht, aber ich kann einen guten Umgang damit pflegen oder sogar auch prophylaktische Maßnahmen treffen. Dazu ein paar Anregungen, wie Scrum Teams mit technischen Schulden arbeiten.

  1. Management im Backlog
  2. Technische Schulden bzw. entsprechende Maßnahmen gehören ins Backlog und durch den Product Owner priorisiert.
  3. Spikes / Prototypen
  4. Ideen und Konzepte sind in frühem Stadium sehr unreif; daraus saubere Konzepte abzuleiten kommt der Quadratur des Kreises gleich.  Entsprechend sollten Entwickler und Product Owner sich auf Spikes und Prototypen verständigen und auch bereit sein, die erzielten Inkremente zu verwerfen.
  5. Strategie - Teilweise entstehen technische Schulden, weil es kein gemeinsames Bild der Plattform- und Produktstrategie gibt. Also investiert regelmäßig Zeit in Strategie Sessions, um immer wieder über die Ausrichtung des Produktes zu sprechen, z.B. flankiert durch die OKR Methode. Denn nur so kann auch eine tragfähige Architektur entstehen und technische Schulden vermieden werden.
  6. Coaching von Stakeholdern
  7. Je mehr Einfluss Stakeholder auf Priorisierung und Budgetierung haben, desto mehr sollten Scrum Master und auch Product Owner beteiligte Stakeholder für die Entstehung von technischen Schulden und für entsprechende Gegenmaßnahmen sensibilisieren.
  8. Retrospektiven - Im Rahmen von Retrospektiven solltest Du möglichen systemischen Ursachen auf den Grund gehen.
  9. Product Owner und Entwickler coachen
  10. Als Scrum Master solltest Du Product Owner und Entwickler coachen, wie sie produktiv mit technischen Schulden umgehen. Product Owner müssen lernen entsprechende Maßnahmen zu priorisieren. Software-Teams und -Entwickler sollten vom Scrum Master gecoacht und ermutigt werden, ihre fachliche Expertise auf Augenhöhe einzubringen und sich für den gezielten Abbau technischer Schulden einzusetzen
  11. Auslastung managen -  Entwickler sollten ausreichend Raum und Zeit haben, um autonom  Refactorings machen zu können. Schließlich sind gute Entwickler von Haus aus an guter Architektur und sauberem Code interessiert. Das heißt, statt jeden Sprint mit Stories voll zu packen, solltest Du einen gewissen Anteil oder sogar vielleicht einmal ganze Sprints nur dem Refactoring, also dem Überarbeiten von Codes, widmen. Die Refactoring Sprints geben auch Product Ownern Zeit, strategisch zu arbeiten, statt in der Vorbereitung des kommenden Sprints zu versinken. Diese Refactoring Sprints können gut in ruhige Jahreszeiten gelegt werden (z.B. Ferienzeit), wenn es Business seitig etwas ruhiger zugeht.
  12. Upskilling
  13. Sofern technische Schulden durch fehlende Kompetenz verursacht werden, solltest Du in Upskilling der Leute investieren oder mehr seniore Kapazitäten anheuern.
  14. Code-Reviews / Pair Programming
  15. Mehr Kollaboration fördern und ritualisieren, z.B. durch gemeinschaftliche Code Reviews oder Pair Programming.

FAQ – Technische Schulden

Wie kommuniziere ich technische Schulden an nicht-technische Stakeholder?

Nutze die Metapher der Schulden, Zins und Tilgung.: Erkläre die Konsequenzen und  zeige auf, wie sehr Schulden das Projekt und Teams belasten, welche Risiken sich darin verbergen und wie technical debt Innovationen und Fortschritt blockieren.

Sind technische Schulden immer schlecht?

Nein. In manchen Fällen kann es strategisch klug sein, sie bewusst einzugehen, z. B. für eine schnelle Markteinführung. Die Schlüsselstrategie ist dann, sie frühzeitig zurückzuzahlen.

Wie viele technische Schulden sind akzeptabel?

Das hängt vom Projekt ab. Geringe technische Schulden sind oft vertretbar, wenn es eine Exit-Strategie gibt. Zu viele ungelöste Schulden führen aber zu unkontrollierbaren Problemen.

Wie finden Teams die Balance zwischen Geschwindigkeit und Qualität?

Durch bewusste Entscheidung: Muss der Code schnell sein oder langfristig wartbar? Klare Coding-Guidelines und regelmäßige Refactorings helfen, technische Schulden unter Kontrolle zu halten

Fazit - Technische Schulden als Team Effort und Constraint organisatorischer Agilität

Technische Schulden sind ein unvermeidbares Thema in der Softwareentwicklung. Statt jedoch in Schuld, Scham und Schande zu versinken, sollten Teams technische Schulden “bei den Hörnern packen”, gezielt abbauen und langfristig die systemischen Voraussetzungen dafür schaffen, dass technische Schulden auf ein Minimum reduziert werden. Das ist eine Aufgabe aller am Projekt Beteiligten und sollte nicht allein Aufgabe der Softwareentwickler sein. Damit sorgst Du schließlich dafür, dass technische Schulden nicht deine organisatorische Agilität begrenzen.

Kommentare

-

Formular

Lade Formular…

Formular konnte nicht geladen werden. Bitte versuche es erneut.