

Jakub Bílý
Leiter/in Geschäftsentwicklung
Technische Schulden. Klingt beängstigend, nicht wahr? Wir zeigen dir das Schlechte, das Gute und alles dazwischen. Dieser Teil wird theoretischer, aber nicht weniger wichtig sein. Am Ende des Artikels haben wir auch ein Beispiel aus der Praxis für technische Schulden und ihre Auswirkungen vorbereitet. Jetzt, wo wir das gesagt haben, können wir weitermachen.
Wikipedia beschreibt es so:
In der Softwareentwicklung sind technische Schulden (auch bekannt als Design- oder Codeschulden) die impliziten Kosten zusätzlicher Nacharbeiten, die dadurch entstehen, dass jetzt eine einfache (begrenzte) Lösung gewählt wird, anstatt einen besseren Ansatz zu verwenden, der länger dauern würde.
Obwohl die Beschreibung im Allgemeinen einigermaßen korrekt ist, ist sie nicht so einfach. Technische Schulden sind versteckte Kosten jedes IT-Projekts, aber nicht jeder Fall ist gefährlich oder wird durch schlechte Entscheidungen Ihres Entwicklungsteams verursacht (wie Sie in der Erklärung unten sehen werden).
Das Wort „Schulden“ ist kein Zufall, da es viele Eigenschaften mit wirtschaftlicher Verschuldung gemeinsam hat. Es ist absolut wichtig, es regelmäßig „zurückzuzahlen“. Das Ignorieren und Anhäufen der technischen Schulden kann fatale Folgen haben, im schlimmsten Fall sogar Konkurs. In der Welt der Softwareentwicklung bedeutet das, dass eine solche Software nicht funktioniert oder nicht weiterentwickelt werden kann, was zu erheblichen Investitionsverlusten führt.
Interessante Tatsache: In der amerikanischen Studie „Die Kosten für Software schlechter Qualität in den USA“ Ab 2018 schätzt Herb Krasner, dass sich die Gesamtkosten schlecht gemachter Software auf etwa 2,8 Billionen US-Dollar belaufen. Im Vergleich dazu sind das mehr als die BIP-Werte der meisten Länder der Welt.
Schauen wir uns also an, auf welche Arten von technischen Schulden Sie normalerweise stoßen können. Martin Fowler hat einen tollen Artikel, dem wir zustimmen. Es gibt grundsätzlich 4 Arten von technischen Schulden.
Jetzt kennen wir die häufigsten Arten von technischen Schulden, aber was sind neben den oben genannten die häufigsten Ursachen?
Die Geschäftswelt hat ein paar „goldene Regeln“ und hier ist eine davon. Aus der bekannten Dreifaltigkeit Zeit — Kosten — Qualität kann man nur zwei haben. Wenn Sie Ihr Entwicklungsteam dazu drängen, etwas billiges und schnelles zu entwickeln, erhalten Sie keine Qualität. Wenn Sie Qualität und schnelle Lieferung wünschen, wird es nicht billig sein. Das gilt in der kundenspezifischen Softwareentwicklung genauso viel wie anderswo, wenn nicht sogar mehr. Die falsche Wahl von zwei dieser drei Optionen kann häufig zu technischen Problemen führen.
Wir sind keine Nerds und wir verstehen, dass technische Schulden manchmal unvermeidlich sind und in einem bestimmten Fall sogar Sinn machen (z. B.: schnelle MVP-Entwicklung zur Marktvalidierung). In diesem Fall, wenn Sie nur über begrenzte Ressourcen verfügen und das gesamte Projekt so schnell wie möglich testen möchten, ist es möglicherweise nicht sinnvoll, eine komplexe Architektur zu erstellen, die auf Millionen von Benutzern skalierbar ist, großartige automatisierte Tests, verschiedene Sandboxen, die gesamte CI/CD-Pipeline und andere wichtige Aspekte der modernen Entwicklung vorzubereiten. Sie konzentrieren sich nur darauf, alles so schnell wie möglich zu erledigen. Und das ist in Ordnung, solange Sie die Risiken und Kosten verstehen, die in Zukunft damit verbunden sein werden (in einigen Fällen könnte sogar eine vollständige Neufassung der ersten Version der Anwendung erforderlich sein).
Die Sache ist die, dass die berechnete technische Verschuldung leider in der Regel nur einen kleinen Prozentsatz der Projekte ausmacht.
Was uns normalerweise in Moravio begegnet, wenn zum Beispiel Rettungsprojekte, ist das genaue Gegenteil oder genauer gesagt, rücksichtslose und vorsätzliche technische Schulden aus der obigen Beschreibung. Die technischen Schulden werden vernachlässigt, nehmen ständig zu, sie sind nicht dokumentiert und werden nicht verwaltet.
Es gibt noch eine weitere Sache, die gesagt werden sollte. Die IT-Branche entwickelt sich wie keine andere auf der Welt. Technologien, die in diesem Jahr auf dem neuesten Stand der Technik sind, könnten im nächsten Jahr deutlich bessere Hauptversionen oder alternative Technologien aufweisen. So geht das halt. Sie sollten immer versuchen, Ihr Projekt auf dem neuesten Stand zu halten. Wir sagen nicht, dass Sie am ersten Tag, an dem eine neue Version der Technologie veröffentlicht wird, ein Update durchführen müssen (im Gegenteil, wir raten aufgrund der Fehler, die normalerweise in den ersten Tagen auftreten, dringend davon ab), aber es ist ratsam, Ihr Projekt innerhalb eines angemessenen Intervalls auf der neuesten stabilen und langfristig unterstützten Version zu halten. In gewisser Weise kann dies auch als technologische Verschuldung an sich bezeichnet werden, weshalb wir zu Beginn des Artikels darüber sprechen, dass technologische Schulden Teil jedes Projekts sind.
Einfach ausgedrückt, viel. Hier sind nur einige Beispiele:
Es hängt alles von der Art Ihres Unternehmens ab. All dies kann auch direkt oder indirekt in monetäre Verluste umgewandelt werden.
Stellen Sie sich technische Schulden als lebendigen Teil Ihres Projekts vor. Nehmen Sie sich Zeit für Ihre Entwickler adressiere es. Überwachen und dokumentieren Sie es (Eine einfache aktualisierte JIRA-Aufgabe oder eine Confluence-Seite können Wunder bewirken). Arbeite mit deinen technischen Schulden und nimm kontinuierlich Stücke daraus heraus. Nur so können wir es auf lange Sicht unter Kontrolle halten. Wenn Sie das nicht tun, werden Sie wahrscheinlich früher oder später um ein Vielfaches höhere Kosten einholen.
In Moravio, neben Bereitstellung dedizierter Entwicklungsteams, das tun wir auch Gemeinsame Entwicklung und Personalüberlassung und Projekt Rescue.
An einem der Projekte, die wir gerettet haben, möchten wir Ihnen das heutige Beispiel zeigen. Das Projekt wurde sehr vernachlässigt und der Kunde aus dem Ausland kam sehr spät auf uns zu. Der Kunde war zu dieser Zeit auch nicht sehr erfahren. Er bemerkte die Probleme also selbst erst, als deutlich sichtbar wurde, dass etwas nicht stimmte. Hinter dem Projekt steckten 2-3 Hauptversionen von PHP und dem Laravel-Framework, unordentlicher Code, falsche Architektur, Tausende unnötiger Datenbankaufrufe, Zehntel unbenutzter oder nicht aktualisierter NPM-Pakete, sechs verschiedene Bibliotheken, die Bilder handhaben, eine große Datei für CSS und JavaScript, falsches URL-Routing, keine Dokumentation und Tests. Du nennst es.
Mach dir keine Sorgen. Wir haben alle Probleme erfolgreich gelöst, aber das obige Beispiel ist eine gute Möglichkeit, die technischen und geschäftlichen Probleme zu erkennen, auf die Sie möglicherweise stoßen können.
Dieser Teil war etwas theoretischer. In nächster Teil, wir erklären, worauf Sie achten müssen, um technische Schulden zu entdecken, wie Sie mit den technischen Schulden umgehen können und noch einige Beispiele aus unserer persönlichen Erfahrung aus erster Hand.
Empfohlene Lektüre für Sie
Neue Blogbeiträge, die Sie interessieren könnten
Jakub Bílý
Leiter/in Geschäftsentwicklung