Neulich habe ich mich mit einem Kollegen über ein Kernsystem unterhalten, das in COBOL geschrieben ist, und dabei kam ich stark ins Grübeln über die Prinzipien der modernen Software-Entwicklung, die sich – ganz nüchtern betrachtet – wie Fast Fashion anfühlt, also eine extrem kurze Haltbarkeit hat. Denn ich habe schon viele Softwareprodukte sterben sehen, die nach wenigen Jahren nicht mehr wartbar waren, und man einen kompletten Rewrite versucht hat und daran eben gescheitert ist. Warum ist das so?
In Banken und Versicherungen laufen noch immer viele “alte” Systeme, geschrieben in einer Sprache aus den 60ern, gepflegt von Entwicklern, die längst kurz vor der Rente stehen. Von außen wirkt das fast schon wie ein Relikt aus einer anderen Epoche. Doch wenn man genauer hinsieht, steckt dahinter nicht einfach Trägheit oder Technikfeindlichkeit, sondern eine Geschichte von Stabilität, Verlässlichkeit und auch einer anderen Haltung zum Programmieren. COBOL hat sich bewährt, es ist stabil, robust und extrem gut darin, riesige Datenmengen verlässlich zu verarbeiten. Millionen Überweisungen in einer Nacht abzuwickeln ist kein Problem, und diese Zuverlässigkeit ist ein Maßstab, an dem sich die modernen Frameworks und Architekturen erst einmal messen lassen müssen.
Der Unterschied liegt nicht nur in der Sprache selbst, sondern auch in der Art, wie damals entwickelt wurde. Man ging langsamer vor, arbeitete sorgfältiger und hatte den Anspruch, etwas Dauerhaftes zu schaffen (übrigens nicht nur in der Softwareentwicklung!). Fehler waren teuer, deswegen war die Disziplin hoch. Ein Stück Code war nicht Wegwerfware, sondern eine Investition, die über Jahrzehnte tragen musste. Man denke da beispielsweise auch an die noch heute stabil laufende Voyager-Sonde, die seit fast 50 Jahren und trotz aller Widrigkeiten weiterhin Daten an die Heimat, den Pale Blue Dot, sendet – ein Meisterwerk der Ingenieurskunst, auch der Software!
Heute wirkt es anders. Moderne Software ist nach ein paar Jahren kaum mehr wartbar, und irgendwann kommt fast zwangsläufig die Frage nach einem kompletten Neubau. Das liegt nicht unbedingt daran, dass die Qualität schlechter wäre, sondern daran, dass die gesamte IT-Industrie auf Kurzlebigkeit ausgerichtet ist. Ökonomisch macht das Sinn, denn neue Plattformen, neue Services und neue Standards bedeuten neue Umsätze. Kulturell passt es ebenfalls, weil Entwickler lieber mit den neuesten Werkzeugen glänzen, als alte Systeme mühsam weiterzupflegen. Technisch hat sich die Landschaft so fragmentiert, dass kaum ein Projekt ohne unzählige Abhängigkeiten auskommt, die sich alle unterschiedlich schnell weiterentwickeln. Wenn eine Library wegbricht, gerät gleich das ganze System ins Wanken. Und statt eben so eine alte Library zu pflegen, werden kurzerhand zehn neue geschrieben, die “alles besser machen wollen”.
Das Ergebnis ist eine strukturelle Kurzlebigkeit, die wie eine Art geplante Obsoleszenz wirkt, auch wenn das niemand offen so benennt. Kein Hersteller hat ein Interesse an einer Plattform, die über Jahrzehnte unverändert bleibt, und so dreht sich das Karussell immer schneller. Für die Anwender, gerade Banken oder Verwaltungen, bedeutet das enorme Kosten, während die alten COBOL-Systeme weiterlaufen, unscheinbar, aber zuverlässig, wie eine 800 Jahre alte Kathedrale.
Und hier stellt sich die eigentliche Frage: Haben wir in der modernen Softwareentwicklung vielleicht einen Teil unserer Ingenieurskunst verlernt? Ich bin keineswegs fortschrittsfeindlich, ganz im Gegenteil schätze ich die Innovationskraft, die neue Technologien mitbringen, und angesichts der Bedrohung durch Cyberattacken ist ein ständiges Anpassen, Fixen und Optimieren notwendiger denn je. Gleichzeitig erlebt man aber auch oft das Scheitern in endlosen, sich ständig wiederholenden und langweiligen Aufwänden für Anpassungen, die allein durch Versionsupdates notwendig werden, weil alte Frameworks nach kurzer Zeit End-of-Life sind und migriert werden müssen. Sollte man nicht dennoch stärker hinschauen, was die alten Systeme so erfolgreich gemacht hat, nicht um COBOL zurückzuholen, sondern um die Idee von Stabilität und Dauerhaftigkeit neu zu denken? Langlebige Qualitätsware statt Fast Fashion eben.
Es lohnt sich zu überlegen, wie wir Innovation und Ingenieurskunst besser ins Gleichgewicht bringen, damit Software nicht nur modern, sondern auch länger stabil und wartbar bleibt.
