Modernisierungen sind keine einmalige Sache? Falsch gedacht!

von Michal Petrik Head of Software Development
Warum nicht einfach immer alles ersetzen?

Zwei Arten von Menschen und Unternehmen

Es gibt immer unterschiedliche Wege, Herausforderungen anzugehen. Nehmen wir zum Beispiel das Rasenmähen: Manche Leute mähen regelmäßig – mindestens einmal pro Woche. Sie wollen, dass Ihr Rasen immer gut aussieht. Klar, das braucht Zeit und Einsatz – aber schauen Sie sich nur diese perfekten Linien und das saftige Grün an! Dieses Investment zahlt sich aus und beeindruckt alle Nachbarn.

Und dann gibt es noch die andere Gruppe von Leuten. Denen gefällt die „Idee“ eines hübsch gemähten Rasens, aber nicht der Gedanke, viel Arbeit hineinzustecken. Wir wissen alle, wohin das führt, oder? Denn was passiert? Sie machen entweder das absolute Minimum – ein bisschen Unkraut jäten – oder sie übertragen den Job an jemand anderen. Oder der Worst Case: Sie lassen der Natur freien Lauf und müssen am Ende mit den Konsequenzen leben.

Was hat Rasenmähen nun mit der Modernisierung von Software-Systemen zu tun? So einiges! Meiner Erfahrung nach verhalten sich Unternehmen nämlich ganz ähnlich: Während das Eine jede Möglichkeit nutzt, sein System auf dem Laufenden zu halten, kümmert sich das Andere nur um akute Probleme und vernachlässigt alles andere.

Kurzfristig vs. Langfristig

Die unbequeme Wahrheit ist, dass kurzfristig betrachtet und mit Blick auf die Kosten die zweite Gruppe Recht hat. Warum sollten Sie in etwas investieren, was Sie jetzt gerade gar nicht brauchen?
Doch natürlich ist diese Denkweise zu kurzsichtig. Erfolgreiche Unternehmen wissen, dass kontinuierliche Modernisierung entscheidend ist. Wenn Sie ein 10 Jahre altes System mit sich herumschleppen, ist garantiert, dass Ihr Business darunter leidet.

Unvermeidlich kommt der Tag, an dem das nicht gewartete System in die Knie geht und sofort gehandelt werden muss. In solchen Drucksituationen mag es so erscheinen, als wäre ein kompletter Systemwechseln die beste Lösung. Im Nu werden große Budgets herbeigezaubert, um im großen Stil das ganze System auszutauschen – überhöhte Erwartungen inklusive.

Leider ist jedoch der Wechsel eines veralteten Kern-Systems etwas komplexer als Rasenmähen im Vorgarten. Deadlines werden verpasst und Budgets überzogen. Doch eines Tages ist die Aufgabe endlich geschafft: Mission erfüllt. Ein neues goldenes Zeitalter beginnt. Oder etwa nicht? Kurz gesagt: Nein. Unternehmen, die sich auf diese Entfernen-und-Ersetzen-Mentalität versteifen, sind dazu verdammt, wieder und wieder dieselben Fehler zu begehen.

Jahr 3 Kosten, Komplexität, Risiken Konformität, Wert, Agilität Jahr 5 Auch neue Systeme brauchen Modernisierungen

Wo die Kurven sich treffen

Die Grafik oben zeigt die Entwicklungskurve eines neuen Systems, das nicht angemessen gewartet wird. Hier wird nur auf die nötigsten Business-Features geschaut. Mit anderen Worten: Es wird kaum etwas in das System investiert – außer höchstens für Bug Fixing und Betriebskosten. Man sieht deutlich, dass die meisten business-relevanten Punkte – wieWerte und Agilität – mit der Zeit abbauen. Stattdessen steigen zeitgleich die Wartungskosten, System-Komplexität und daraus resultierende Risiken.

Lassen Sie sich nicht von der Ähnlichkeit der beiden Kurven täuschen. Die rote Linie bleibt die ganze Zeit über praktisch linear. Doch die lila Linie entwickelt sich nach etwa 5 Jahren exponentiell weiter. Ab diesem Punkt geraten die Dinge völlig außer Kontrolle.

Wenn wir uns die Grafik nochmal genauer anschauen, erkennen wir zwei wichtige Meilensteine: Das dritte und das fünfte Jahr. Im dritten Jahr entfällt die Hälfte der Kosten darauf, dass System am Laufen zu halten. Im Grunde muss das Unternehmen extra Geld ausgeben, nur um dieselben Features zu erhalten, die man schon von Anfang an hatte. Nicht gerade ein guter „Return on Invest“. Zusätzlich tragen mehr und mehr dieser Features zum Anwachsen der Technischen Schuld bei. Veraltete Frameworks, Libraries, etc. müssen plötzlich repariert werden – und überall entstehen neue Probleme.

Springen wir nun ins fünfte Jahr: Hier ändert sich die Situation abrupt. Die Wartungskosten sind nun genauso hoch wie die Mittel, die zum Einbau neuer Features benötigt werden. Die schlechte Nachricht ist, dass von diesem Punkt an die technischen Probleme lawinenartig anwachsen.

Früher oder später veraltet jedes System

Um es mal klar zu sagen: Dieser Absturz droht jedem Software-System, das nicht modernisiert wird – egal, ob das System jung oder alt ist. Wie Martin Fowler schon sagte: “Hand aufs Herz: Wir schreiben heute auch nur die veraltete Software von morgen.”

Also falls Sie immer noch glauben, dass die System-Modernisierung nur eine einmalige Sache sei, überdenken Sie Ihr Weltbild besser nochmal. Selbst die modernsten, meist gehypten Systeme werden eines Tages zum alten Eisen gehören. Der Trick besteht darin, eine saubere Strategie zu verfolgen, die langfristige Stabilität sichert. Es ist egal, ob Ihre bevorzugte Entwicklungsart agil oder nach dem Wasserfall-Modell läuft: Was wirklich zählt, ist kontinuierliche Modernisierung. Das – und natürlich ein wunderschön gepflegter Rasen, auf den man stolz sein kann.