Technische Schulden: Wie baut man nachhaltige digitale Produkte?
Viele Softwareunternehmen kennen den ständigen Druck des Marktes nur zu gut. Und weil das allein noch nicht auszureichen scheint, kommen meist noch der stetig wachsende Wettbewerb und die zunehmenden Erwartungen der Kunden dazu. Oftmals kann dieser anhaltende Druck dazu führen, dass die Entwicklung und Umsetzung von Software nicht ideal verlaufen. Dadurch entstehen “technische Schulden”, die negative Auswirkungen auf das Unternehmen haben. Ein Problem, dass auch die Finanzwirtschaft nur zu gut kennt.
Dann stellt sich für Fachbereiche die Frage, wie sie damit umgehen und was nun zu tun ist.
von Piotr Majchrzak, Boldare
Die technischen Schulden, auch bekannt als Tech Debt oder Code Debt, geben an, was passiert, wenn ein Entwicklungsteam eine Reihe von Funktionen oder Designs in einer kurzen Zeit liefert oder welche später wieder überarbeitet werden müssen.”
Sie entstehen meist genau dann, wenn schnell und ohne Berücksichtigung der Skalierbarkeit gearbeitet werden muss. Dadurch erhöht sich automatisch das Risiko, im Nachhinein mehr Zeit aufzubringen, um das bereits Erarbeitete zu prüfen und zu verbessern.
Cunningham erinnert sich auch Jahre später gern an die Entstehung des Konzepts zurück:
Sich Geld zu leihen, verleiht einem die nötige Flexibilität. Denn es befähigt uns dazu, bestimmte Dinge schneller oder früher umsetzen, auf die wir sonst aufgrund mangelnder finanzieller Mittel warten müssten. Ich hielt es für eine gute Idee, sich Geld zu leihen. Genauso dachte ich, es sei eine gute Idee, eine Software möglichst schnell auf den Markt zu bringen, um damit Erfahrungen zu sammeln. Sobald man etwas über die Software gelernt hat, würde man das Darlehen anschließend sofort zurückzahlen, indem man das Programm mit den gesammelten Erfahrungen überarbeitet.”
Technische Schulden entstehen aber auch dann, und das viel häufiger, wenn die Entwicklung oder der Support für eine bestimmte Plattform eingestellt wird.
Was sind die Hauptursachen für technische Schulden bei digitalen Produkten?
Als Leiter einer Abteilung oder eines Teams ist es von Vorteil zu wissen, wodurch technische Schulden entstehen können, um diese langfristig zu vermeiden. Die Hauptursachen von technischen Schulden sind folgende:
- eine geringe Qualität des Codes
- unzureichende Entwicklungsfähigkeiten im Team oder der Abteilung
- geringe Teststandards oder keine Tests
- unrealistische Zeitangaben
- Entwicklungsteams sind zu hohem Druck ausgesetzt
- Overengineering und übermäßig komplexe Implementierungen
- ineffektive Methoden oder Frameworks, sowie schlechtes Management (z.B. Wasserfall, unflexible Herangehensweise)
- die Konzentration auf nur einen bestimmten Aspekt des digitalen Produkts zu lenken
- Verwendung einer temporären Lösung als Endprodukt (z. B. Verwendung eines MVP auf Dauer)
-
Druck von Stakeholdern
Technische Schulden sind nicht immer schlecht
Es gibt Situationen, in denen technische Schulden bewusst provoziert werden und einen positiven Einfluss haben können. Um das Gleichgewicht zwischen geschäftlichen Anforderungen, der Qualität, der Funktionalität und der Geschwindigkeit einer Software zu ermitteln, werden MVPs (Minimum Viable Products) erstellt. Das bedeutet, dass man in kurzer Zeit eine minimal funktionale App entwickelt, die aufgrund der Schnelligkeit in der Herstellung noch einige Mängel aufweisen kann. Der Sinn dahinter ist, diese so schnell wie möglich auf den Markt zu bringen und die bereits bestehende Geschäftshypothese zu testen. Danach folgt eine Validierung der Annahme, um zu sehen, ob diese positiv oder negativ ist. Anschließend wird entschieden, ob die App verworfen oder weitere Zeit in die Verbesserung des MVPs investiert wird.
Bei der Skalierung eines Produkts und der Erschließung eines neuen Marktes hingegen sollten technische Schulden unbedingt vermieden werden. Die Wahl der Infrastruktur unter Berücksichtigung skalierbarer Lösungen ermögliche es, ein Produkt weiterzuentwickeln. Das genaue Arbeiten und somit Vermeiden technischer Schulden sollte dabei ein Faktor sein, der die Benutzer zufrieden stellt. Technische Schulden sind für Softwareentwicklungsunternehmen und DevOps-Teams ein klares Zeichen dafür, dass im Laufe des Prozesses Entscheidungen getroffen werden mussten, die das Endprodukt vom idealen Zustand abweichen lassen. Sobald technische Schulden entstehen, sollten diese direkt angegangen werden. Ansonsten werden sie immer weiter wachsen und schlussendlich immer schwerer zu beheben sein.
Die technische Schuld und ihre Folgen
Wichtig zu wissen ist, dass technische Schulden nicht immer unvermeidbar sind. Die testgetriebene Entwicklung (TDD) ist eine Methode, bei der die technischen Schulden letztendlich nicht komplett aufgehalten werden, sondern lediglich versucht wird, den Code in einem gesunden Zustand zu halten.
Die Liste der möglichen Probleme ist lang – Fehlfunktionen, Bugs, schlechte Leistung, Datenlecks und andere Sicherheitsprobleme. Fängt ein Entwicklungsteam an, diese Fehler nicht zu beheben, ist mit Sicherheit gesagt, dass die nächste Behebung weitaus zeitaufwändiger sein wird. Gefährlich hierbei ist die ständige Unterbrechung des Wachstums.
Das Team sollte sich über den Umstand bewusst sein, dass es am wichtigsten ist, diese Schulden auch zu beheben und dies nicht infragezustellen – denn so können weitere Probleme vermieden werden.
Effektiver Umgang mit technischen Schulden
Wenn der Zeitpunkt gekommen ist und ein Unternehmen bemerkt, dass ein Produkt oder eine Dienstleistung unter technischen Schulden leidet, gibt es einige Tricks, die aktuelle Situation zu verbessern oder solche Probleme in Zukunft zu vermeiden.
Vorab ist ein sogenannter Code-Audit wichtig, denn dieser kann frühzeitig potenzielle Probleme erkennen. Klare Kodierungsstandards sollten festgelegt werden, um die Qualität auf Dauer sicherzustellen. Die Motivation und die Produktivität des Teams sollte zu jeder Zeit beobachtet werden, denn von ihr hängt der Anstieg der Fehleranzahl ab und bestimmt, welche Maßnahmen als Nächstes ergriffen werden müssen. Einen agilen Ansatz zu implementieren, kann dem Team dazu verhelfen eigenständig, schnell und genau Entscheidungen zu treffen. Die Scrum und Kanban Methode wäre etwa ein hilfreicher erster Ansatz. Eine gut durchdachte Produktskalierung kann das Auftreten der technischen Schulden senken.
Teilhabende Stakeholder müssen bewusst davon überzeugt werden, dass technische Schulden vorerst auch einen positiven Einfluss haben können, denn sie tragen zu dem Prozess bei, der das Produkt im Endeffekt verbessert.”
FAZIT
Es ist wichtig, solche Störungen und die Entstehung von technischen Schulden früh zu erkennen und zu beseitigen, bevor sie zu einer sehr realen Gefahr für das Projekt werden. Diese sollte man unter keinen Umständen vernachlässigen, denn je länger sie unangetastet bleibt, desto mehr Ressourcen braucht es, um sie zu beseitigen. Der beste Weg ist also, sich so schnell wie möglich darum zu kümmern. Idealerweise auf eine systematische und durchdachte Weise.Piotr Majchrzak, Boldare
Sie finden diesen Artikel im Internet auf der Website:
https://itfm.link/123010
Schreiben Sie einen Kommentar