Was ist eine Software-Modernisierung?
Was sollten Unternehmen tun, wenn ihre wichtigsten Softwareapplikationen fehleranfälliger, langsamer und im Unterhalt immer teurer werden? Diese Frage stellt sich häufig bei einem kritischen Blick auf Legacy-Software-Installationen. Mit zunehmendem Alter der Anwendung steigt die Wahrscheinlichkeit, dass sie die zukünftige Ausrichtung des Unternehmens beeinträchtigt.
Bei Altsystemen, Legacy-Software oder Anwendungen in veralteten Programmiersprachen muss sich die IT-Abteilung rechtzeitig mit der Frage der Machbarkeit oder Unmöglichkeit einer Software-Modernisierung auseinandersetzen.
Was unterscheidet Modernisierung von anderen Qualitätsverbesserungen?
Software-Modernisierung greift dort ein, wo alleinige Qualitätsverbesserungsmaßnahmen nicht mehr ausreichen. Dies liegt häufig daran, dass über einen längeren Zeitraum (Jahre) hinweg regelmäßige Maßnahmen zur Qualitätsverbesserung vernachlässigt wurden. Dazu gehören beispielsweise der Abbau von Technischen Schulden, Upgrades der verwendeten Technologien, eine umfassende Dokumentation oder das Fehlen von Nachfolgern für in den Ruhestand gegangene Experten.
Wann sollte Ihre Software modernisiert werden?
Die pragmatische Antwort: Wenn Ihre Software nicht mehr leicht lesbar, änderbar, wartbar und erweiterbar ist. Die strategische Antwort: Wenn die installierte Software die Unternehmensstrategie (Digitalisierung, Cloud, Wachstum, M&A) nicht mehr unterstützen kann.
Es gibt eine Reihe von Gründen in Ihrer individuellen Unternehmenssituation, die für eine Software-Modernisierung sprechen können. Hier eine Auswahl:
Digitalisierung in ihren Märkten
|
Die installierte Software kann neue Anforderungen (z.B. Cloud, IoT, Mobile) nicht mehr (vollständig) erfüllen.
|
Performance und Verfügbarkeit
|
Technische Schulden, große Mengen an Altdaten oder Spaghetti-Code beeinträchtigen die Performance, Verfügbarkeit und Innovationsfähigkeit der Software.
|
Sicherheit
|
Sicherheitslücken bieten keine ausreichende Sicherheit mehr und lassen sich nicht mehr mit normalem Aufwand beheben
|
Kompatibilität
|
Die Kompatibilität der Software mit moderneren Anwendungen im Unternehmen ist eingeschränkt. Die Schnittstellen werden immer komplexer und unübersichtlicher.
|
Wartungskosten
|
Die Software ist so unübersichtlich und komplex (Spaghetti-Code), dass Wartung und Weiterentwicklung immer aufwändiger und fehleranfälliger werden.
|
Ausgelaufener Support
|
Die Applikation basiert auf alten Technologien, die nicht mehr gewartet oder unterstützt werden.
|
Knowhow-Verlust
|
Die ursprünglichen Entwickler sind nicht mehr verfügbar, und die Dokumentation im Code ist unvollständig. Die Alt-Software kann nicht mehr oder nur mit sehr hohem Aufwand von wenigen Personen weiterentwickelt werden.
|
Bedienbarkeit/User Experience (UX)
|
Die Bedienbarkeit der Legacy-Software ist nicht mehr intuitiv und umständlich, was die Produktivität und Zufriedenheit der Nutzer beeinträchtigt
|
Neue gesetzliche Anforderungen
|
Der Schutz personenbezogener Daten (DSGVO) muss nachweisbar durch den Einsatz von Technologien, die dem Stand der Technik entsprechen, sichergestellt werden. Der Datenschutzverantwortliche im Unternehmen hat die Pflicht des „Privacy by Design“ (Datenschutz durch geeignete Gestaltung der Technik).
|
Der gemeinsame Nenner der Software-Modernisierungs-Trigger ist:
- Die Software kann die Geschäftsstrategie und -prozesse nicht mehr hinreichend unterstützen.
- Die technologischen Voraussetzungen, um die Chancen der Digitalisierung wahrzunehmen, fehlen.
- Das Knowhow zur Weiterentwicklung der Applikation ist nicht mehr verfügbar.
- Die Cyber-Sicherheit der Software ist durch technisch nicht lösbare Sicherheitslücken nicht mehr zu gewährleisten.
Wie wird Software modernisiert?
Je nach Konstellation im Unternehmen in Bezug auf Strategie und Technologie gibt es verschiedene Ansätze zur Modernisierung von Software, um sie leistungsfähiger und zukunftssicherer zu machen. Folgende Methoden werden erwogen:
- Refactoring: Verbesserung von Code und Architektur zur Reduzierung von technischen Schulden und Wiederherstellung der Innovationsfähigkeit. Durch Identifizierung und Beseitigung vernachlässigter Wartungspunkte sowie Verbesserung der Modularität in der Architektur wird die Integration neuer Features/Funktionen erleichtert.
- Reengineering: Beibehaltung der Funktionalitäten mit Aufbau einer neuen Technikplattform (z.B. von Cloud bis Microservices). Dies erfordert eine umfassende Entkopplung der Architektur und Neuentwicklung einzelner Komponenten, um Funktionen unabhängig voneinander zu entwickeln, zu betreiben und bei Bedarf gezielt zu skalieren.
- Neuentwicklung: Entwicklung einer neuen Software zur Ablösung der Legacy-Applikation. Basierend auf aktuellen Programmiersprachen, Technologien, Standards und Tools können damit die neuesten strategischen Anforderungen und Markttrends umgesetzt werden.
- Ausmusterung + Migration: Stilllegung der Applikation und Migration/Archivierung der Daten. Dabei könnten die Daten zukünftig in anderen Anwendungen genutzt werden, abgesehen von den möglichen Pflichten zur Aufbewahrung.
Die richtige Auswahl des Modernisierungsansatzes ist entscheidend, um mit minimalem Aufwand, Kosten und Risiko die bestmögliche und zukunftssichere Verbesserung der Applikation zu erreichen.
So kann es genügen, wenn die technologische Basis der Softwaretechnologie noch aktuell (zukunftssicher) ist, nur ein Refactoring zum Abbau der Technischen Schulden durchzuführen (s. Bild).
Ziele einer Software- Modernisierung
Die häufigsten Ziele einer Software-Modernisierung, die wir aus unserer Praxis kennen sind:
- Wiederherstellung der Wartbarkeit und Innovationsfähigkeit der Alt-Software
- Reduzierung von Komplexität und Wartungsaufwand
- Anpassung an neuen Strategien und Technologien
- Steigerung der Leistung und Performance
- Verbesserung der Benutzerfreundlichkeit (UX)
- Erhöhung der Sicherheit und Datenschutzstandards
- Verbesserung der allgemeinen Softwarequalität
- Gewährleistung der Kompatibilität anderen modernen Systemen
- Erhöhung der Skalierbarkeit und Flexibilität der Software oder
- Entwicklung einer neuen Software unter Berücksichtigung der neuesten Business Trends und mit State of the Art Technologien.
Herausforderungen und deren Risikomanagement
Software-Modernisierung kann bei unzureichender Planung und Risikobewertung erhebliche Probleme verursachen. Falsche Erwartungen, mangelhafte Analyse der Legacy-Software und ineffektives Risikomanagement sind dabei besonders problematisch. Eine misslungene Modernisierung kann schwerwiegende Auswirkungen auf das Unternehmen haben. Häufige Probleme und Risiken sind folgende Punkte.
Fehlende Datenabgleich und mangelnde Ressourcen
Oftmals fehlt es an einem Abgleich der Analyseergebnisse der Legacy-Software mit den Anforderungen an die neue Software. Dies kann zu einer unklaren Festlegung des Modernisierungsansatzes führen. Sie sollten wissen, was in der alten Software den aktuellen Ansprüchen nicht mehr genügt, was die Modernisierung bewirken soll (deren Ziele und Anforderungen) und welchen Weg sie zur Umsetzung wählen.
Ebenso sind nicht ausreichende Projekt-Ressourcen, fehlendes Wissen und Knowhow sowie knappe Budgets und unrealistische Erwartungen problematisch.
Mangel an Know-how-Trägern
Ein weiteres Risiko besteht darin, dass zu wenige Know-how-Träger die alte Applikation betreuen und nicht genügend Kapazitäten haben, um im Modernisierungsprojekt eine bedeutende Rolle zu spielen.
Technische Herausforderungen und unzureichende Dokumentation
Besondere technische Herausforderungen und eine unzureichende Dokumentation des Legacy-Systems stellen zusätzliche Risiken dar. Ein erhebliches Projektrisiko entsteht durch den Verzicht auf den Einsatz moderner Softwaretools bei der Analyse und der Wahl des Modernisierungskonzepts.
Weitere Herausforderungen
Zusätzlich zu den genannten Risiken treten bei Softwareentwicklungsprojekten übliche Herausforderungen auf, darunter die Unterstützung durch die Leitungsebenen, Projektkommunikation, Risikomanagement und ausreichendes Testing.
Diese Herausforderungen müssen bei der Planung und Umsetzung von Software-Modernisierungsprojekten sorgfältig berücksichtigt und entsprechend adressiert werden, um eine erfolgreiche und effektive Modernisierung zu gewährleisten.