Technische Schulden (technical debts)

Als technische Schulden werden Qualitätsmängel in der Produktentwicklung bezeichnet, die während eines Projekts in Kauf genommen werden. Technische Schulden entstehen z.B., wenn auf Tests verzichtet oder deren Umfang vernachlässigt wird oder Teile der Definition of Done nicht eingehalten werden.
Der Begriff „Schulden“ kennzeichnet dabei denselben Umstand, den man aus dem Finanzwesen kennt:
Wer sich Geld leiht, muss dieses zuzüglich Zinsen zurückzahlen. Es gibt allerdings einen gravierenden Unterschied zur aktuellen Zins-Situation auf dem Finanzmarkt:

Tilgen von technischen Schulden

Bei technische Schulden in der Software-Entwicklung sagt man, dass zum Tilgen von 1€ Schulden 4€ aufgewendet werden müssen.
Man sollte sich also tunlichst überlegen, ob man bereit ist, technische Schulden zu machen, es sei denn es geht um einen Wegwerf-Prototypen.

Warum werden trotzdem technische Schulden gemacht?

Ursachen technischer Schulden

Ursächlich ist zumeist weniger mangelndes Qualitätsbewusstsein im Team als folgende häufige Gründe:

  • Unrealistische zeitliche Zielsetzungen bzw. das Vorziehen von „Deadlines“, ohne dass der Funktionsumfang verringert wird. Das Team versucht dann, denselben Funktionsumfang in weniger Zeit zu realisieren. Dies geht nur auf Kosten der Qualität
  • Im Team herrscht Stress, der wiederum durch unterschiedliche Ursachen hervorgerufen werden kann:
    • Überstunden,
    • Zeitmangel,
    • Umstellung infolge von Umstrukturierungen des Teams,
    • Einflüsse aus dem Management,
    • Kompensation ausgefallener Mitarbeiter,
    • anhaltende technische Probleme,
  • Unverhältnismäßige Vergrößerungen des Product Backlogs oder unverhältnismäßig häufige Anpassungen von User Stories: Das Team muss viel Zeit aufwenden, um die geänderten User Stories neu zu bewerten. Diese Zeit fehlt in der Folge an anderer Stelle
  • Fehlerhafte Architektur-Entscheidungen, die nicht oder zu spät angegangen werden