Kernsanierung von Software | fecher

Kernsanierung von Software

von Günter Hofmann

Eine große Geschäftsanwendung mit Legacy-Technologie ist wie ein denkmalgeschütztes Haus. Man schätzt die Zuverlässigkeit, die gewohnte und behagliche Atmosphäre, ist aber dennoch unzufrieden, mit der Aufteilung mancher Räume und hier und dort fällt Putz von den Wänden. "Smart" ist es auch nicht mehr – ein wenig Technik und Automatisierung wäre jedoch wünschenswert.

Schnell wird klar, dass geringfügige Änderungen einzelner Räume nicht zur gewünschten Verwandlung führen. Eine vollständige Entkernung und eine umfassende Überarbeitung mit Neuaufbau wäre der richtige Weg zum Ziel. Die Kernsanierung ist ein bewährtes Verfahren, um Alt und Neu zu verbinden und damit den Wert des Objektes in seiner bekannten Zuverlässigkeit zu erhalten.

Nach Abschluss der Modernisierung sind alle Versorgungsleitungen neu verlegt und erweitert, die Wände dem aktuellen Raumbedarf angepasst und die Oberflächen mit modernsten Materialen neu gestaltet worden.

Kann denn auch Software kernsaniert werden?


Allzu häufig wird die Frage sofort verneint. Nur eine Neuentwicklung scheint eine moderne Anwendung, die auf den heutigen Browsern und mobilen Devices verwendbar ist, möglich zu machen. Bei fecher sehen wir das anders.

Unsere Teams arbeiten tagtäglich an „Kernsanierungsprojekten“ in der Softwarebranche, für Kunden aus aller Welt. Sie konservieren die Zuverlässigkeit und bewährte, oft sehr detaillierte Funktionalität der geschäftskritischen Anwendungen und machen sie fit für die Zukunft. Sie modernisieren die Programmiersprache, tauschen also Gupta oder Visual Basic 6 aus durch C# oder VB.NET. Sie modernisieren die Bedienung mittels aktueller Konzepte zur Navigation, aber auch hinsichtlich der Verwendbarkeit mit jedem beliebigen Browser. Sie schaffen Vertrauen auf Basis der bewährten und von den Endanwendern geschätzten Zuverlässigkeit und Funktionstiefe.

Wieso überhaupt handeln, wenn die Software beim Kunden funktioniert?


Die folgende Abbildung zeigt eine Verwaltungsmaske mit einem für die 90er typischen Anwendungsdesign. Sicherlich erfüllt sie auch heute noch die Anforderungen an die Funktionalität und Bedienbarkeit.


Hätte der Anwender aber die Wahl, er würde doch lieber mit der folgenden Anwendung arbeiten wollen:

Visualisieren Sie kurz Ihren nächsten Neukunden-Termin: Welche der beiden Anwendungen würden Sie lieber präsentieren?

Unbestreitbar und einfach: In die Entwicklung der Software muss investiert werden, um mit dem Wettbewerb Schritt halten zu können. Als Mindestanforderung muss die bekannte Funktionalität in einem schicken neuen Outfit, also einer neu gestalteten Benutzeroberfläche, implementiert werden.

Standardlösung Neuentwicklung - ein Problem jagt das nächste…


Soll die Anwendung künftig nicht nur wie gewohnt funktionieren und schick aussehen, sondern auch webfähig sein, dann werden 99 von 100 Entwicklern nur einen Weg vorschlagen: Die vollständige Neuentwicklung der Software. Die erste Aufwandsschätzung für 1,5 Millionen Lines of Code, 30 einzelne Module, 350 Report Templates und 1500 Masken beläuft sich auf 50 Personenjahre. Das ist auch für ein großes Team eine sehr herausfordernde Aufgabe. Die Time-To-Market wird nicht unter 4-5 Jahren liegen.

Nun möchten Sie also wettbewerbsfähig bleiben und ziehen dafür den scheinbar einzig möglichen Weg der Neuentwicklung für Ihre Software in Betracht. Dabei stellen Sie fest:

Die Kosten sind zu hoch.
Das Risiko ist nicht kalkulierbar.
Das Ergebnis ist nicht vorhersehbar.
Das Projekt dauert bis zur Marktreife zu lange.
Der Wettbewerber wird die Chance nutzen und Ihnen Kunde für Kunde abwerben.

…doch mit dem Übel abfinden war gestern: Es gibt eine Lösung!


Mit der toolbasierten Migration, einem leistungsfähigen Web-Framework und einem User Interface Redesign ist das Projekt in Jahresfrist abgeschlossen - zu einem Bruchteil der Kosten.

Das oben gezeigte Beispiel ist ein Ausschnitt aus einer Software mit 1,5 Millionen Quellcode Zeilen und mehr als 1500 einzelnen Masken. Mit fechers Werkzeugen wurde der gesamte Quellcode von Visual Basic 6 nach C# übersetzt. Das User Interface ist auf der Basis von HTML5 implementiert; diese Transformation erfolgt automatisiert. Die Neuanordnung und -gruppierung der Controls wird toolbasiert vorbereitet und dann manuell fertig gestellt. Einige Elemente, wie die Navigation, wurden neu implementiert. Die Fenster aus der alten Anwendung haben die gleiche Funktion wie zuvor, nur in neuem Design und in neuer, zuvor konfigurierter Anordnung.

Die Vorteile einer solchen Anwendungsmodernisierung sind vielfältig und für alle Beteiligten besondere:

  • Der Endanwender erhält seine gewohnte Funktionalität in einer modernen Web-Anwendung, die er an seinem Arbeitsplatz, wie auch im Homeoffice oder unterwegs in gleicher Weise verwenden kann; inklusive der uneingeschränkten Bedienung über die Tastatur.
  • Der Administrator installiert die Anwendung auf einem Webserver und konfiguriert je nach Bedarf ein Load-Balancing. Er erhält zahlreiche Informationen über den Zustand und die Leistungsfähigkeit der Anwendung über ein eingebautes Monitoring.
  • Der Entwickler entwickelt in seiner gewohnten Welt, in seiner Programmiersprache C# oder VB.NET, mit einem Designer in Visual Studio. Er kann sich mit Javascript, CSS und HTML beschäftigen – muss es aber nicht. Das Framework kümmert sich darum.
  • Der User Interface Designer erhält ein komfortables Werkzeug, mit dem er sogar zur Laufzeit das Design, also implizit das CSS, gemäß den Vorgaben bearbeiten kann.
  • Die Geschäftsleitung erhält das "neue" Produkt zu einem Bruchteil der Kosten und vor allem in kürzester Zeit. Keiner der Wettbewerber schafft das annähernd mit einer Neuentwicklung. Der Sprung von Client-Server nach Web erschließt neue Kundenkreise. Der Apple-User nutzt die Software nun im Browser. Der Lizenzverkauf wandelt sich hin zu Software as a Service.

„Eigentlich will ich erst mal gar keine Weblösung.“ - Kein Problem!


Es gibt nach wie vor Bedenken hinsichtlich des Betriebes einer Webanwendung. Manche Kunden möchten lieber ein "Programm" auf Ihrem Desktop als Executable ausführen. Kein Problem: Die oben gezeigte Webanwendung konfigurieren Sie einfach als Standalone-Anwendung. Damit wird der Browser und Webserver integriert und die Ausführung ist, identisch zu einer Client-Server-Umgebung, auf jedem Windows PC möglich.

Unsere Empfehlung: Prüfen Sie den Weg der Sanierung, bevor Sie neu bauen


Prüfen Sie bei Neuentwicklungsprojekten, die eine Legacy-Software ablösen sollen, den Weg der Migration. Neben der häufig umgesetzten 1:1 (oder as-is) Migration gibt es auch Mischformen, mit denen nicht nur die Programmiersprache ausgetauscht, sondern gleichzeitig ein Refactoring des User Interfaces, der Architektur oder auch neue Funktionalität, wie Resizing, Mehrsprachigkeit, Responsiveness, Mobile Support implementiert wird.

Die Kosten und die Dauer solcher Projekte können bereits zu Beginn sehr genau geschätzt werden. Festpreis und Werkvertrag sorgen schließlich für die Sicherheit, die Ihnen bei dem Weg der Neuentwicklung fehlt.

Mehr zum Thema: Wie funktioniert das Web Enabling von fecher? Video ansehen >>