Softwaremodernisierung
Die Ironie der Stagnation in der Softwarewelt
Die vermeintliche Sicherheit
Das Zitat "Never change a running system" war lange Zeit eine Maxime in der Softwareentwicklung, die für Stabilität und Kontinuität stand. Doch in der heutigen Welt, die von raschem technologischem Wandel geprägt ist, bremst diese Einstellung Innovation und Wettbewerbsfähigkeit.
Die Angst vor Veränderung scheint in Bezug auf altgediente Applikationen allgegenwärtig. Immer wieder hört man das Argument, „das bestehende System läuft doch stabil; eine Veränderung birgt doch nur unnötige Risiken“.
Das scheinbar stabile System ist nicht so sicher, wie man denken mag. Die Technologien entwickeln sich weiter, während die betreffende Software stehen bleibt. Doch in der Realität sind digitale Transformation und Agilität entscheidend und ein Stillstand wirkt viel mehr als wirtschaftlicher Bremsklotz.
Die Herausforderungen der Veränderung
Warum gibt immer noch viele Altsysteme? Nun, weil sie schwer zu ersetzen sind.
Oftmals wurden sie als maßgeschneiderte Lösungen bereitgestellt, sind tief in der IT-Infrastruktur verwurzelt und sind häufig Teil eines kritischen Geschäftsprozesses des Unternehmens.
Damit wird auch klar, warum sich Entwickler scheuen, ein funktionierendes System zu ändern. Es ist eine herausfordernde Aufgabe.
Wenn also Legacy-Systeme die Grundlage von komplexen Systemen stellen, die über Jahre hinweg gewachsen sind, veraltete Technologien genutzt werden und die Dokumentation spärlich ist, kann die Softwaremodernisierung zu einer unglaublich mühsamen Angelegenheit werden.
Daneben haben die IT-Verantwortlichen die Sorge, dass im Rahmen des Umstellungsprozesses viele Ressourcen gebunden sind oder dass die neuen Applikationen die Altsysteme nicht adäquat ersetzen können. Aber es kann auch sein, dass schlichtweg das Know-how fehlt, welche der vielfältigen Modernisierungsmöglichkeiten DIE Passende ist und wie man am besten vorgehen sollte.
Die Folge: Man zögert die Modernisierung hinaus, auch wenn sie dringend nötig wäre. Auch wenn dabei völlig klar ist, dass es im schlimmsten Fall zu einer massiven Störung des Altsystems oder sogar zum kompletten Stillstand kommen kann. In diesem Fall wären die Kosten immens. Vermutlich um ein Vielfaches höher, als eine Modernisierung veranschlagen würde.
Vom Worst-Case-Szenario abgesehen, sind auch die „Alltags-Kosten“ der Altsysteme nicht unerheblich. Pflege- und Wartungsaufwand steigen, die Stabilität „hängt am seidenen Faden“, die Kompatibilität mit neuen Anwendungen und Updates ist fraglich und die Weiterentwicklung dieser Systeme wird mit zunehmender Zeit eine schier unlösbare Aufgabe. Irgendwann kann das Altsystem buchstäblich zu einer Altlast werden.
Wahrlich keine gute Ausgangsbasis für die Zukunft eines Unternehmens in Zeiten von Digitalisierung, Künstlicher Intelligenz und was da noch so kommen mag.
Wann ist es Zeit für etwas Neues?
Gründe für eine Software-Modernisierung
◼️ Kostensteigerung: Durch steigende Wartungs- und Betriebskosten, zusätzliche Ausgaben für Sicherheitsmaßnahmen oder durch die Notwendigkeit von teuren Workarounds und Patches können die Kosten der Legacy-Systeme bzw. um deren Funktionalität zu erhalten, immens ansteigen.
◼️ Know-how Verlust: Die Wissensträger, die die Legacy-Systeme in- und auswendig kennen, sind „mit einem Bein im Ruhestand“ oder streben mitunter eine berufliche Veränderung an. Von der Abhängigkeit einzelner Know-how-Träger sollte sich das Unternehmen dringend lösen.
◼️ Fehlende Kompatibilität, Konnektivität und Schnittstellen: Legacy-Systeme sind häufig nicht mit modernen Systemen und Technologien kompatibel. Das erschwert die Integration neuer Funktionen oder die Skalierung. Auch die Integration von Legacy-Systemen kann aufgrund fehlender Schnittstellen oder Kompatibilitätsproblemen schwierig werden.
◼️ Begrenzte Möglichkeiten für den Remote-Zugriff: Legacy-Systeme bieten oftmals eingeschränkte Möglichkeiten für den Remote-Zugriff und das wiederum beeinträchtigt die Flexibilität und Effizienz in einer zunehmend dezentralisierten Arbeitsumgebung.
◼️ Fehlende Skalierbarkeit: Die begrenzte Skalierbarkeit von Legacy-Systeme kann ein Bremsklotz für Innovation und Wachstum sein. Schließlich wird es immer wichtiger auf veränderte Anforderungen, Datenmengen, Userzahlen etc. reagieren zu können.
◼️ Mangelnde Datensicherheit und DSGVO: Die Einhaltung von Datenschutzanforderungen, wie der DSGVO, erfordert regelmäßige Updates und Sicherheitspatches, die bei veralteten Systemen meist nicht gewährleistet werden können. Wird die zugrunde liegende Technologie der Legacy-Systeme von Herstellern nicht mehr unterstützt, entstehen erhebliche Sicherheitslücken und Compliance-Verletzungen.
◼️ Unzureichende Performance der unterstützten Prozesse: Die Leistungsfähigkeit von Legacy-Systemen kann durch veraltete Technologien und ineffiziente Prozesse eingeschränkt sein. Das führt zu längeren Bearbeitungszeiten und niedrigerer Produktivität.
◼️ Risiko eines Systemausfalls: Legacy-Systeme sind anfälliger für unerwartete Systemausfälle. Ob aufgrund eines Hardwarefehlers, Softwareproblems oder Sicherheitsverletzung, die Ausfälle können zu erheblichen Betriebsunterbrechungen führen, die die Produktivität beeinträchtigen.
Schritt für Schritt zum Modernisierungsprojekt
Ein erfolgreicher Modernisierungsprozess erfolgt in komprimierten, klar definierten Arbeitspaketen, das große Ganze stets im Blick. Das Vorgehen ist agil; also eine iterative Arbeitsweise mit monatlichen Sprints und Deadlines. Auf diese Weise kann jederzeit nachjustiert werden.
Wie läuft eine Modernisierung ab? - Vorgehensweise
Entweder die betreffende Applikation ist bereits definiert oder die gesamte IT-Infrastruktur wird „unter die Lupe“ genommen, um Legacy-Systeme, deren Schwachstellen und Risiken anhand von Kriterien zu identifizieren. Danach erfolgt die Bestandsaufnahme hinsichtlich Funktionsumfang der Applikation, Abhängigkeiten, verwendete Technologie, Quellcode, Architektur, möglichen Schwachstellen und mögliche Sicherheitslücken oder Performance-Engpässen. Es gilt auch, die Zielsetzung der Modernisierung abzustecken. Geht es um die Einführung neuer Funktionalitäten, um Effizienzsteigerung, Skalierbarkeit oder Kostenreduktion?
Auf dieser Grundlage kann ein Konzept hinsichtlich eines passenden Modernisierungsansatzes (Rehosting, Replatforming, Refactoring, Reengineering, Rearchitecting oder Replacing) erstellt und die zukünftige Architektur und Plattformen festgelegt sowie konkrete Maßnahmen zur Optimierung der Prozesse geplant werden. Diese sind davon abhängig, ob die Applikation umgestaltet oder neu aufgesetzt werden muss, beispielsweise wenn das Altsystem nicht in vorhandene Systeme (SAP, Microsoft) integrieren lässt.
Anhand eines detaillierten Projektplans (Schritte, Ressourcen, Zeit, Budget) inkl. Risikomanagement, Design der Softwarearchitektur und der Modernisierungsstrategie folgend, kann die Durchführung erfolgen. Von der Entwicklung (z.B. Neuentwicklung von Teilen, Code-Umstrukturierung, Implementierung neuer Funktionen), Datenmigration, Testing, Qualitätssicherung über eine schrittweise Implementierung in die Produktivumgebung, dem Performance-Monitoring und ggf. Anpassungen.
In einem Managed Service Ansatz kann ein verantwortlicher Dienstleister auch die Wartung der Software, das Patching und Sicherstellung der SLAs bis hin zum Demand Management übernehmen.
Auch wenn die Software-Modernisierung herausfordernd ist, im Digitalisierungszeitalter ist Stillstand keine Option. Die Optimierung und Erneuerung einer Applikation ermöglicht es Unternehmen, sich den dynamischen Anforderungen anzupassen, innovativ zu sein und letztendlich wettbewerbsfähig zu bleiben.
Sprechen Sie mit unseren Experten und erfahren Sie mehr über die Möglichkeiten einer Software-Modernisierung um deren Struktur, Effizienz und Sicherheit zu optimieren.
Marco von Schmuda
Leitung Anwendungs-
& Lösungsentwicklung
Ihr kontakt