zum Inhalt

Software-Modernisierung
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 Seiteneffekten 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 Seiteneffekte. 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!
Martin Dieblich, Senior Developer lise GmbH

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.

"It is unit tests that keep our code flexible, maintainable, and reusable. The reason is simple. If you have tests, you do not fear making changes to the code! Without tests every change is a possible bug.” Robert C. Martin, Clean Code: A Handbook of Agile Software Craftsmanship

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

Aktuelle Projekte

Starten Sie jetzt Ihr
Entwicklungs-Projekt!

Wir bringen Sie ans Ziel.

Newsletter-Anmeldung

Newsletter-Anmeldung
* Dieses Formular speichert Ihre E-Mail-Adresse. Weitere Informationen in unseren Datenschutzbestimmungen.