7 Warnzeichen, die schlechte Software entlarven

Wenn Software zur Last wird

25.06.2013
Von Nicolas Zeitler
Tests dauern lang, die Wartung wird immer teurer: Die Software Improvement Group nennt Warnzeichen, die andeuten, dass eine Software bald zur großen Last wird.
Sieuwert van Otterloo von der Software Improvement Group spricht sich für schlank programmierte Software aus: Eine Funktion sollte nicht an mehreren Stellen im Code hinterlegt sein.
Sieuwert van Otterloo von der Software Improvement Group spricht sich für schlank programmierte Software aus: Eine Funktion sollte nicht an mehreren Stellen im Code hinterlegt sein.
Foto: SIG

Software-Altlasten schleppen viele Unternehmen mit sich herum. Schlimmstenfalls sind sogenannte Legacy-Systeme, die seit vielen Jahren im Einsatz sind, irgendwann nicht oder kaum mehr zu warten - weil der Aufwand zu hoch ist oder sich niemand mehr mit ihnen auskennt.

Zum Teil liegt der steigende Pflegeaufwand daran, dass der Anbieter ein Produkt nicht mehr unterstützt. Die Gefahr, dass ein System mit der Zeit unwartbar wird, ist aber auch erhöht, wenn der zugrunde liegende Code schlecht ist, sagt Sieuwert van Otterloo, Principal Consultant beim auf Software-Qualität fokussierten Beratungsunternehmen Software Improvement Group (SIG) in Amsterdam. Der Berater beschreibt sieben Symptome, die CIOs andeuten, dass eine Software in Bälde zu einer großen Last werden könnte.

1. Lizenzgebühren steigen stark an

Am Ende des Lebenszyklus einer Software heben viele Anbieter die Preise stark an - um bis zu 40 Prozent, beobachtet die SIG. Zum Teil sei das ein ausdrückliches Signal an die Kunden, dass der Anbieter bald keinen angemessenen Support mehr bieten werde. Das hat an sich nichts mit der Qualität der Software zu tun. Sieuwert van Otterloo allerdings sagt: "Ist der Code gut, lässt sich auch eine alte Software noch warten, die nicht mehr unterstützt wird." Für ein wichtiges Merkmal guter Software hält der Berater, dass sie schlank programmiert ist - soll heißen: Dieselbe Funktion ist nicht an mehreren Stellen im Code hinterlegt.

2. Verzögerungen bei Tests

Dass vor allem umfangreiche Programme zu Anfang Fehler enthalten, ist Normalität. Tests und Bug-Fixing sind daher feste Bestandteile des Entwicklungszyklus. Dauert es allerdings viel länger als vorgesehen, Kinderkrankheiten zu beheben, könnte das daran liegen, dass die Software nur schwer zu analysieren oder zu ändern ist.

Van Otterloo berichtet von einem Unternehmen, das bei einem Dienstleister zu einem Fixpreis eine Versicherungs-Plattform entwickeln ließ. Durch den Festpreis motiviert, setzte der Anbieter Junior-Entwickler auf das Projekt an. Die anfangs auf zwei Monate veranschlagten Tests dauerten letztlich ein ganzes Jahr. "Offenbar hat der Anbieter die Komplexität unterschätzt, die Entwicklung nicht überwacht und deshalb Fehler erst spät entdeckt", sagt van Otterloo. Das zunächst günstige Projekt wurde für den Auftraggeber zuletzt sehr teuer - denn im Festpreis war nur ein Teil der zur Behebung aller Fehler nötigen Tests enthalten.

3. Funktionen sind doppelt vorhanden

Je aufwändiger die Wartung eines alten Systems wird, umso größer wird für IT-Abteilungen die Versuchung, eine Funktion nochmals in einem neuen System abzubilden - statt die nötigen Änderungen in der alten Software umzusetzen. Eine kurzfristige Strategie, wie Sieuwert van Otterloo schreibt. "Aber etwas, das wir sehr oft sehen", sagt der Berater. Häufig werde die SIG von Unternehmen gerufen, zwei Systeme mit nahezu denselben Funktionen zu vergleichen. Nicht selten sie die Redundanz Folge eines Firmenzusammenschlusses oder einer Übernahme. Sieuwert van Otterloo plädiert dafür, eine Funktion nur in einem System zu verorten. Bei nötigen Änderungen falle sonst immer die doppelte Arbeit an. "Man braucht ja auch mehr Leute dafür."

4. Die Standard-Wartung bindet viel Budget

In gesunden IT-Systemen stehe der Großteil des Unterhalts-Budgets zur freien Verfügung, etwa für neue, vom Business geforderte Funktionen - die dem Unternehmen einen Gewinn versprechen. In Software minderer Qualität hingegen sei der CIO gezwungen, das meiste Geld für den schlichten Unterhalt auszugeben, um Fehler zu beheben oder Updates ohne wirklichen Mehrwert durchzuführen.

Zu diesem Zustand kommen kann es aus Sicht von van Otterloo, wenn die IT neue Funktionen immer wieder auf eine bestehende Software einfach aufpfropft. "Das macht das System komplexer, und am Ende geben Sie bis zu 80 Prozent des Geldes für notwendige Wartungsschritte aus", sagt der Berater. Vermeiden lasse sich diese Situation, wenn vor einer Weiterentwicklung der bestehende Code analysiert werde. "Man sollte den Code aufräumen, bevor man immer wieder Features dazu entwickelt", sagt van Otterloo.

5. Fachkräfte kaum zu finden

Vor allem für veraltete Systeme finden Unternehmen mit der Zeit immer weniger Entwickler, die sich auskennen. Das muss nicht zwingend etwas damit zu tun haben, dass ein System von schlechter Qualität ist. Kann es laut van Otterloo allerdings: Die besten Entwickler befassten sich schließlich mit Systemen, die sie für gut und zukunftsträchtig halten.

6. Hohe Kosten für kleine Anforderungen

In schlechter Software kommen selbst kleine Änderungen das Unternehmen teuer. Schon die Analyse, wo genau die Änderung zu machen ist, ist aufwändig. Womöglich muss dieselbe Änderung an mehreren Stellen im Programm-Code getätigt werden. Ist das einmal erkannt, kann es in einen Teufelskreis münden: Firmen schieben kleine Änderungen auf, bis die Software immer schlechter zu nutzen ist.

Eine Ursache, dass der Änderungsaufwand besonders hoch wird, sieht van Otterloo in schlechter Modularität. Auf diesen Fall traf der Berater bei einem System zur Rentenberechnung: "Eigentlich war nur eine Änderung zu machen, weil es so viele Redundanzen gab, musste sie aber an vielen Stellen gemacht werden; das hat den Aufwand deutlich erhöht."

7. Lange Release-Zyklen

Was bei gut programmierter Software Wochen dauert, kann sich bei schlechten Systemen zu Monaten auswachsen, sagt Sieuwert van Otterloo. Das zeigte sich beim Internetportal eines großen Finanzdienstleisters, den die SIG betreute. Neue Bedienfunktionen für die Kunden oder spezielle Angebote zu Anlässen wie Weihnachten: Das Unternehmen wollte derlei Änderungen schnell implementieren. Allerdings griff das Internetportal auf eine Vielzahl großer Backend-Systeme mit langen Release-Zyklen zurück. Das machte kurzfristige Neuerungen schier unmöglich. Natürlich konnte der Finanzdienstleister nicht einfach seine Backend-Systeme austauschen. Van Otterloo sagt: Schon viel früher hätte das Unternehmen Qualitätskontrollen einbauen müssen, um die Systeme gar nicht erst so schwerfällig werden zu lassen.

Dieser Artikel basiert auf einem Beitrag der CW-Schwesterpublikation CIO.de. (mhr)