Wissen von A bis Z

Technische Schulden (Technical Debt)

Technische Schulden sind wie ein Kredit mit Wucherzinsen, den man beim Programmieren aufnimmt und der einen später die Freizeit kostet.

Technische Schulden sind ein Sammelbegriff für die zukünftigen Mehraufwände, die durch heute getroffene, suboptimale Entscheidungen in Code, Architektur, Tests oder Tools entstehen. Wie bei finanziellen Schulden "verzinsen" sich technische Schulden – jede Änderung kostet ein Stück mehr Aufwand, je größer die Schuld ist.

Quellen technischer Schulden sind etwa fehlende Tests, schlechte Modularisierung, veraltete Bibliotheken, mangelhafte Dokumentation, Workarounds und nicht umgesetzte Aufräumarbeiten. Ihr Erscheinungsbild reicht von harmlosen Stilfragen bis zu schwerwiegenden Architekturproblemen.

Einsatzzweck der Metapher ist die Übersetzung technischer Probleme in eine Sprache, die auch außerhalb der Entwicklung verstanden wird. "Wir müssen Schulden tilgen" lässt sich Geschäftsführungen oft besser vermitteln als "wir müssen die zyklomatische Komplexität reduzieren".

Der Begriff wurde 1992 von Ward Cunningham geprägt, der ihn ursprünglich verwendete, um seinen Vorgesetzten zu erklären, warum Aufräumarbeiten an einem Smalltalk-Projekt notwendig waren. Später nahmen Martin Fowler, Steve McConnell und andere die Idee auf und differenzierten sie (z. B. "deliberate vs. inadvertent", "reckless vs. prudent").

In der Praxis ist die Schulden-Metapher häufig wirkungsvoll, aber auch missverstanden. Ward Cunningham selbst betont, dass nur bewusst eingegangene Kompromisse echte Schulden seien – chaotischer, schlecht durchdachter Code ist eher ein Krankheitsbild als ein Kreditgeschäft. Diese Unterscheidung ist für gesunde Modernisierungsdebatten wesentlich.

Zurück