Wie entsteht Technische Schuld, wie erkennt man Sie frühzeitig – und wie wird man sie wieder los? Entwickler sollten in der Lage sein, sich die Problematik bewusst zu machen, ehe die Auswirkungen überhaupt erst spürbar werden. Auch, um sich selbst die Arbeit zu erleichtern...
Bild 1: Grafische Veranschaulichung der technischen Schulden.
(Bild: Vector Informatik)
Technische Schuld findet man in jeder Software, mal mehr und mal weniger. Sie gilt als eher lichtscheu und vermehrt sich prächtig, solange sie ignoriert wird. Technische Schuld ist sehr beliebt, da sie dabei hilft, auch anspruchsvolle Terminvorgaben einzuhalten ohne übermäßigen Aufwand spendieren zu müssen. Dennoch sind ihr nicht alle Menschen wohlgesonnen, da ihre Pflege langfristig zunehmend mehr Zeit in Anspruch nimmt. Man sagt ihr auch nach, dass sie für Softwarefehler oder sogar Terminverzögerungen verantwortlich sein soll. Wie ist das möglich?
In diesem Beitrag wollen wir der technischen Schuld die Aufmerksamkeit schenken, die sie verdient. Welche Arten von technischer Schuld gibt es, wo finden wir sie, wie kommt es zu Ihrer Vermehrung und was können wir dafür tun einem exponentiellen Wachstum entgegenzuwirken. Insbesondere wird die Frage beleuchtet, warum sich technische Schuld nicht mit Softwarequalität verträgt, die sich trotz des kurzfristigen, nicht unerheblichen Mehraufwandes, wegen der langfristigen Haltungsvorteile zunehmender Beliebtheit erfreut.
Was ist „Technische Schuld"?
Der Begriff der „Technischen Schuld“, abgeleitet vom englischen „Technical Debt“, bezeichnet eine technische Verschuldung, also sozusagen die Aufnahme eines technischen Kredits. Im Deutschen kann „Schuld“ aber auch im Sinne von „schuldig“ verstanden werden, was automatisch negativ assoziiert und eher in der Rechtsprechung verortet ist. Eine eindeutigere und korrektere Übersetzung für „Technical Debt“ wäre „Technische Schulden“ bzw. „Technischer Kredit“, denn ein (technischer) Kredit kann im Projekt durchaus „unschuldig“, nämlich absichtlich und tatsächlich auch sinnvoll aufgenommen werden, z.B. um ansonsten unrealisierbare Terminvorgaben einzuhalten. Es handelt sich dann um eine bewusste Verschuldung, bei der sich die Schuldfrage nicht stellt. Grundsätzlich sollte man sich bei der Aufnahme eines Kredits aber der Tatsache bewusst sein, dass der Kredit zurückgezahlt werden muss, zumeist inklusive zusätzlich anfallender Zinsen.
Technische Schulden entstehen leider häufig unbewusst und ungeplant, und die trotzdem anfallenden Zinsen summieren sich in Form von Mehraufwänden in der Projekt¬entwicklung und der Projektwartung. Es stellt sich dann durchaus die Frage: Wer ist schuld an der technischen Schuld?
Bild 1 veranschaulicht technische Schulden durch eine Gegenüberstellung des tatsächlich betriebenen Entwicklungsaufwands und einem idealerweise betriebenen Entwicklungsaufwand. Der nicht-betriebene Aufwand in der Design-, Coding- oder Testphase wird zu technischen Schulden.
Arten der technischen Schuld: Die Fauna der Software
Im Prinzip kann jeder Schritt in der Produktentwicklung zur technischen Schuld werden, nämlich dadurch, dass er unzureichend oder gar nicht gemacht wird. Dennoch sollen im Folgenden exemplarisch einige technische Schulden aufgeführt werden, ohne Anspruch auf Vollständigkeit:
Keine oder unvollständige funktionale Anforderungen
Keine oder unvollständige Metrik Erfassung
Keine oder nicht eingehaltene Kodierregeln
Keine oder fehlerhafte statische Codeanalyse
Keine, unvollständige oder fehlerhafte Softwaretests (Unit-, Integrations-, Systemtests)
Bild 2: Verhältnis der technischen Schulden zur Softwarequalität
(Bild: Vector Informatik)
Grundsätzlich gilt: Eine nicht-ergriffene Maßnahme zur Sicherung oder Verbesserung der Softwarequalität darf als Beitrag zur technischen Schuld verstanden werden. Insofern ist die Summe der technischen Schulden automatisch umgekehrt proportional zur Softwarequalität und somit auch eine Möglichkeit, Softwarequalität zu messen und zu bewerten. Denn der Aufwand zur Beseitigung der technischen Schuld ist zumindest annäherungsweise schätzbar und je höher der Aufwand, desto geringer die Qualität, wie in Bild 2 veranschaulicht.
Wie entsteht technische Schuld: Aufzucht und Vermehrung
Wie bereits Eingangs erwähnt können technische Schulden durchaus vorsätzlich in Kauf genommen werden, z.B. um sportliche Terminpläne einzuhalten. Steht man in Konkurrenz zu einem Mitbewerberprodukt, dann kann der Zeitpunkt der Markt-einführung mitentscheidend für den Erfolg eines Unternehmens sein. Zum Problem wird es erst dann, wenn die technischen Schulden in der folgenden Produkt¬weiter-entwicklung ignoriert werden, weil man sich der Schulden nicht bewusst ist oder weil man mit dem reduzierten Aufwand ja auch zum Ziel gekommen ist.
Stand: 08.12.2025
Es ist für uns eine Selbstverständlichkeit, dass wir verantwortungsvoll mit Ihren personenbezogenen Daten umgehen. Sofern wir personenbezogene Daten von Ihnen erheben, verarbeiten wir diese unter Beachtung der geltenden Datenschutzvorschriften. Detaillierte Informationen finden Sie in unserer Datenschutzerklärung.
Einwilligung in die Verwendung von Daten zu Werbezwecken
Ich bin damit einverstanden, dass die Vogel Communications Group GmbH & Co. KG, Max-Planckstr. 7-9, 97082 Würzburg einschließlich aller mit ihr im Sinne der §§ 15 ff. AktG verbundenen Unternehmen (im weiteren: Vogel Communications Group) meine E-Mail-Adresse für die Zusendung von redaktionellen Newslettern nutzt. Auflistungen der jeweils zugehörigen Unternehmen können hier abgerufen werden.
Der Newsletterinhalt erstreckt sich dabei auf Produkte und Dienstleistungen aller zuvor genannten Unternehmen, darunter beispielsweise Fachzeitschriften und Fachbücher, Veranstaltungen und Messen sowie veranstaltungsbezogene Produkte und Dienstleistungen, Print- und Digital-Mediaangebote und Services wie weitere (redaktionelle) Newsletter, Gewinnspiele, Lead-Kampagnen, Marktforschung im Online- und Offline-Bereich, fachspezifische Webportale und E-Learning-Angebote. Wenn auch meine persönliche Telefonnummer erhoben wurde, darf diese für die Unterbreitung von Angeboten der vorgenannten Produkte und Dienstleistungen der vorgenannten Unternehmen und Marktforschung genutzt werden.
Meine Einwilligung umfasst zudem die Verarbeitung meiner E-Mail-Adresse und Telefonnummer für den Datenabgleich zu Marketingzwecken mit ausgewählten Werbepartnern wie z.B. LinkedIN, Google und Meta. Hierfür darf die Vogel Communications Group die genannten Daten gehasht an Werbepartner übermitteln, die diese Daten dann nutzen, um feststellen zu können, ob ich ebenfalls Mitglied auf den besagten Werbepartnerportalen bin. Die Vogel Communications Group nutzt diese Funktion zu Zwecken des Retargeting (Upselling, Crossselling und Kundenbindung), der Generierung von sog. Lookalike Audiences zur Neukundengewinnung und als Ausschlussgrundlage für laufende Werbekampagnen. Weitere Informationen kann ich dem Abschnitt „Datenabgleich zu Marketingzwecken“ in der Datenschutzerklärung entnehmen.
Falls ich im Internet auf Portalen der Vogel Communications Group einschließlich deren mit ihr im Sinne der §§ 15 ff. AktG verbundenen Unternehmen geschützte Inhalte abrufe, muss ich mich mit weiteren Daten für den Zugang zu diesen Inhalten registrieren. Im Gegenzug für diesen gebührenlosen Zugang zu redaktionellen Inhalten dürfen meine Daten im Sinne dieser Einwilligung für die hier genannten Zwecke verwendet werden. Dies gilt nicht für den Datenabgleich zu Marketingzwecken.
Recht auf Widerruf
Mir ist bewusst, dass ich diese Einwilligung jederzeit für die Zukunft widerrufen kann. Durch meinen Widerruf wird die Rechtmäßigkeit der aufgrund meiner Einwilligung bis zum Widerruf erfolgten Verarbeitung nicht berührt. Um meinen Widerruf zu erklären, kann ich als eine Möglichkeit das unter https://contact.vogel.de abrufbare Kontaktformular nutzen. Sofern ich einzelne von mir abonnierte Newsletter nicht mehr erhalten möchte, kann ich darüber hinaus auch den am Ende eines Newsletters eingebundenen Abmeldelink anklicken. Weitere Informationen zu meinem Widerrufsrecht und dessen Ausübung sowie zu den Folgen meines Widerrufs finde ich in der Datenschutzerklärung, Abschnitt Redaktionelle Newsletter.
Das Problem entsteht dadurch, dass sich nicht nur alte und neue technische Schulden aufsummieren, sondern durch die schlechtere Wartbarkeit des Produkts entstehen auch Entwicklungsbegleitende Mehraufwände, die über die Zeit exponentiell wachsen.
Bild 3: Exponentiell wachsender Releaseaufwand trotz des minimalistischen Entwicklungsaufwandes
(Bild: Vector Informatik)
Bild 3 zeigt den exponentiell steigenden Zusatzaufwand, der durch die Vernachlässigung technischer Schulden entstehen kann. Die verringerte Wartbarkeit der Software führt zu einem höheren Entwicklungsaufwand, verursacht höhere Fehlerzahlen und erschwert Fehlerkorrekturen. Mehr Fehler bedeutet, dass mehr Aufwand in Fehlersuche und Fehlerkorrektur investiert werden muss und damit der Neuntwicklung nicht zur Verfügung steht. Das wiederum erhöht den Termindruck im folgenden Release, wodurch wieder mehr Kredit aufgenommen werden muss.
Trotz unmittelbarer Einsparung von Arbeit beim Aufbau von technischen Schulden entsteht also mittel- bis langfristig mehr Arbeit, die zu einer schlechteren Planbarkeit und schließlich zu Terminverzögerungen führen wird.
Erkennen der technischen Schuld: Symptome und Beobachtungstipps
Symptome einer technischen Überschuldung sind das, was mich zu diesem Beitrag motiviert hat. Denn mehrfach bin ich in jüngster Vergangenheit nach Vorträgen zum Thema Softwarequalität (auch und gerade auf dem ESE Kongress) von Zuhörern angesprochen worden, die von zunehmendem Unbehagen bei der täglichen Arbeit getrieben wurden, ein Gespräch zu suchen und im besten Fall Hilfe zu finden. Es waren immer Softwareentwickler aber von verschiedenen Firmen und aus verschiedenen Industriezweigen, die von einer Machtlosigkeit gegenüber der zunehmenden Komplexität und Unwartbarkeit des eigenen Produkts berichteten. Da ich selbst in einem früheren Leben fast 20 Jahre Software entwickelt habe ist mir dieses Gefühl sehr wohl vertraut. Die Verantwortung, die jede Änderung einer Codezeile mit sich bringt, ist groß und wird bei fehlenden Qualitätssicherungsmaßnahmen leider viel zu häufig als Belastung mit nach Hause genommen.
‚Unbehagen‘ ist also ein mögliches erstes Symptom, an dem man das Vorhandensein technischer Schulden erkennen kann. Das ist zwar interessant, aber wenig hilfreich, weil schwerlich objektiv messbar. Auch kann jegliches Unbehagen grundsätzlich andere Ursachen haben. Besser und eindeutiger erkennbar sind technische Schulden an messbaren Größen wie Fehlerzahlen oder Arbeitszeiten, die für Projektentwicklung oder Fehlerbeseitigungen aufgewendet werden. Grundsätzlich sollte eine Softwarequalitätsinitiative immer mit Metriken starten. Zum einen um Defizite zu benennen und gezielt adressieren zu können, zum anderen um durch kontinuierliche Verfolgung der Metriken über die Zeit eine Verbesserung oder eine Verschlechterung der Softwarequalität zu erkennen.
Hier eine Auswahl empfohlener Metriken zur kontinuierlichen Softwarequalitäts-überwachnung:
Deutschlands Leitkongress der Embedded-Softwarebranche
Das Programm des ESE Kongress umfasst 96 Vorträge, 21 Seminare und 3 Keynotes. Seien Sie dabei, wenn sich die Embedded-Software-Community trifft, und nutzen Sie Diskussionen und Expertengespräche für einen ergiebigen Wissenstransfer und erfolgreiches Networken. Während der vier Kongresstage erwartet Sie zudem eine große Fachausstellung mit den führenden Firmen der Branche. Erfahren Sie alles über die neuesten Trends, Herausforderungen und Lösungen im Embedded Software Engineering, von KI, Safety und Security bis hin zu Management und Innovation.
Adressieren der technischen Schuld: Populationskontrolle und Reduzierung
Manche Metriken können als alleinstehender Wert bereits Anlass zur Ergreifung von Maßnahmen sein. Zum Beispiel sollte möglichst schnell Code korrigiert werden, wenn die statische Analyse Probleme identifiziert hat, die mit geringem Aufwand korrigiert werden können, aber potentiell fatale Auswirkungen haben können, wie z.B. nicht initialisierte Variablen. Auch zyklomatische Komplexitäten von Funktionen sollten gewisse Grenzwerte nicht überschreiten, ein Redesign wird allerdings aufwendiger sein. Andere Metriken werden erst interessant beim Betrachten der Veränderung über die Zeit. In jedem Fall ist es empfehlenswert, alle Metriken über die Zeit zu verfolgen, z.B. um zu überprüfen, ob ergriffene Maßnahmen zum gewünschten Erfolg führen, aber auch um zu erkennen, wenn sich bisher vernachlässigte Metriken in eine falsche Richtung entwickeln.
Bild 4: Beispiel Metriken eines echten Entwicklungsprojekts: Gegenüberstellung der Veränderung von Quellcode zu technischer Schuld
(Bild: Vector Informatik)
Bild 4 zeigt Metriken eines Projekts nach einem Jahr der Implementierung eines neuen Features in eine bestehende Codebasis. Die linke Seite zeigt die Veränderungen am Quellcode, speziell dass 42% mehr Source Code dazugekommen sind. Die rechte Seite zeigt die Veränderung der technischen Schuld, mit einem Zuwachs von 28%. Die Höhe der technischen Schuld im Quellcode wurde ermittelt über den (geschätzten) zeitlichen Aufwand, den es benötigen würde zur Beseitigung der jeweils erkannten technischen Schuld.
Basis für die Bewertung und die Analyse der Entwicklung der technischen Schuld ist eine kontinuierliche, automatisierte Erfassung der Metriken. Zum einen sollten die jeweiligen Werte dazu automatisiert ermittelt werden, zum anderen muss diese Ermittlung kontinuierlich erfolgen, die Werte müssen einer Datenablage zugeführt werden und bestenfalls grafisch aufbereitet präsentiert werden. Zusätzlich sollte, wo möglich, eine automatische Überprüfung der Einhaltung von Grenzwerten erfolgen, zum Beispiel die Vermeidung von statische Analyse Fehlern in neuem Code oder das Unterschreiten einer vorgegebenen Obergrenze für die zyklomatische Komplexität von Funktionen.
Bild 5: Beispiel für eine Pipeline mit Quality-Gate und Metrik-Dashboard
(Bild: Vector Informatik)
Bestens geeignet für diese Aufgabe, zumindest, soweit es quellcode- und testspezifische Metriken betrifft, sind Pipelines, wie sie in der heutigen Projektentwicklung im CI-Umfeld bereits gang und gäbe sind. Metriken, die sich aus der statischen Analyse und dem dynamischen Test ergeben, sind dort automatisch verfügbar und die Einhaltung von Obergrenzen kann in ‚Quality-Gates‘ automatisiert überprüft werden. Beispielhaft ist in Bild 5 eine solche Pipeline dargestellt, inklusive finalem Export der Daten an ein zentrales Dashboard.
Die Einrichtung und Betreuung von Pipelines ist mit einem nicht zu unterschätzenden Aufwand verbunden. Auch setzt die in Bild 5 beschriebene Pipeline ein Vorhandensein statischer und dynamischer Testtools voraus. Wenn nichts davon vorhanden ist, dann sollte ein erster Schritt die Erfassung von Basis-Metriken zur Überzeugung des Managements sein, dass eine Einführung entsprechender Tools notwendig ist, um das nötige Investment in Zeit und/oder Geld bereitgestellt zu bekommen. Das können je nach Management verschiedene Metriken sein, z.B. Fehlerstatistiken, Daten bezüglich Softwarekomplexitäten, Arbeitszeiten, Mitarbeiter- oder Kundenzufriedenheiten.
Bild 6: Verschiedene Pipelines zur Softwarequalitätssicherung in der Projektentwicklung
(Bild: Vector informatik)
Das initiale Aufsetzen einer Pipeline und der zugehörigen Infrastruktur wird aufgrund der Nähe zum Quellcode und der Komplexität der Aufgabe häufig durch die Entwicklungsabteilung erfolgen, die weitere Betreuung sollte aber, je nach Mitarbeiterzahlen, durch eine Test- und Qualitätsabteilung übernommen werden. Und auch wenn Quellcode, Testdaten und Qualitätsvorgaben immer identisch sind, werden final unterschiedliche Pipelines für verschiedene Anwendungsfälle benötigt, wie in Bild 6 dargestellt.
Die Entwicklungsabteilung wird zu jedem Entwicklungsschritt Quellcode und Testfälle auschecken, Änderungen an Code und Testfällen vornehmen und erwartet eine Pipeline, die möglichst schnell Ergebnisse liefert, um fehlerhafte Testfälle zu korrigieren, statische Analyse-Meldungen zu adressieren und iterativ alles zu tun, um die Quality-Gates einzuhalten. Verkürzte Laufzeiten der Pipeline können z.B. durch Testfall Priorisierung oder inkrementelle Testfallausführung auf nur einer Codevariante und im Simulator erreicht werden.
Aufgabe der Test- und Qualitätsabteilung ist die Kontrolle der Reports und der Funktion der automatisierten Pipelines sowie die Sicherstellung der Vollständigkeit der Metriken und der Tests. Fehlende Testfälle sollten entsprechend ergänzt werden. Falls Metriken oder Tools fehlen, oder wenn Laufzeiten der Pipelines zu lang werden, sollte das Management involviert werden, um entsprechend aufzurüsten.
Eine oder mehrere automatisierte Pipelines sollten regelmäßig oder wenigstens vor jedem Merge-Request einen vollen Testlauf auf allen Quellcodevarianten und allen Zielsystemen durchführen, und nur bei Einhaltung der Zielvorgaben aus den Quality-Gates eine Freigabe für weitere Schritte erteilen. Hier kann auch ein Export von Daten an ein Qualitäts-Dashboard erfolgen.
Zusammenfassung
Produktqualität und speziell die Qualität der Software in einem Produkt sind ausschlaggebend nicht nur für die Kundinnen- und Kundenzufriedenheit, sondern auch für die Mitarbeiterinnen- und Mitarbeiterzufriedenheit und die Identifikation mit dem eigenen Produkt. Die ersten Mitarbeitenden, die mit wachsenden technischen Schulden zu kämpfen haben, sind die Softwareentwicklerinnen und Entwickler, ein unspezifisches Unbehagen in der Entwicklung sollte also nicht ignoriert, sondern konsequent adressiert werden. Eine Initiative zur Reduktion der technischen Schulden sollte daher bestenfalls aus der Entwicklung kommen, bevor andere Abteilungen die Auswirkungen zu spüren bekommen.
Unterstützt durch entsprechende Metriken sollte ein Unbehagen der Entwickelnden bezüglich der Softwarequalität mit dem Management geteilt werden, damit Ressourcen zur Verfügung gestellt werden, um bestehende technische Schulden zu analysieren und kontinuierlich zu reduzieren, und neue technische Schulden zu vermeiden.
Pipelines mit Quality-Gates und Anbindung an Qualitäts-Dashboards sind bestens dazu geeignet, technische Schulden im Produkt und deren Entwicklung über die Zeit zu verfolgen.
* Ingo Nickles blickt auf mehr als 20 Jahre Berufserfahrung in der Softwarentwicklung für embedded Geräte in der Telekommunikationsbranche zurück. Seit 2012 ist er Field Application Engineer für die Firma Vector und verantwortlich für Schulungen, Seminare, Präsentationen und den Support rund um PC-lint Plus und die VectorCAST Produktfamilie.