{"id":3611,"date":"2021-02-12T14:34:32","date_gmt":"2021-02-12T13:34:32","guid":{"rendered":"https:\/\/www.technosoft.de\/?p=3611"},"modified":"2021-03-01T08:34:48","modified_gmt":"2021-03-01T07:34:48","slug":"legacy-systeme","status":"publish","type":"post","link":"https:\/\/www.technosoft.de\/nearshoring\/blog\/legacy-systeme-im-digitalisierungszeitalter","title":{"rendered":"Legacy-Systeme im Zeitalter der Digitalisierung"},"content":{"rendered":"

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.\u00c4. gespeichert.<\/p>\n

Ein Gro\u00dfteil der Systeme, die z.B. in der Gesundheits-, Transport- oder Finanzbranche zum Einsatz kommen, sind allerdings immer noch nach dem \u201eguten alten Client-Server-Prinzip\u201c gebaut. Ein Wandel auf Knopfdruck ist f\u00fcr diese Systeme noch lange nicht in Sicht. Sicherlich kann es f\u00fcr SaaS-Unternehmen relativ einfach sein, auf Grund der bereits vorhandenen Infrastruktur und Know-how den Software-Quellcode auf alte Funktionalit\u00e4ten, Programme oder Schnittstellen aufrechtzuerhalten<\/a>. Modernisieren m\u00f6chte man aber auch bei den ganz Gro\u00dfen lieber nicht, denn – Was nicht kaputt ist, soll man nicht reparieren.<\/em> Oder doch?<\/p>\n

Wenn es um Legacy-Code geht, passt dieser Spruch leider nicht ganz. Der Quellcode funktioniert m\u00f6glicherweise richtig, ist aber bei der Weiterentwicklung anhand von Kundenanforderungen oder neuen Marktgegebenheiten f\u00fcr das Entwicklungsteam<\/a> minderwertig. Die Entwicklung neuer Funktionalit\u00e4ten auf alter Quellcodebasis birgt gewisse Risiken, wenn man die Absicht hat, die Software zu modernisieren oder den Anschein \u201eneuer Software\u201c zu vermitteln. Produkt- und Funktionsinstabilit\u00e4t, Integrationsprobleme und steigende Wartungskosten sind nur einige Risiken, die in diesem Zusammenhang aufgez\u00e4hlt werden k\u00f6nnen.<\/p>\n

Wie sind Legacy-Systeme aufgebaut?<\/h2>\n

Legacy-Systeme basieren auf Legacy-Code \u2013 dieser funktioniert weiterhin gut, obwohl niemand genau wei\u00df, wie es dazu kommt. Humor beiseite, man sollte Legacy-Code als Quellcode betrachten, der von Ihrer aktuellen Entwicklungsmannschaft<\/a> nicht mehr oder unvollst\u00e4ndig verstanden und unterst\u00fctzt wird. Er wurde m\u00f6glicherweise von einem \u00e4lteren 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 \u00e4lteren Frameworks geschrieben, ohne oder mit einer niedrigen Unit-Test-Abdeckung<\/a>.<\/p>\n

 <\/p>\n


\n

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


\n

\u201eS -\u201c f\u00fcr Stabilit\u00e4t oder Spaghetti-Code?<\/h2>\n

In unserer Praxis hat es sich herausgestellt, dass Legacy-Code starr und schwer zu pflegen ist, da er mit der Zeit inkoh\u00e4rent oder schwer verst\u00e4ndlich 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.<\/p>\n

Legacy-Code vermittelt deshalb die Illusion von Stabilit\u00e4t<\/a>, weil er funktioniert. Er hat sich mit der Zeit bew\u00e4hrt – 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.<\/p>\n

Da steht nun eine Quellcodebasis, die keiner richtig warten oder migrieren kann. Entwickler trauen sich nicht zu, viel zu \u00e4ndern, da es zu viele Abh\u00e4ngigkeiten gibt. Sie wissen m\u00f6glicherweise nicht, wo sie anfangen sollen, um die Quellcodebasis zu verbessern und k\u00f6nnten sogar etwas Grundlegendes zerst\u00f6ren, wenn sie es versuchen w\u00fcrden.<\/p>\n

Updates und neue Funktionalit\u00e4ten stapeln sich auf dieser alten Codebasis. Zwangsl\u00e4ufig werden bestimmte Workarounds eingesetzt, damit neue Erg\u00e4nzungen auf alten Dinosauriersystemen funktionieren. Bald k\u00f6nnen Sie an dem Quellcode nichts mehr \u00e4ndern oder Bugs beheben, ohne dass etwas kaputt geht – dies wirkt sich negativ auf die Qualit\u00e4t Ihres Quellcodes und somit Ihres Produkts oder Ihrer Dienstleistung aus.<\/p>\n

Mit der Einf\u00fchrung neuer Programmiersprachen werden Programmierer (oder Stand heute \u2013 Entwickler), die einen Legacy-Code anwenden und verstehen k\u00f6nnen, immer weniger. Programmierer mit spezifischen Kenntnissen<\/a> in z.B. Cobol, MATLAB, Delphi oder VB6 z\u00e4hlen zu einer besonderen Gruppe von Professionals, die heutzutage schwer zu finden sind und nur teuer von der Konkurrenz abgeworben werden k\u00f6nnen.<\/p>\n

Eingeschr\u00e4nkte Mobilit\u00e4t<\/h2>\n

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\u00fctzt wird, dann integriert er sich mit neuen Apps, Programmen oder Hardware nicht mehr ordnungsgem\u00e4\u00df. Dies bedeutet, dass Legacy-Code Ihr Unternehmen zur\u00fcckhalten wird, da Sie den Schritt mit neuen Technologien nicht mehr halten k\u00f6nnen.<\/p>\n

Sparen kostet Geld und erh\u00f6ht Risiken<\/h2>\n

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\u00f6hen. Eines der Hauptrisiken von Legacy-Code besteht darin, dass es Geld und Ressourcen braucht, um ihn am Laufen zu halten<\/a>.<\/p>\n

Ein \u00e4lterer Quellcode erfordert in der Regel spezifische Hardware und Systeme, um ausgef\u00fchrt 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 \u00e4lteres CRM-System, das aktuell bei Ihren Kunden t\u00e4glich im Einsatz ist. Besonders in der gegenw\u00e4rtigen Zeit, wo das B\u00fcro ins Homeoffice versetzt wurde<\/a>, w\u00fcnschen sich Ihre Kunden plattformunabh\u00e4ngige Integration mit mobilen Ger\u00e4ten, standortunabh\u00e4ngigen Zugriff auf die wesentlichen Funktionen und eine Betriebszeit von mindestens 99,9%, da niemand im B\u00fcro im Notfall auf den Reset-Knopf dr\u00fccken kann.<\/p>\n

So k\u00f6nnen Sie wieder gezwungen sein, umst\u00e4ndliche Workarounds und instabile Integrationen zu verwenden, damit Ihre Kunden mit Ihrem Produkt zufrieden weiter arbeiten k\u00f6nnen.<\/p>\n

Sicherheitsrisikos<\/h2>\n

Das digitale Zeitalter ist eine goldene Zeit f\u00fcr Cyberkriminelle. Dank den neuen Technologien und unglaublichen Rechengeschwindigkeiten<\/a>, die heutzutage sogar von einem Smartphone in der Hosentasche erzielt werden k\u00f6nnen, erleben wir eine noch nicht da gewesene Anzahl an Cyber-Delikten. Angreifer kennen die Schwachstellen \u00e4lterer Systeme, die f\u00fcr den normalen Betrieb auf Legacy-Code basieren und nutzen dieses Wissen zunehmend, um Unternehmen lahmzulegen. \u00dcber die letzten Jahre haben wir alle gesehen, dass Ransomware im Rampenlicht der Medien steht und dass Angriffe schon \u00fcberall ver\u00fcbt wurden.<\/p>\n

Legacy-Code k\u00f6nnte Cyberkriminellen eine Hintert\u00fcr zu Ihrem Unternehmen \u00f6ffnen, 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.<\/p>\n

Softwarequellcode ist Ihr Betriebskapitalgut<\/h2>\n

Manche Unternehmer bevorzugen, die Notwendigkeit der Weiterentwicklung eines Software-Produkts zu ignorieren oder mit einer niedrigen Priorit\u00e4t zu versehen. Es gibt unterschiedliche Gr\u00fcnde daf\u00fcr, manchmal kann es eine verfehlte Gesch\u00e4ftsm\u00f6glichkeit sein, in anderen F\u00e4llen besteht keine Nachfrage mehr nach dieser Software auf dem Markt.<\/p>\n

Unsere Praxis erweist jedoch eine steigende Tendenz vieler Unternehmer aus den 90\u00b4er und 00\u00b4er Jahren, ihr eigenes Softwareprodukt und den Legacy-Code durch einen externen Dienstleister beurteilen und inventarisieren zu lassen<\/a>. Schlie\u00dflich ist der Legacy-Code ein greifbarer Beweis f\u00fcr den Erfolg und die Entwicklung des Unternehmens, also m\u00f6chte man im digitalen Zeitalter noch nicht aufgeben. F\u00fcgt man hier zahlreiche F\u00f6rderprogramme und Initiativen des Bundes in die Digitalwirtschaft f\u00fcr den Zeitraum 2020-2024 zur Ankurbelung von KMU\u00b4s 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!<\/p>\n

Wenn Ihr Quellcode Ihr Betriebskapitalgut ist, k\u00f6nnen Sie es sich nicht leisten, ihn zu vernachl\u00e4ssigen. Alles muss weg, was Sie zur\u00fcckh\u00e4lt und schaffen Sie Platz f\u00fcr Neues!<\/p>\n

QA Testing,\u00a0<\/a><\/span><\/a><\/span>T<\/span>estmanagement<\/a>, <\/span>QA Tester<\/a>, <\/span>Software-Entwicklung Dortmund<\/a>, <\/span>Testautomatisierung<\/a>, <\/span>QA Testing Software<\/a>,\u00a0<\/span><\/span>STLC,\u00a0<\/a><\/span>qa testers<\/a><\/span>,\u00a0<\/span><\/a><\/span>IT Nearshoring<\/a>, <\/span><\/span>N<\/span><\/a>earshore-Softwareentwicklung, nearshoring software<\/a>, \u00a0it nearshoring<\/a>, software-refactoring<\/a>, Software-Lebenszyklus<\/a>, apps testen<\/a>, DevOps Testautomatisierung,<\/a> <\/span>DevOps Prozes<\/a>s, <\/span>Was ist DevOps,<\/a> <\/span><\/span>DevOps Vorteile<\/a>, <\/span>DevOps Beratung, <\/a><\/span><\/span>software<\/a><\/span> testen,\u00a0<\/a><\/span><\/a><\/span>DevOps Prinzipien<\/a><\/span><\/span><\/h1>\n