Home Legacy-Systeme im Zeitalter der Digitalisierung

Legacy-Systeme im Zeitalter der Digitalisierung

- hoffnungsloses Relikt oder unersetzlicher Wissensschatz?

 

Legacy-Systeme im Zeitalter der Digitalisierung
Teilen

Mit dem Wechsel in die Cloud sind immer mehr Softwareunternehmen bestrebt, ihre Entwicklungsprozesse und die eigene Infrastruktur zu digitalisieren. Besonders bei der Neuentwicklung von Software werden Quellcode und Dokumentation in solche Repositories wie z.B. GitHub, Azure, Google Cloud o.Ä. gespeichert.

Ein Großteil der Systeme, die z.B. in der Gesundheits-, Transport- oder Finanzbranche zum Einsatz kommen, sind allerdings immer noch nach dem „guten alten Client-Server-Prinzip“ gebaut. Ein Wandel auf Knopfdruck ist für diese Systeme noch lange nicht in Sicht. Sicherlich kann es für SaaS-Unternehmen relativ einfach sein, auf Grund der bereits vorhandenen Infrastruktur und Know-how den Software-Quellcode auf alte Funktionalitäten, Programme oder Schnittstellen aufrechtzuerhalten. Modernisieren möchte man aber auch bei den ganz Großen lieber nicht, denn – Was nicht kaputt ist, soll man nicht reparieren. Oder doch?

Wenn es um Legacy-Code geht, passt dieser Spruch leider nicht ganz. Der Quellcode funktioniert möglicherweise richtig, ist aber bei der Weiterentwicklung anhand von Kundenanforderungen oder neuen Marktgegebenheiten für das Entwicklungsteam minderwertig. Die Entwicklung neuer Funktionalitäten auf alter Quellcodebasis birgt gewisse Risiken, wenn man die Absicht hat, die Software zu modernisieren oder den Anschein „neuer Software“ zu vermitteln. Produkt- und Funktionsinstabilität, Integrationsprobleme und steigende Wartungskosten sind nur einige Risiken, die in diesem Zusammenhang aufgezählt werden können.

Wie sind Legacy-Systeme aufgebaut?

Legacy-Systeme basieren auf Legacy-Code – dieser funktioniert weiterhin gut, obwohl niemand genau weiß, wie es dazu kommt. Humor beiseite, man sollte Legacy-Code als Quellcode betrachten, der von Ihrer aktuellen Entwicklungsmannschaft nicht mehr oder unvollständig verstanden und unterstützt wird. Er wurde möglicherweise von einem älteren Team geerbt, das leider in Rente gegangen ist, oder von einer nicht mehr existierenden Lieferantenfirma. Diese haben den Quellcode sicherlich in einer alten Programmiersprache (Delphi, Cobol, Visual Basic) oder unter Verwendung eines älteren Frameworks geschrieben, ohne oder mit einer niedrigen Unit-Test-Abdeckung.

 


Stellen Sie sich Altsysteme wie eine robuste alte IBM-Maschine vor, die vor langer Zeit für eine lange Lebensdauer gebaut wurde. Legacy-Code ist alt, solide, funktioniert und scheint in der Lage zu sein, für immer weiter zu ticken. Also, was ist daran so schlimm?


„S -“ für Stabilität oder Spaghetti-Code?

In unserer Praxis hat es sich herausgestellt, dass Legacy-Code starr und schwer zu pflegen ist, da er mit der Zeit inkohärent oder schwer verständlich wird. Vor einigen Jahrzehnten machte dieser Legacy-Code sicherlich Sinn, jedoch wurde er seitdem von verschiedenen Entwicklern bearbeitet, erweitert und gepatcht. Softwareentwicklung ist ja ein dauerhafter Prozess, der nie vollendet ist.

Legacy-Code vermittelt deshalb die Illusion von Stabilität, weil er funktioniert. Er hat sich mit der Zeit bewährt – daher ist er sicher. Aber im Laufe der Zeit verwandelt sich Legacy-Code durch Erweiterung, Patching und Weiterentwicklung in einen wachsenden Haufen von Spaghetti-Code.

Da steht nun eine Quellcodebasis, die keiner richtig warten oder migrieren kann. Entwickler trauen sich nicht zu, viel zu ändern, da es zu viele Abhängigkeiten gibt. Sie wissen möglicherweise nicht, wo sie anfangen sollen, um die Quellcodebasis zu verbessern und könnten sogar etwas Grundlegendes zerstören, wenn sie es versuchen würden.

Updates und neue Funktionalitäten stapeln sich auf dieser alten Codebasis. Zwangsläufig werden bestimmte Workarounds eingesetzt, damit neue Ergänzungen auf alten Dinosauriersystemen funktionieren. Bald können Sie an dem Quellcode nichts mehr ändern oder Bugs beheben, ohne dass etwas kaputt geht – dies wirkt sich negativ auf die Qualität Ihres Quellcodes und somit Ihres Produkts oder Ihrer Dienstleistung aus.

Mit der Einführung neuer Programmiersprachen werden Programmierer (oder Stand heute – Entwickler), die einen Legacy-Code anwenden und verstehen können, immer weniger. Programmierer mit spezifischen Kenntnissen in z.B. Cobol, MATLAB, Delphi oder VB6 zählen zu einer besonderen Gruppe von Professionals, die heutzutage schwer zu finden sind und nur teuer von der Konkurrenz abgeworben werden können.

Eingeschränkte Mobilität

Legacy-Code ist also nicht nur schwierig zu bearbeiten und zu pflegen, sondern birgt auch wettbewerbsbezogene Risiken. Basiert ein Quellcode auf einer Programmiersprache oder einer Technologie, die nicht mehr unterstützt wird, dann integriert er sich mit neuen Apps, Programmen oder Hardware nicht mehr ordnungsgemäß. Dies bedeutet, dass Legacy-Code Ihr Unternehmen zurückhalten wird, da Sie den Schritt mit neuen Technologien nicht mehr halten können.

Sparen kostet Geld und erhöht Risiken

Vielleicht glauben Sie Geld zu sparen, indem Sie nichts in die Aktualisierung Ihres Quellcodes investieren? In der Praxis tun Sie nichts anderes als nur das Risiko zu erhöhen. Eines der Hauptrisiken von Legacy-Code besteht darin, dass es Geld und Ressourcen braucht, um ihn am Laufen zu halten.

Ein älterer Quellcode erfordert in der Regel spezifische Hardware und Systeme, um ausgeführt zu werden. Dies wirkt sich ebenfalls auf Ihre Kosten aus, da auslaufende Systeme schwieriger zu bekommen und teurer zu warten sind. Nehmen wir zum Beispiel ein älteres CRM-System, das aktuell bei Ihren Kunden täglich im Einsatz ist. Besonders in der gegenwärtigen Zeit, wo das Büro ins Homeoffice versetzt wurde, wünschen sich Ihre Kunden plattformunabhängige Integration mit mobilen Geräten, standortunabhängigen Zugriff auf die wesentlichen Funktionen und eine Betriebszeit von mindestens 99,9%, da niemand im Büro im Notfall auf den Reset-Knopf drücken kann.

So können Sie wieder gezwungen sein, umständliche Workarounds und instabile Integrationen zu verwenden, damit Ihre Kunden mit Ihrem Produkt zufrieden weiter arbeiten können.

Sicherheitsrisikos

Das digitale Zeitalter ist eine goldene Zeit für Cyberkriminelle. Dank den neuen Technologien und unglaublichen Rechengeschwindigkeiten, die heutzutage sogar von einem Smartphone in der Hosentasche erzielt werden können, erleben wir eine noch nicht da gewesene Anzahl an Cyber-Delikten. Angreifer kennen die Schwachstellen älterer Systeme, die für den normalen Betrieb auf Legacy-Code basieren und nutzen dieses Wissen zunehmend, um Unternehmen lahmzulegen. Über die letzten Jahre haben wir alle gesehen, dass Ransomware im Rampenlicht der Medien steht und dass Angriffe schon überall verübt wurden.

Legacy-Code könnte Cyberkriminellen eine Hintertür zu Ihrem Unternehmen öffnen, wenn Sie veraltete (und unsichere) Frameworks und Bibliotheken einsetzen. Wenn Sie Ihren Quellcode und Ihre Systeme nicht auf den neuesten Stand der Sicherheitstechnik bringen, werden Sie zu einem leichten Opfer.

Softwarequellcode ist Ihr Betriebskapitalgut

Manche Unternehmer bevorzugen, die Notwendigkeit der Weiterentwicklung eines Software-Produkts zu ignorieren oder mit einer niedrigen Priorität zu versehen. Es gibt unterschiedliche Gründe dafür, manchmal kann es eine verfehlte Geschäftsmöglichkeit sein, in anderen Fällen besteht keine Nachfrage mehr nach dieser Software auf dem Markt.

Unsere Praxis erweist jedoch eine steigende Tendenz vieler Unternehmer aus den 90´er und 00´er Jahren, ihr eigenes Softwareprodukt und den Legacy-Code durch einen externen Dienstleister beurteilen und inventarisieren zu lassen. Schließlich ist der Legacy-Code ein greifbarer Beweis für den Erfolg und die Entwicklung des Unternehmens, also möchte man im digitalen Zeitalter noch nicht aufgeben. Fügt man hier zahlreiche Förderprogramme und Initiativen des Bundes in die Digitalwirtschaft für den Zeitraum 2020-2024 zur Ankurbelung von KMU´s hinzu, die noch vor (nicht so) langer Zeit innovative Ideen entwickelt und auf den Markt gebracht haben, so hat man einen beachtlichen Bestand von Softwareunternehmen, die eine zweite Chance verdient haben!

Wenn Ihr Quellcode Ihr Betriebskapitalgut ist, können Sie es sich nicht leisten, ihn zu vernachlässigen. Alles muss weg, was Sie zurückhält und schaffen Sie Platz für Neues!

QA Testing, Testmanagement, QA Tester, Software-Entwicklung Dortmund, Testautomatisierung, QA Testing SoftwareSTLC, qa testersIT Nearshoring, Nearshore-Softwareentwicklung, nearshoring software,  it nearshoring, software-refactoring, Software-Lebenszyklus, apps testen, DevOps Testautomatisierung, DevOps Prozess, Was ist DevOps, DevOps Vorteile, DevOps Beratung, software testen, DevOps Prinzipien

    Begriffe


    Leave a Reply

    Your email address will not be published.

    Wie wandelt man Altsysteme in moderne Software um, die den aktuellen Marktanforderungen entspricht?

    Wenn Ihnen dieser Artikel gefallen hat, sollten Sie unbedingt auch unseren nächsten lesen, der aus praktischer Sicht zeigt, wie man das Refactoring überholter (Legacy-) Software erfolgreich durchführt.

    Siehe die Entwicklung von Technosoft

    1977 Heute
    1998
    Projektmanagementsoftware
    1983
    Markenregistrierung Technosoft
    1984
    Start der Entwicklung CAD Software
    2000
    Übernahme der Tätigkeiten von Brunel und Niederlassung in Deventer
    2007
    Technosoft Deutschland
    2009
    Technosoft Moldawien
    2015
    Technosoft Rumänien
    1993
    Von DOS zur Windows-Plattform
    2001
    Start Verkauf AxisVM Software
    2014
    Einführung 3Muri Erdbebensoftware + erste KOMO Zertifizierung
    2013
    Start Business Unit Qualitätssicherung & Testing
    2011
    Übergang zu Eurocodes
    2012
    Start von Nearshoring unter dem Markennamen In-shore
    2006
    Technosoft von Brunel verkauft durch ein Management Buy Out
    2016
    Integration der Business Units in eine einzige Geschäftseinheit
    2017
    Zusammenfügung aller Aktivitäten unter dem Namen Technosoft
    2018
    Technosoft ist aktiv in 6 europäischen Länder