Legacy-Software mit KI modernisieren

ARTIKEL 

 

Für Schweizer Unternehmen bedeutet die Weiterentwicklung ihrer Unternehmenssoftware, Innovation, Betriebskontinuität und Datenschutz miteinander zu vereinbaren. Über Jahre entwickelte Anwendungen enthalten wertvolle Prozesse und wertvolles Wissen, können jedoch zunehmend schwer zu warten und mit neuen Anwendungen, Cloud-Diensten und KI-Werkzeugen zu integrieren sein.

Modernisierung bedeutet nicht zwangsläufig, alles von Grund auf neu zu schreiben. KI kann die Codeanalyse, Dokumentation, das Refactoring und die Vorbereitung von Tests unterstützen und so ein schrittweises Vorgehen erleichtern. Verlässliche Ergebnisse erfordern jedoch Fachwissen, Überprüfungen und eine sorgfältige Kontrolle des Codes und der Daten, die mit KI-Werkzeugen geteilt werden.

Die Herausforderung: Wenn Legacy-Software Innovation ausbremst

Viele Unternehmen nutzen Anwendungen, die über längere Zeit entwickelt und häufig an spezifische Anforderungen angepasst wurden. Diese Systeme unterstützen weiterhin wesentliche Prozesse, können aber Einschränkungen aufweisen, die die Weiterentwicklung des Unternehmens erschweren:

  • Komplexe Integration: Fehlende Webschnittstellen oder APIs erschweren die Anbindung der Anwendungen an Cloud-Dienste, CRM-Systeme, E-Commerce-Plattformen und neue digitale Lösungen
  • Schwer wartbare Technologien: Nicht mehr unterstützte Komponenten und schwer zugängliche Datenstrukturen können die Betriebskosten erhöhen und Innovation behindern
  • Abhängigkeit vom Wissen Einzelner: Nicht dokumentierte Anpassungen und Änderungen konzentrieren das Systemwissen auf wenige Personen und erschweren Wartung und Wissensübergaben

Wenn sich diese Einschränkungen summieren, dauert die Einführung neuer Funktionen länger, jede Änderung wird heikler und die Wartung der Anwendungen bindet Ressourcen, die für neue Projekte eingesetzt werden könnten.

Entscheidend ist daher nicht das Alter der Software an sich, sondern ihre Fähigkeit, die aktuellen Anforderungen des Unternehmens zu erfüllen. Modernisierung bedeutet, zu erkennen, was erhalten bleiben soll und was weiterentwickelt werden muss, und dabei auf bestehenden Investitionen aufzubauen.

Wie KI die Modernisierung unterstützen kann

KI kann Entwicklungsteams bei verschiedenen Aufgaben der Modernisierung von Legacy-Software unterstützen. Die generierten Vorschläge müssen von den Entwicklerinnen und Entwicklern geprüft und validiert werden. Zu den wichtigsten Einsatzbereichen gehören:

  • Erstellung von Dokumentation: KI kann Legacy-Code und vorhandene Kommentare analysieren und dabei helfen, Funktionsbeschreibungen und technische Dokumentation zu erstellen, die anschliessend geprüft und ergänzt werden müssen
  • Codebereinigung und Refactoring: KI kann helfen, Duplikate und potenziell überflüssige Codeabschnitte zu erkennen, und Änderungen zur Verbesserung der Lesbarkeit und Wartbarkeit vorschlagen
  • Unterstützung bei der Neuentwicklung in modernen Sprachen: KI kann Übersetzungen einzelner Codeabschnitte vorschlagen, beispielsweise von COBOL oder Delphi nach Java, C# oder Python. Diese Vorschläge müssen anhand der Anwendungslogik und des Verhaltens des ursprünglichen Systems überprüft werden
  • Prüfung des ursprünglichen und des neu geschriebenen Codes: KI kann den Vergleich beider Versionen unterstützen und auf mögliche Abweichungen sowie Lücken bei der Protokollierung oder Ausnahmebehandlung hinweisen
  • Unterstützung bei Datenmigration und Synchronisierung: KI kann helfen, Verfahren und Skripte für die Zuordnung, Validierung und den Abgleich von Daten zwischen alten und neuen Systemen zu definieren
  • Vorbereitung von Tests: KI kann auf Grundlage des Codes und des erwarteten Verhaltens Vorschläge für Unit-, Funktions- und Regressionstests erstellen, die gemeinsam mit dem Entwicklungsteam geprüft und vervollständigt werden müssen
  • Unterstützung bei der Sicherheitsanalyse: KI kann auf potenzielle Probleme im Code hinweisen, etwa Injection-Risiken und unsichere Programmierpraktiken. Diese Unterstützung ersetzt weder Werkzeuge zur Sicherheitsanalyse noch Tests oder die Prüfung durch Fachpersonen.

Generative KI in der Praxis: GitHub Copilot und Claude Code

Innerhalb von Var Group werden verschiedene Technologien erprobt, um Kunden bei der Anwendungsmodernisierung zu unterstützen. Zu den evaluierten Werkzeugen gehören GitHub Copilot und Claude Code von Anthropic.

Diese Werkzeuge können Entwicklerinnen und Entwickler bei folgenden Aufgaben unterstützen:

  • Vorabanalyse: Mehrere Codedateien untersuchen, um Erklärungen zu Funktionen zu erhalten und den Anwendungskontext besser zu verstehen
  • Refactoring: Änderungen zur Verbesserung der Verständlichkeit des Codes vorschlagen, etwa durch das Extrahieren von Methoden oder aussagekräftigere Bezeichnungen
  • Übersetzung zwischen Programmiersprachen: Einen ersten Konvertierungsvorschlag erstellen, beispielsweise von Visual Basic nach C#, der anhand der Logik und des Verhaltens des ursprünglichen Codes überprüft werden muss
  • Testunterstützung: Eine erste Struktur für Unit-Tests vorbereiten, die anschliessend vervollständigt und validiert wird
  • Sicherheit und bewährte Praktiken: Prüfungen von Ein- und Ausgaben sowie mögliche Verbesserungen der Programmierpraktiken vorschlagen

Die generierten Vorschläge müssen im jeweiligen Projektkontext bewertet und vor ihrer Übernahme geprüft und getestet werden.

Warum sich Investitionen in die Anwendungsmodernisierung lohnen

Ein gut konzipiertes Modernisierungsvorhaben kann Unternehmen dabei helfen:

  • Technische Schulden zu reduzieren, die Wartung zu vereinfachen und die im Laufe der Zeit entstandene Komplexität zu begrenzen
  • Agilität und Integration zu verbessern, durch APIs, Schnittstellen und modulare Komponenten, die die Weiterentwicklung der Anwendungen erleichtern
  • Die Sicherheit zu stärken, indem Schwachstellen behoben und nicht mehr unterstützte Komponenten ersetzt werden
  • Die Abhängigkeit von einzelnen Personen zu verringern, dank aktueller Dokumentation, verständlicherem Code und Tests zur Absicherung von Änderungen
  • Entwicklungsteams zu unterstützen, mit Werkzeugen und Praktiken, die Zusammenarbeit und Kompetenzentwicklung erleichtern

Unser Modernisierungsansatz

Software zu modernisieren bedeutet, die Voraussetzungen dafür zu schaffen, dass sich Anwendungen entsprechend den geschäftlichen Anforderungen weiterentwickeln können. KI kann diesen Prozess unterstützen, ihr Einsatz erfordert jedoch ein strukturiertes Vorgehen, Fachwissen und menschliche Kontrolle.

Var Group hat eine Modernisierungsmethodik entwickelt, die schrittweise vorgeht und Folgendes umfasst:

  • Data Discovery: Bestandsaufnahme der Daten
  • Anwendungsassessment: Bewertung der bestehenden Anwendungen
  • Definition des Kontexts und der Regeln für die Modernisierung, einschliesslich:
    • Syntax und unternehmensinterner Entwicklungspraktiken;
    • Auswahl geeigneter KI-Modelle;
    • Definition der Prozesse für kontinuierliche Integration und Bereitstellung (CI/CD);
    • Definition der Sicherheitsstandards
  • User Story Mapping und Planung: Strukturierung der Anforderungen und Arbeitspläne
  • Neuschreiben der Anwendungen
  • Tests und Produktivsetzung des Projekts

Das Wichtigste auf einen Blick

  • Zu viele Legacy-Systeme in Italien bremsen Wachstum, Integration und Skalierbarkeit.
  • Dokumentation und internes Fachwissen fehlen, und das Ausfallrisiko ist hoch.
  • Generative KI hilft dabei, Code zu dokumentieren, zu bereinigen, neu zu schreiben, zu testen und abzusichern.
  • Es gibt kein perfektes LLM: Die Wahl hängt von den Legacy-Technologien, dem Kontext und den im Unternehmen vorhandenen Kompetenzen ab. Deshalb ist fachliche Begleitung bei diesem Prozess entscheidend, der einfach erscheinen mag, es aber nicht ist
  • Der Markt ist gross und wächst stark: Ihn zu ignorieren, hat seinen Preis.
  • Modernisierung fördert Sicherheit, Agilität, Kosteneffizienz, Mitarbeiterbindung und Wettbewerbsvorteile.