Africa Studio - stock.adobe.com
Technical Debt: so entkommt die IT der Schuldenfalle
Um technischen Schulden in Softwareprojekten zu vermeiden, sollten sich Projekt- und Entwicklungsteams genügend Zeit nehmen, um das Projekt sauber auf- und umzusetzen.
Spricht man mit CPOs oder CIOs über ihre Marktstrategien, so fällt mindestens einmal der Begriff Time to Market, sprich: die Dauer der Produktentwicklung. Eine wichtige Kennzahl. Denn um Software und Produkte möglichst schnell als Minimum Viable Product am Markt zu platzieren, streben Unternehmen nach einem möglichst kurzen Entwicklungszyklus.
Was dabei jedoch oft vernachlässigt wird, sind mögliche technische Schulden, also jegliche Konsequenzen, die aufgrund von mangelhaft umgesetzter Software entstanden sind. Diese entstehen, wenn Schnelligkeit einer Entwicklung gegenüber der Qualität priorisiert wird, und bergen die Gefahr, etwaige Probleme lediglich in die Zukunft zu verlagern. Am Ende führen nachträgliche Anpassungen der Software dann dazu, dass die Entwicklungszyklen umso länger werden. Im schlimmsten Fall muss das Produkt vollständig eingestellt werden. Doch wie lassen sich solche Schulden vermeiden oder zumindest verringern?
Wie technische Schulden entstehen
Wenn eine kurzfristige und aufgrund von geringeren Kosten oder Komplexität scheinbar einfachere Lösung vorgezogen wird, anstatt eine auf lange Sicht bessere Strategie zu wählen, fallen technische Schulden an. Ein mitunter gefährliches Unterfangen. Immerhin verhindern sie Innovation und können den Unternehmenserfolg gefährden.
Insbesondere wenn diese aufgrund von fehlenden beziehungsweise verschobenen Software-Updates oder einer schlechten Test-Coverage aufkommen, kann das grundlegende Probleme mit sich bringen. Denn während sich etwa der Aufwand für die Updates im Laufe des Projektes immer weiter erhöht, wird auch die Hemmschwelle der einzelnen Teammitglieder größer, diese umzusetzen. Eine Spirale, die im schlimmsten Fall in einer Sackgasse endet. Denn an einem gewissen Punkt sind die Aufwände der Updates schlicht zu hoch, um nötige Anpassungen umzusetzen.
Die Lösung: mehr Zeit einplanen
Wenn sich solche Problematiken vergrößern, können sie gravierende Folgen mit sich bringen. Schließlich bedeuten sie für das Team einen Mehraufwand, der in höheren Projektkosten und schlussendlich auch in einer längeren Time to Market resultiert. Zusätzlich wird die Implementierung des Systems mit jedem weiteren Workaround immer unübersichtlicher. Das Resultat: die einzelnen Teammitglieder trauen sich nicht mehr an die kritischen Stellen und das zusammengebastelte System wird nicht entschlackt.
Nehmen wir zum besseren Verständnis ein Beispiel: Ein Unternehmen hat über lange Zeit keine Updates der Composer Packages, also des Paketmanagers für PHP, gemacht. Eine vermeintlich einfache Aufgabe, die mit der Zeit jedoch immer weiter herunter priorisiert wurde. Aufgrund des Aufschubs wurden die Updates schlussendlich zu einer riesigen Aufgabe – und es kostete das Unternehmen ein ganzes Jahr, bis die Updates integriert, intensiv getestet und ausgerollt werden konnten. Und selbst danach traten aufgrund der technischen Schulden noch Fehler auf, die durch die Updates verursacht wurden.
Mit KISS die Schuldenfalle vermeiden
Um technische Schulden von Beginn an zu vermeiden, bieten sich verschiedene kleinere Maßnahmen an. Die wohl wichtigste: sich stets genügend Zeit nehmen und ausreichend Ressourcen einkalkulieren. Schließlich muss das Projekt nicht nur sauber aufgesetzt und geplant werden. Auch eine gewissenhafte Umsetzung ist wichtig. Dafür ist es ratsam, den Fokus nicht nur auf die hoch priorisierten und interessanten Tasks zu legen, sondern auch die scheinbar unnötigen oder gar lästigen Aufgaben wie beispielsweise Tests, Dokumentationen und System-Updates im Blick zu haben und gleichsam abzuarbeiten. Das Motto: Qualität vor Quantität – möglicher Zeitdruck sollte vermieden werden und die Qualität der Umsetzung stets an oberster Stelle stehen.
Doch wie kann eine hohe Qualität gewährleistet werden? Etablierte Prinzipien, Prozesse und Tools sind der Freund und Helfer des Teams. Ein besonders beliebtes Prinzip ist das KISS-Prinzip: Keep it simple, stupid. Dieses fordert die Teams auf, zu einem Problem eine möglichst einfache Lösung anzustreben. Aufkommende Probleme sollten also nicht etwa mit Workarounds angegangen, sondern durch die möglichst einfachste, minimalistischste und verständlichste Lösung behoben werden. Das vermeidet unnötige Komplexität und gewährleistet eine hohe Qualität. Zusätzlich bieten sich auch Schulungen, technische Retros nach den Projekten und gute, saubere sowie etablierte Setups und (Entwicklungs-) Prozesse an, um ein gemeinsames Qualitäts- und Projektverständnis aufzubauen.
Mit Backlog und Refactoring gegen die Schuldenfalle
Wenn technische Schulden dann doch einmal auftreten, ist die Reduzierung das A und O. Das wichtigste ist, die Problematiken während des Projekts kontinuierlich abzuarbeiten. Andernfalls häuft sich ein Berg an Problemen an, der schlichtweg zu groß und komplex für eine simple Lösung ist.
„Um technische Schulden von Beginn an zu vermeiden, bieten sich verschiedene kleinere Maßnahmen an. Die wohl wichtigste: sich stets genügend Zeit nehmen und ausreichend Ressourcen einkalkulieren.“
Christopher Möhle, Turbine Kreuzberg
Um dies zu meistern und dabei einen klaren Kopf zu bewahren, ist es ratsam, während des Projekts einen fortlaufenden Backlog aller angefallenen technischen Schulden zu führen. So können die Teammitglieder einen Überblick behalten und Unsicherheiten im besten Fall aus der Welt schaffen. Zudem sollte das Refactoring ein Teil des Entwicklungsprozesses werden. Sprich: Sobald das Projektteam über etwaige technische Schulden stolpert, werden diese auch behoben.
Fazit: Ohne Schulden auf den Markt
Während der Markt sich immer schneller bewegt und Entwicklungszeiten rasant abnehmen, häufen sich die technischen Schulden in Softwareprojekten. Um diese zu vermeiden, sollten sich Projektteams genügend Zeit nehmen, um das Projekt sauber auf- und umzusetzen. Dabei helfen etablierte Methoden wie etwa das KISS-Prinzip, um einfache Lösungen für aufkommende Probleme zu finden.
Wenn es dann doch zu Schulden kommt, ist es wichtig, diese möglichst schnell zu lösen und nicht herunterzupriorisieren. So stellen die Teams sicher, dass der Schuldenberg abnimmt und das Projekt zum Erfolg wird.
Über den Autor:
Christopher Möhle ist COO von Turbine Kreuzberg, einer Technologieagentur aus Berlin, die mit ihrer breiten technologischen Expertise den gesamten Lebenszyklus von Applikationen abdeckt. Digitalprojekte setzt sie in den drei Feldern Platform Technology, Application Management und Tech Innovation um. Die Teams von Turbine Kreuzberg unterstützen Unternehmen dabei, Plattformen neu zu implementieren, Applikationen technisch zu betreiben und bestehende Lösungen weiterzuentwickeln. Zudem erprobt die Agentur neu aufkommende Technologien, entwickelt Prototypen zur Marktreife und beteiligt sich an technologischen Forschungsprojekten. Neben dem Hauptsitz in Berlin-Kreuzberg arbeiten die über 110 Technolog:innen am Standort Faro (Portugal).
Die Autoren sind für den Inhalt und die Richtigkeit ihrer Beiträge selbst verantwortlich. Die dargelegten Meinungen geben die Ansichten der Autoren wieder.