Softwaresanierung
Wissen kompakt: Softwaresanierung bezeichnet den Vorgang zur qualitativen Instandsetzung von Software mithilfe von Refactoring, Fehlerbehebung und Modernisierung.
Softwaresanierung – die qualitative Instandsetzung einer Software
Sie arbeiten an einer Software, die seit Jahren zuverlässig ihren Dienst verrichtet. Doch plötzlich treten Leistungsprobleme auf, Sicherheitslücken werden entdeckt und die Wartung wird immer zeitaufwändiger. Willkommen in der Welt der Softwaresanierung – einer wichtigen Tätigkeit, um bestehende Anwendungen auch in Zukunft nutzen zu können.
Softwaresanierung bezeichnet den Vorgang zur Instandsetzung von Software mit dem Ziel der Verbesserung von Qualität, Leistung, Wartbarkeit und Sicherheit. Refactoring, Fehlerbehebung und Modernisierung sind Mittel der Wahl.
Gründe für eine Softwaresanierung
Es gibt eine Reihe von Gründen oder Szenarien, in denen eine Softwaresanierung notwendig wird. Hier finden Sie einige Beispiele:
- Wenn die Software auf veralteten Technologien oder Frameworks basiert, die nicht mehr unterstützt oder weiterentwickelt werden, kann eine Sanierung notwendig sein. Dies betrifft oft Programmiersprachen, Datenbanken oder Bibliotheken, die durch modernere Alternativen ersetzt werden müssen.
- Wenn die Software unter Leistungsproblemen wie langsamer Ausführung, hoher Ressourcenauslastung oder Skalierungsproblemen leidet, kann eine Sanierung helfen, die Effizienz und Geschwindigkeit zu verbessern. Dies kann durch Optimierung des Codes, Datenbank-Tuning oder Implementierung von Caching-Mechanismen erfolgen.
- Wenn der Code der Software schlecht strukturiert, unübersichtlich oder schlecht dokumentiert ist, kann die Wartung und Weiterentwicklung sehr aufwendig und fehleranfällig sein. Eine Softwaresanierung, die Code Refactoring und Clean Code Prinzipien umfasst oder auch die Verbesserung der Dokumentation adressiert, kann die Wartbarkeit erhöhen.
- Wenn die Software Sicherheitslücken aufweist, die potenziell ausgenutzt werden können, ist eine Sanierung notwendig, um diese Lücken zu schließen und die Sicherheit zu erhöhen. Dies kann die Implementierung von Sicherheitsupdates, die Einführung von Verschlüsselungstechniken und die Verbesserung der Benutzer-Authentifizierung umfassen.
- Wenn sich die Geschäftsanforderungen ändern und die bestehende Software nicht mehr in der Lage ist, diese Anforderungen zu erfüllen, kann eine Sanierung notwendig sein. Dies kann die Einführung neuer Funktionen, die Anpassung der Software an neue Geschäftsprozesse oder die Integration mit anderen Systemen umfassen.
Durch die Softwaresanierung in diesen Szenarien kann die Software wieder auf den neuesten Stand gebracht werden, was ihre Lebensdauer verlängert und ihre Leistungsfähigkeit erhöht.
Unterschiede zwischen Softwaresanierung, Softwaremodernisierung und Refactoring
Der Begriff Softwaresanierung ist nicht sehr verbreitet. Einerseits könnte es daran liegen, dass er noch relativ neu ist und möglicherweise mehr Zeit benötigt, um sich zu etablieren. Anderseits könnte es auch sein, dass der Begriff mit einer negativen Konnotation einhergeht – die Behebung von Problemen oder die Beseitigung von Schwächen – während andere Begriffe wie bspw. Softwaremodernierung deutlich positiver klingen.
Insbesondere die Begriffe Softwaresanierung und Softwaremodernisierung werden zudem synonym verwendet, was an sich nicht verwunderlich ist, da beide auf die Verbesserung und Aktualisierung von Software abzielen, dabei aber unterschiedliche Schwerpunkte setzen:
Die Sanierung konzentriert sich vor allem auf die Behebung bestehender Probleme und die Verbesserung der Softwarequalität mit dem Ziel, die Stabilität, Zuverlässigkeit und Wartbarkeit der Software zu erhöhen. Mittel dazu sind z.B. Refactoring, um den Code sauberer und wartbarer zu machen, oder Bugfixing, um Fehler zu beseitigen. Auch die Verbesserung der Testabdeckung, das Schließen von Sicherheitslücken oder die Verbesserung der Dokumentation sind typische Aktivitäten im Rahmen der Softwaresanierung.
Modernisierung zielt darauf ab, die Software auf den neuesten Stand der Technik zu bringen und ihre Fähigkeiten zu erweitern. Typische Maßnahmen sind die Aktualisierung oder Ablösung veralteter Technologien und Plattformen, die Einführung neuer Funktionalitäten, die Migration zu modernen Architekturen – z.B. von monolithischen zu Microservice-basierten Architekturen – oder die Integration mit neuen Systemen und Technologien.
Aus dieser Argumentation ergibt sich, dass die Modernisierung ebenso wie das Refactoring, das sich speziell auf die Verbesserung der internen Struktur des Codes konzentriert, ohne das externe Verhalten der Software zu verändern, Teil der Sanierung ist.¹
Ist Softwaresanierung ein Prozess oder situative Tätigkeit?
Ähnlich wie Sie ein Badezimmer nicht kontinuierlich renovieren, sanieren Sie auch eine Software nicht kontinuierlich. Vermutlich pflegen Sie die Software, als Hersellter entwickeln Sie üblicherweise Updates, als Anwender nutzen Sie diese idealerweise. Kommt es nun zu einem Szenario der Sanierung, handelt es sich also um eine situative Tätigkeit.
Die Tätigkeit setzt sich aber aus einer ganzen Reihe von Aktivitäten wie bspw. das genannte Refactoring, das Bugfixing oder die Softwaremodernisierung. Diese Aktivitäten wiederum bestehen aus vielen Schritten, unterschiedlichen Vorgehensweisen und verschiedensten Werkzeugen und Hilfsmitteln. Aus diesem Blickwinkel betrachtet ist die Softwaresanierung auch ein Prozess. Da Software fast zwangsläufig veraltet – neben den oben genannten Gründen und Szeanarien ändern sich im Laufe der Zeit auch die Erwartungen der Nutzer – dürfte es früher oder später eine Notwendigkeit zur Sanierung geben, selbst wenn die kontinuierliche Pflege der Software diese Notwendigkeit aufschiebt.
Impuls zum Diskutieren
Wie finden Sie die Balance zwischen der Notwendigkeit der Modernisierung alter Software und der Minimierung von Risiken und Kosten?
Hinweise:
Wenn Ihnen der Beitrag gefällt, teilen Sie ihn gerne in Ihrem Netzwerk. Und falls Sie sich für Tipps aus der Praxis interessieren, dann testen Sie unseren beliebten Newsletter mit neuen Beiträgen, Downloads, Empfehlungen und aktuellem Wissen. Vielleicht wird er auch Ihr Lieblings-Newsletter.
[1] Je nach Blickwinkel könnte man allerdings auch sagen, dass die Sanierung ein erster Schritt zur Modernisierung ist. Und auch diese Argumentation wäre in sich schlüssig; wichtig ist es daher innerhalb einer Organisation, dass ein gemeinsames Verständnis der Begriffe besteht, sofern sie überhaupt benutzt werden.
Hier finden Sie SoftwerkerCast – ein IT-Podcast von Techies für Techies
Und hier finden Sie ergänzende Informationen aus unserer Rubrik Wissen kompakt: