Legacy-Systeme: Von nützlicher Software zum nutzlosen Artefakt

Wenn eine Software neue Anforderungen erfüllen soll, scheuen viele Firmen aus Angst vor Bugs tiefgreifende Code-Änderungen. Was dabei herauskommt, ist aber schlimmer als Bugs: erstarrte, nutzlose Legacy-Systeme.

Artikel von Rajiv Prabhakar veröffentlicht am
Manche Architektur altert nicht so gut - und das gilt auch für manche Software-Architektur.
Manche Architektur altert nicht so gut - und das gilt auch für manche Software-Architektur. (Bild: Wikimedia Commons/CC-BY-SA 4.0)

Dieser Artikel ist eine Übersetzung. Das Original des Softwareentwicklers und Bloggers Rajiv Prabhakar ist hier zu finden.

Inhalt:
  1. Legacy-Systeme: Von nützlicher Software zum nutzlosen Artefakt
  2. Wie Legacy-Software überhaupt entsteht
  3. Wie verhindert man, dass nutzlose Legacy-Systeme entstehen?

Es gibt ein Muster, das ich sehr oft in Software-Teams sehe:

Es existiert die Notwendigkeit, das bestehende Systemverhalten zu ändern, um eine neue Funktionalität zu erreichen.

Der Softwareentwickler erkennt, dass das vorhandene Design für die erforderliche Änderung nicht gut geeignet ist. Er schlägt Designänderungen und eine Restrukturierung vor, als Teil der Implementierung der gewünschten Funktionalität.

Stellenmarkt
  1. Softwareentwickler (m/w/d) Frontend / Backend / Fullstack
    AUSY Technologies Germany AG, verschiedene Standorte
  2. Managing Director Produktentwicklung (m/w/d)
    über Dr. Maier & Partner GmbH Executive Search, Frankfurt am Main
Detailsuche

Die Kollegen überprüfen die Arbeit und machen sich Sorgen, dass die vorgeschlagenen Änderungen kritisch sein könnten. Da niemand im Team das System wirklich gut versteht, befürchten sie, dass jede Restrukturierung Fehler verursacht. Sie hatten das schon mal und sind entschlossen, es nicht noch einmal zu riskieren.

Sie versuchen also, signifikante Änderungen zu vermeiden. "Fügen Sie einfach hier, in der Methode Foo in der Klasse Bar, eine weitere if-Prüfung, einen Service-Aufruf und/oder eine Abhängigkeit zur Klasse Baz hinzu." Die Änderungen bestehen nur aus ein paar Zeilen Code - weit weniger riskant.

Die Klasse Bar und die Methode Foo waren aber nie dazu gedacht, Service-Aufrufe durchzuführen oder Ergebnisse aufgrund einer Abhängigkeit von Baz zu filtern. Es verstößt gegen den ursprünglichen Entwurf der Klasse. Aus einer einzigen Aufgabe der Klasse werden nun mehrere, denn aus "Bar gibt immer ABC zurück" wird "Bar gibt immer ABC zurück, es sei denn, DEF gibt in diesem Fall XYZ zurück". Die Trennung von Zuständigkeiten weicht einer Überschneidung der Zuständigkeiten.

Dennoch: Es sind nur ein paar zusätzliche Codezeilen, wie schlimm kann das schon sein? Außerdem ist das Risiko gering, schließlich fassen wir nur sehr wenig Code an. Es ist schwer, auf Basis abstrakter Designprinzipien dagegen zu argumentieren. Schließlich sind wir hier Pragmatiker, keine Architektur-Astronauten!

Hacking & Security: Das umfassende Handbuch. 2. aktualisierte Auflage des IT-Standardwerks (Deutsch) Gebundene Ausgabe

Und so beschließt das Team, den Weg des geringsten Widerstands zu gehen. Es aktualisiert pflichtbewusst die Unit-Tests. Außerdem testet es die relevanten Änderungen manuell, denn es weiß aus Erfahrung, dass Unit-Tests nur die halbe Miete sind. Der Code wird erfolgreich und ohne Probleme ausgerollt, alle atmen auf und beglückwünschen einander zu einer gelungenen Arbeit.

Irgendwann ist das System nur noch zum Bestaunen gut

Dieser Prozess wiederholt sich jedes Mal, wenn eine Änderung gemacht werden muss. Mit jeder Iteration wird das Design ein bisschen verwaschener, das System ein wenig schwieriger zu verstehen - und es verhält sich jedes Mal einen Tick unvorhersehbarer. All das macht das Team noch risikoscheuer und entschlossener, unnötige Änderungen zu vermeiden. Was den Verfall weiter beschleunigt.

Und jedes Mal, wenn jemand das Team verlässt und jemand Neues kommt, erhält diese Verfallsbeschleunigung noch einen Schub.

Ziemlich bald hat man ein vollwertiges Legacy-System, eine Legacy-Software, über die sich jeder gerne beschwert und in der niemand herumfuhrwerken möchte. Die Codebasis ist kein lebendiges System mehr, sondern ein Museumsartefakt. Sie wird mit Staunen und Bewunderung betrachtet, aber auf keinen Fall wird sie angefasst.

Bitte aktivieren Sie Javascript.
Oder nutzen Sie das Golem-pur-Angebot
und lesen Golem.de
  • ohne Werbung
  • mit ausgeschaltetem Javascript
  • mit RSS-Volltext-Feed
Wie Legacy-Software überhaupt entsteht 
  1. 1
  2. 2
  3. 3
  4.  


minnime 17. Feb 2021

Erstmal liegt ein ziemlich großer Fokus auf dem Testen, wobei ich nicht sagen würde, dass...

lordasgart 14. Feb 2021

Genau meine Rede momentan, und jetzt eine gute Referenz auf einen entsprechenden Golem...

CptData 12. Feb 2021

Es wird noch was nicht angefasst im Artikel: Software zur Steuerung von Maschinen. Der...

der_onkel 12. Feb 2021

Vielen Dank für die Videos!

Schmiddi2021 12. Feb 2021

Da sieht man mal, dass die meisten Leute überhaupt keine Ahnung von dieser Software...



Aktuell auf der Startseite von Golem.de
Waffensystem Spur
Menschen töten, so einfach wie Atmen

Soldaten müssen bald nicht mehr um ihr Leben fürchten. Wozu auch, wenn sie aus sicherer Entfernung Roboter in den Krieg schicken können.
Ein IMHO von Oliver Nickel

Waffensystem Spur: Menschen töten, so einfach wie Atmen
Artikel
  1. OpenBSD, TSMC, Deathloop: Halbleiterwerk für Automotive-Chips in Japan bestätigt
    OpenBSD, TSMC, Deathloop
    Halbleiterwerk für Automotive-Chips in Japan bestätigt

    Sonst noch was? Was am 15. Oktober 2021 neben den großen Meldungen sonst noch passiert ist, in aller Kürze.

  2. Whatsapp: Vater bekommt wegen eines Nacktfotos Ärger mit Polizei
    Whatsapp
    Vater bekommt wegen eines Nacktfotos Ärger mit Polizei

    Ein Vater nutzte ein 15 Jahre altes Nacktfoto seines Sohnes als Statusfoto bei Whatsapp. Nun läuft ein Kinderpornografie-Verfahren.

  3. Pornoplattform: Journalisten wollen Xhamster-Eigentümer gefunden haben
    Pornoplattform
    Journalisten wollen Xhamster-Eigentümer gefunden haben

    Xhamster ist und bleibt Heimat für zahlreiche rechtswidrige Inhalte. Doch ohne zu wissen, wer profitiert, wusste man bisher auch nicht, wer verantwortlich ist.

Du willst dich mit Golem.de beruflich verändern oder weiterbilden?
Zum Stellenmarkt
Zur Akademie
Zum Coaching
  • Schnäppchen, Rabatte und Top-Angebote
    Die besten Deals des Tages
    Daily Deals • Bis 21% auf Logitech, bis 33% auf Digitus - Cyber Week • Crucial 16GB Kit 3600 69,99€ • Razer Huntsman Mini 79,99€ • Gaming-Möbel günstiger (u. a. DX Racer 1 Chair 201,20€) • Alternate-Deals (u. a. Razer Gaming-Maus 19,99€) • Gamesplanet Anniversary Sale Classic & Retro [Werbung]
    •  /