Softwareentwicklung: Technische Schulden

„Technische Schulden“ – oft nicht wahrgenommen, ignoriert und unterschätzt, doch daraus resultierende Folgeschäden können ein Unternehmen schnell an die Grenzen seiner finanziellen Belastbarkeit bringen.

Mitte 2015 wurde der Handel an der New Yorker Börse für zwölf Stunden ausgesetzt. Die Ursache: technische Schulden!

Am achten Juli 2015 wurden von United Airlines aus unersichtlichen Gründen mehr als dreitausend Flüge gestrichen. Der Grund, technische Schulden!

Sie sehen, man sollte die ökonomischen und wirtschaftlichen Schäden, die durch technische Schulden entstehen können nicht unterschätzen. Doch was sind technische Schulden?

Technische Schulden – die Definition

Technische Schulden bzw. technische Schuld ist in der Informatik der zusammenfassende Begriff für alle Konsequenzen, die aufgrund mangelhaft umgesetzter Software entstehen sowie Kompromisse schon zu Beginn der Entwicklung. Darunter fällt natürlich auch der Mehraufwand der betrieben werden muss, schlecht programmierte Software zu ändern bzw. deren Funktionen zu ergänzen.

Wodurch können technische Schulden entstehen?

Die Ursachen für technische Schulden können vielseitig sein. Liegen aber meistens an fehlerhafter Software-Architektur oder mangelhafter technischer Infrastruktur. Zum Beispiel wurden:

  • Regressions- und Modultests nur eingeschränkt oder gar nicht durchgeführt.
  • Programmier-Standards nicht eingehalten.
  • Warnungen des Compilers ignoriert.
  • TODO- oder Fixme-Hinweise im Code übersehen oder ignoriert.
  • Korrekturen von komplexem oder großem Code wurden geflissentlich übersehen.
  • Schnittstellen fehlerhaft umgesetzt.

Unter mangelhafter bzw. nicht vorhandener technischer Infrastruktur versteht man z. B. nicht vorhandene bzw. zu komplizierte Maßnahmen zur Datensicherung, schlecht durchgeführte Versionsverwaltung usw.

Solche und ähnliche Fehler in der Softwareprogrammierung können entstehen, wenn

  • ein großer zeitlicher und/oder fachlicher Druck seitens der Projektbeteiligten oder des Auftraggebers gegeben ist. Zum Beispiel, dass diese darauf bestehen, dass neue Fachlichkeit oder Funktionen unbedingt etabliert werden müssen, bevor der Code der Software überhaupt aufgeräumt werden konnte.
  • eine Qualitätssicherung nur mangelhaft durchgeführt wird oder überhaupt nicht vorhanden ist. Nur wenn eine zuverlässige Qualitätssicherung gegeben ist und auch wirklich gelebt wird, kann verhindert werden, dass die technischen Schulden überhand nehmen. Technische Schulden werden durch die Qualitätssicherung sofort erkannt, wodurch sofortige Gegenmaßnahmen ergriffen werden können.
  • das technische Wissen nur mangelhaft ist. Technisches Wissen ist die Basis, um technische Schulden von Anfang an zu verhindern und/oder im Fall der Fälle entsprechende Gegenmaßnahmen ergreifen zu können.
  • eine schlechte Kommunikation zwischen Auftraggeber und der durchführenden Softwareagentur herrscht. Dabei muss die mangelnde Kommunikation nicht nur zwischenmenschlicher Natur sein, denn auch Videos, Diagramme, eine Dokumentation usw. fallen unter die Kategorie Kommunikation. Zeigen sich hier Nachlässigkeiten, kann das natürlich auch zu technischen Schulden führen.
  • Refactoring ständig aufgeschoben wird. Technische Schulden können nur dann auf ein Minimum reduziert werden, wenn Codeteile, die verbesserungswürdig sind, sofort optimiert werden, statt weiter mit diesen zu arbeiten und sie durch neue Funktionen zu ergänzen.
  • Gewohnheit und Investitionsbequemlichkeit überhand nehmen. So sind in vielen Konzerne in der Regel oft noch völlig veraltete Systeme implementiert, deren Funktionalität zwar über die Jahre ergänzt wurde, das Grundsystem im Kern blieb aber dasselbe. Dabei wurden die Funktionserweiterungen nicht selten unter großem Zeitdruck umgesetzt. Fehler, die bei dieser Arbeit zu Tage kamen wurden umgangen, aber nicht wirklich behoben. Die Folge: Je länger mit der Software gearbeitet wird, je länger Funktionserweiterungen durchgeführt werden, desto mehr erhöhen sich die technischen Schulden.

Technische Schulden und ihre Auswirkung

Die Auswirkung technischer Schulden ist komplex und bezieht sich anfangs rein nur auf die Wartbarkeit eines Systems. Das heißt, technische Schulden haben direkten Einfluss auf die Weiterentwicklung und die Wartung der Software. Rein rechnerisch ist davon auszugehen, dass sich aufgrund mangelhaft programmierter Software der Aufwand für Änderungen und/oder Ergänzungen um 60 bis 100 Prozent steigt. Wirtschaftlich ist etwas anderes.

Technische Schulden aus ökonomischer Sicht

Seit Mai 2009 können alle Kosten, die innerhalb eines Unternehmens in die Entwicklung von Software flossen, als „nicht materieller Vermögensgegenstand“ in die Bilanz aufgenommen werden. Auf dem ersten Blick eine positive Entwicklung, doch gerade bei technischen Schulden kann der ökonomische Blickwinkel zur Beurteilung der Situation schnell zu einem Fehlurteil verführen. In der Betriebswirtschaft gilt nämlich die Annahme je mehr Geld in die Entwicklung investiert werden musste, desto wertvoller das System. Dadurch steigen die immateriellen Vermögensgegenstände auf der Aktivseite der Bilanz, wodurch der falsche Eindruck entsteht, dass ein hohes Anlagevermögen gegeben ist und genau das ist das Problem. Entscheider innerhalb einer Firma betrachten Investition immer aus der Sicht eines Ökonomen und nicht aus der Sicht eines Entwicklers oder eines Nutzers. Das führt dazu, dass die tatsächliche Gefährlichkeit von technischen Schulden und der damit verbundenen finanziellen Belastung unterschätzt wird, wie die zwei Beispiele am Anfang belegen. Der Auslöser für die technischen Schulden bei United Airlines war ein kleiner Router mit defekter Software. Der Ausfall der Börse war ähnlicher Natur. Die Technik fiel nach einem Update aufgrund eines Konfigurationsproblems aus.

Haben Sie Fragen zu dem Thema oder benötigen Hilfe? Zögern Sie nicht, uns zu kontakten. Wir helfen Ihnen gern weiter.

Ansprechpartner: Ute Seelig oder Martin Stoll