Technical Debt

Was bedeutet der Begriff Technical Debt?

Technical Debt, auf Deutsch "Technische Schuld" beschreibt die Kosten, die eine ungenügende technische Qualität einer Software nach sich zieht.

Das Konzept bezieht sich auf Defizite in den internen Strukturen einer Software, die im Laufe der Entwicklung dieser Software entstehen. Diese Defizite können unbewusst, z.B. aus Unwissenheit, oder einem Mangel an Know how oder Erfahrung entstehen. Meistens sind es jedoch bewusste Entscheidungen, die daraus resultieren, dass man als Entwickler erst im Laufe der Umsetzung lernen konnte wie die optimale Struktur des Programmcodes aussieht. Da die zur Verfügung stehende Zeit für die Umsetzung anderer Funktionalität verwendet werden soll, wird darauf verzichtet durch Methoden wie Refactoring des Anwendungscodes die Struktur des Codes zu verbessern, ohne seine Funktionalität zu ändern.

In vielen Fällen wird auch von vornherein auf eine sub-optimal Struktur gesetzt, um bei der Umsetzung Zeit zu sparen. Dies hat kurzfristig keine negativen Konsequenzen. Sobald die Software jedoch geändert oder erweitert werden soll und diese größer und komplizierter wird, kosten solche problematischen Strukturen Zeit. Erweiterungen sind komplexer und benötigen mehr Zeit als es idealerweise der Fall sein sollte.

Die Metapher der technischen Schuld soll verdeutlichen, dass es sich damit ähnlich verhält wie mit finanziellen Schulden. Man muss Zinsen für eine Schuld bezahlen. Bei einer technischen Schuld entspricht dieses der Zeit, die für eine Änderung oder Erweiterung durch die technischen/strukturellen Defizite aufgewendet werden muss.

Aber wie geht man mit technischer Schuld um?

Technische Schuld ist nicht an sich schlecht oder gut. Es kann Sinn machen, eine Software ganz bewusst mit einem gewissen Grad an technischer Schuld zu entwickeln, damit sie schneller eingesetzt werden kann, schneller am Markt ist, oder die Entwicklung in einem bestimmten Budgetrahmen bleibt. Will man die Software weiter entwickeln, muss man jedoch irgendwann die Schuld abtragen und die Zinsen zahlen!

Es gibt also für jedes Projekt und jede Situation ein sinnvolles Maß an technischer Schuld, welche man aufnehmen, akzeptieren und tragen sollte.

Wir nutzen das Konzept der technischen Schuld, um solche qualitativen Aspekte in der Entwicklung einer Software zu managen. Wenn unsere Kunden eine Software nachhaltig und langfristig nutzen möchten, so behalten wir gemeinsam mit Ihnen im Blick, wieviel technische Schuld es geben sollte und wie damit umgegangen werden kann, also wann und in welchem Rahmen sie abgebaut wird.