Softwaremodernisierung
Working effectively with Legacy Code

Wir stellen bei unseren Kundenprojekten oftmals fest: Wenn Software über viele Jahre angepasst wird, verschlechtert sich ohne kontinuierliche Verbesserungen die Qualität der Software.

Natürlich gibt es bei Software keine Verschleißteile in dem Sinne, die ausgetauscht werden müssen. Dennoch leidet die interne Struktur durch sich stetig ändernde Rahmenbedingungen, komplexe Anforderungen, Zeit- und Kostendruck oder personelle Veränderungen. Dies äußert sich dadurch, dass scheinbar harmlose Änderungen lange Entwicklungszeiten nach sich ziehen und zu unerwünschten Nebenwirkungen in Form von Fehlern führen.

Oft genug wird dann die alte Software durch eine neue ersetzt. Warum auch nicht? Wer arbeitet nicht gerne mit den neuesten Technologien? Doch das Einführen einer neuen Software hat auch Nachteile und ist bisweilen riskant: Zum einen muss bis zur Veröffentlichung der neuen Software die Alte weiterhin gepflegt werden. Darüber hinaus verzögert sich die Entwicklung der neuen Software oft oder kommt aus unterschiedlichen Gründen ganz zum Erliegen.

Falls die neue Software es nie zu einem marktreifen Zustand schafft, bedeutet ein Abbruch den Totalverlust der bisherigen Investitionen.

Eine Alternative bietet die lise GmbH mit der Software-Modernisierung: Dabei verwenden Sie einen Teil der laufenden Wartungskosten, um die interne Struktur und Qualität der Software wiederherzustellen. Dies erhöht langfristig die Entwicklungsgeschwindigkeit und reduziert Fehler durch Nebenwirkungen. Entwicklungszeit wird so gespart oder in neue Funktionalitäten reinvestiert.

Durch die kontinuierliche Verbesserung der Software-Qualität durch die lise Software-Experten aus Köln bringen Ihnen die Investitionen in die Modernisierung einen direkten Nutzen, der Ihnen auch erhalten bleibt, wenn die Ausgaben für Software-Modernisierung heruntergefahren werden.

Lassen Sie sich von den Software-Experten der lise GmbH aus Köln beraten, inwieweit sich eine Software-Modernisierung für Ihr Projekt lohnt oder welche Alternativen sich anbieten!

Warum auf die Verbesserung warten, bis wir ein neues Produkt releasen? Wir können die Software doch sofort besser machen!

— Thomas Pfeiffer, Senior Softwareentwickler

Test-Harnisch um die
bestehende Software bauen

Ein fundamentaler Teil der modernen Software-Entwicklung ist eine Abdeckung mit automatischen Tests. Bei veralteter Software (sog. Legacy-Systeme) ist die Abdeckung mit automatischen Tests in der Regel sehr gering oder nicht vorhanden. Um bestehende Funktionalitäten zu bewahren, bauen die Software-Spezialisten der lise GmbH einen „Test-Harnisch“ bestehend aus automatischen Tests um Ihre alten Quelltexte.

Der Test-Harnisch erfüllt dabei nicht nur die Aufgabe des Funktionserhalts, er dient auch dem Erkunden der Software. Stück für Stück arbeiten wir so nachträglich Anforderungen heraus und sichern diese durch Tests ab und dokumentieren dies.

Unsere Software-Entwickler erkunden die interne Struktur Ihrer bestehenden Software, entdecken versteckte Bugs und Qualitätsmängel, die sie gezielt identifizieren und beheben.

Software-Archäologie
Schritt für Schritt „den Staub abtragen“

Die interne Architektur eines Software-Projektes ist nicht immer klar oder weicht möglicherweise vom SOLL-Zustand ab. Ist sie sogar unbekannt, spricht man von Software-Archäologie.

Damit Ihre Software nicht zum IT-Dinosaurier wird, modernisieren wir im Rahmen Ihrer Software-Sanierung schrittweise Ihre Architektur. Wir erfassen die bestehende Struktur der Software und untersuchen sie auf Schwächen hin. Die lise Software-Experten nutzen dabei zur individuellen Bewertung der einzelnen Module Ihrer Software einen Qualitätsindex. 

Zudem verwenden wir inkrementelle Transformationen, um Architekturverletzungen zu entfernen. Dabei setzen wir auch parallele Strukturen (branch by abstraction) ein, um schwer wartbare Teile sukzessive abzulösen.

Ein Nebenprodukt der Architektur-Analyse ist die Verdeutlichung von Geschäftsprozessen, die sich in der Software widerspiegeln. Diese können mit den bestehenden Geschäftsprozessen abgeglichen und bei Bedarf verbessert werden.

“Selbst bei einem fähigen Entwicklungsteam steigt die Architekturerosion unbemerkt. Wie kann es dazu kommen? Nun, häufig ist das ein schleichender Vorgang […]. Hat man den Tiefpunkt der Architekturerosion erreicht, so wird jede Veränderung zur Qual.”  Carola Lilienthal, Langlebige Software-Architekturen

Technische Schulden reduzieren,
Entwicklungsgeschwindigkeit erhöhen

Die fehlende interne Qualität von Software wird als technische Schuld bezeichnet. Technische Schulden entstehen während der Entwicklung, wenn Anpassungen vorgenommen werden. Werden sie nicht sukzessive reduziert, summieren sie sich zu einem Schuldenberg. Einarbeitungszeiten verlängern sich, Entwicklungskosten sowie die Fehleranfälligkeit steigen und die Nachvollziehbarkeit von Design-Entscheidungen schwindet. Die Zufriedenheit von Anwendern und Entwicklern sinkt.

Dabei treten die Schwierigkeiten auf allen Ebenen auf: im Entwicklungsprozess, in der Infrastruktur, in der Architektur oder auf Quellcode-Ebene.

Haben sich in Ihrem Software-Projekt viele technische Schulden angehäuft, erfassen die lise Software-Experten diese, gewichten und priorisieren sie. Anschließend schlagen wir Ihnen die Verbesserungen mit dem besten Kosten-/Nutzen-Verhältnis vor, um schnell erste Ergebnisse in der Steigerung der Entwicklungsgeschwindigkeit zu erreichen.

“Remember, code is your house, and you have to live in it.”  Michael Feathers, Working Effectively with Legacy Code

Häufig gestellte
Fragen

Eine Softwaremodernisierung kann valide Vorteile gegenüber einer Neuentwicklung haben:

Kostenersparnis: Eine Modernisierung kann in der Regel kostengünstiger sein als eine komplette Neuentwicklung, da bereits vorhandene Softwarekomponenten und Datenbanken wiederverwendet werden können.

Erhaltung von Know-how: Bei einer Modernisierung bleibt kann das bestehende Know-how und die Erfahrung mit der Software im Unternehmen weiterhin genutzt werden.

Kürzere Time-to-Market: Eine Modernisierung kann in der Regel schneller abgeschlossen werden als eine vollständige Neuentwicklung.

Anpassung an aktuelle Technologien: Durch eine Modernisierung kann die Software auf aktuelle Technologien und Standards angepasst werden, und so zu einer nachhaltigeren Entwicklung beitragen..

Bessere Integration: Eine Modernisierung kann die Integration der Software in bestehende Systeme und Prozesse erleichtern, was die Effizienz und die Produktivität im Unternehmen steigert.

In vielen Fällen kann eine Kombination aus Modernisierung und Neuentwicklung die beste Lösung sein, um die Vorteile beider Ansätze zu nutzen.

Eine Neuentwicklung kann für Ihre Zwecke besser geeignet sein, wenn:

  • Sie große, konzeptionelle Änderungen vornehmen möchten
  • Die zuvor genutzte Technologie den neuen Anforderungen nicht mehr gerecht werden kann
  • Der bisherige Code zu komplex oder fehleranfällig geworden ist
  • sich Ihre strategischen Ziele mit der Software geändert haben

Gerne können wir gemeinsam analysieren und entscheiden, welche Art der Entwicklung für Ihre Ziele am besten geeignet ist.

Diese Frage lässt sich zwar nicht pauschal beantworten, da jede Entwicklung einzigartig ist und daher die Kosten stark variieren. Festhalten können wir aber: Abhängig vom Aufwand der Entwicklung gestalten sich auch die Kosten.

Faktoren sind zum Beispiel

  • Sauberkeit und Komplexität des bisherigen Codes
  • Anzahl der Schnittstellen und
  • ob auf eine neue Technologie gewechselt werden soll.

Da wir mit Scrum arbeiten, haben Sie den entscheidenden Vorteil bei der Kostenkontrolle: Im festen Zyklus von 2 Wochen können Sie die Kosten in kurzen Abständen überprüfen, steuern und Ihr Budget mehrwertstiftend einsetzen.

Persönliche Beratung

Sebastian Kind, Sales Consultant

Haben wir Ihre Fragen zu moderner Softwareentwicklung beantworten können? 

Wenn Sie noch mehr wissen möchten, melden Sie sich ganz unverbindlich bei mir. Ich bin gern für Sie da und freuen freue mich über Ihre Nachricht!

Rückruf vereinbaren 

Nachricht schreiben