Softwaresanierung: Legacy-Software fit für die Zukunft

Softwaresanierung ist eine kostengünstige Alternative zur Neuentwicklung. Wir unterstützen Sie und machen Ihre Legacy-Software wieder fit für die Zukunft.

Das zentrale Anliegen einer Sanierung ist es, eine in die Jahre gekommene Software wieder änder- und erweiterbar zu machen. Diese beiden Eigenschaften fassen wir unter dem Begriff Featurefähigkeit zusammen.

Kosten-Nutzen-Vergleich zwischen Sanierung und Neuentwicklung

Legacy-Anwendungen zeichnen sich dadurch aus, dass neue Features gar nicht oder nur mit großem Risiko und hohen Kosten umgesetzt werden können. Unternehmen tendieren in diesen Situationen dazu, die Software komplett neu zu entwickeln.

Eine Neuentwicklung löst per se nicht alle vorhandenen Probleme und schafft zudem neue, heute noch nicht vorhersehbare Probleme. Während die bestehende Altsoftware fachlich funktionierende Funktionalitäten bereitstellt, erfordert eine Neuentwicklung hohe Aufwände und Kosten. Zudem bindet sie Mitarbeiter über einen langen Zeitraum, die dann an anderer Stelle in Ihrem Unternehmen fehlen. Dieses Phänomen lässt sich vor allem in den Fachabteilungen beobachten, die parallel zum Tagesgeschäft nun auch das Projekt 2.0 betreuen. In den seltensten Fällen funktioniert diese Trennung reibungslos. Ein Kosten-Nutzen-Vergleich zwischen einer Sanierung und einer Neuentwicklung sollte in jedem Fall erstellt werden.

Unserer Erfahrung nach wird eine Neuentwicklung fast immer als ultimative Lösung aller Probleme gesehen. Bei unserer Analyse stellt sich dann jedoch oftmals heraus, dass eine Sanierung sinnvoller ist. Dies liegt u.a. an folgenden Gründen:

  • Die Unternehmen nehmen fälschlicherweise an, dass eine Sanierung nicht möglich ist.
  • Den Unternehmen fehlt das Know-how für die Planung und Durchführung einer Sanierung.
  • Die Probleme stecken gar nicht in der Software, sondern in den Arbeitsabläufen und Prozessen.

In allen diesen Fällen wurden die Pläne für eine Neuentwicklung zugunsten einer Sanierung verworfen. Die Kosteneinsparungen sind immens.

Softwaresanierung: Ihre Software fit für die Zukunft

Eine Sanierung findet immer vor dem Hintergrund eines oder mehrerer konkreter Features statt. Entweder muss bestehende Funktionalität geändert, oder es muss ein komplett neues Feature entwickelt werden.

Zu Beginn einer Softwaresanierung steht die Analyse des bestehenden Altsystems. Auf Basis unseres Vorgehensmodells LegacyLab erstellen wir in der Analysephase ein Sanierungs-Backlog, das die erforderlichen Maßnahmen zur Umsetzung der Features beinhaltet. Die Sanierung läuft dann in drei Phasen ab:

  1. Grundsanierung,
  2. Feature-bezogene Sanierung und
  3. Feature-Entwicklung.

Grundsanierung der Legacy-Anwendung durch Automatisierung

Im ersten Schritt der Sanierung werden notwendige Grundlagen für die Änderbarkeit der Legacy-Software geschaffen. Dies umfasst in der Regel mindestens die folgenden Maßnahmen:

  • Einführung eines Versionskontrollsystems,
  • Automatisierung des Deployments und
  • Test-Automatisierung anhand von Smoke- oder Happy Path-Tests.

Die Grundsanierung bildet die Grundlage für die Feature-bezogene Sanierung.

Feature-bezogene Sanierung zur Absicherung der Legacy-Anwendung

Während die Grundsanierung unabhängig von den umzusetzenden Features ist, fokussiert sich die Feature-bezogene Sanierung explizit auf die umzusetzenden Features. Die erforderlichen Schritte hängen maßgeblich von der Altsoftware und den gewünschten Features ab wie z.B.

  • Erweiterung der Legacy-Anwendung um eine API, um Zugriff auf die vom neuen Feature benötigten Daten zu bekommen.
  • Erstellen von Datenbank-Triggern, um Feature-bezogene Datenbanken mit den vom neuen Feature benötigten Daten zu füllen.
  • Einführung von Schichten zur Trennung der Datenbank- und Businesslogik.

Ähnlich dem Refactoring geht es in dieser Phase darum, das Design des existierenden Systems zu verbessern und Ansatzpunkte für Erweiterungen zu schaffen. Während Refactoring aus kleinen und überschaubaren Code-Anpassungen besteht, ist das Aufräumen einer Sanierung eher mit einem Bagger-Ansatz vergleichbar. Es werden größere Baustellen aufgerissen, die darüber hinaus über längere Zeit bestehen.

Während in der Grundsanierung die Grundlagen für die Testbarkeit der Legacy-Anwendung gelegt wurden, wird die Testautomatisierung in der Feature-bezogenen Sanierung ausgebaut. In der Analysephase wurde ermittelt, welche bestehende Code-Teile der Legacy-Anwendung durch die Sanierung beeinflusst werden. Diese Funktionalität wird durch automatisierte Tests abgesichert, so dass sicher gestellt ist, dass die Legacy-Anwendung regressionsfrei bleibt.

Am Ende der Feature-bezogenen Sanierung ist die Legacy-Software wieder Featurefähig.

Feature-Entwicklung mit minimal invasiven Eingriffen in die Altsoftware

Nachdem die Legacy-Anwendung Featurefähig ist, erfolgt die Umsetzung der eigentlichen Features. In der Regel wird dabei versucht, die bestehende Altanwendung so wenig wie möglich zu ändern. Stattdessen werden Schnittstellen geschaffen, die den Austausch von Daten oder das Aufrufen von Funktionen ermöglicht. Darüber hinaus kann auch die Datenbank eine gute Basis für den risikoarmen Austausch von Daten sein.

In Abhängigkeit der umzusetzenden Features können die zweite und dritte Phase inkrementell ausgeführt werden, d.h. nach der Grundsanierung wechseln sich Phasen der Feature-bezogenen Sanierung und der Feature-Entwicklung ab. Auf diese Art und Weise wird Ihre bestehende Altanwendung schrittweise saniert und erweitert.

Sanierung oder Neuentwicklung? Wir unterstützen Sie gern!

Um entscheiden zu können, ob eine Neuentwicklung oder eine Sanierung der richtige Weg für eine Legacy-Software ist, müssen die Vor- und Nachteile beider Wege gegenübergestellt werden. Eine Analyse der Altsoftware ist dafür eine notwendige Voraussetzung.

Basierend auf unserem LegacyLab unterstützen wir Sie bei der strukturierten Analyse Ihres Altsystems. Das Ergebnis der Softwareanalyse ist ein Sanierungs-Backlog, welches die erforderlichen Schritte einer Sanierung beinhaltet. Das Sanierungs-Backlog ermöglicht einen Kosten-Nutzen-Vergleich zwischen einer Neuentwicklung und einer Sanierung und stellt eine gute Entscheidungsgrundlage dar.

Kontaktieren Sie uns gern, wenn Sie Fragen zum Thema haben oder wenn wir Sie konkret bei der Analyse oder Sanierung Ihrer Software unterstützen können. Wir freuen uns auf Ihre Nachricht.