Anforderungsanalyse, Spezifikation, Design, Entwicklung, Test, Auslieferung, Wartung und Support – und schließlich Ablösung durch einen Nachfolger: So sieht der Lebenszyklus einer Software im Lehrbuch aus. Aber ist dieses Ende wirklich unausweichlich?
Bei Software von Drittanbietern haben Unternehmen meist keine andere Wahl, als irgendwann auf die nächste Generation zu migrieren, wenn der Entwickler den Support für die Vorgänger einstellt. Bei Eigenentwicklungen können Unternehmen diesen Zyklus aber durchaus aufbrechen. Und das lohnt sich, denn Ablöseprojekte sind meist teuer und riskant: Eine völlig neue Software erfordert umfangreiche Schulungen der Mitarbeiter und stößt oft auf mangelnde Akzeptanz, bei Neuentwicklungen droht immer die Gefahr, dass Fehler gemacht werden und sie deshalb qualitative Mängel aufweisen, und an der komplexen Migration der Daten ist schon so manches Ablösungsprojekt komplett gescheitert.
Wie Unternehmen das verhindern können? Indem sie dranbleiben. Üblicherweise folgt nämlich auch die Aufmerksamkeit für eine Software einem festen Zyklus. In ihren ersten Lebensphasen interessieren sich noch viele Personen der IT-Abteilung für sie und das Geld für die Budgets sitzt im Unternehmen noch vergleichsweise locker. Ist die Software dann eingeführt und erfüllt ihren Zweck, ändert sich das nach und nach. Die Budgets für Wartung und Instandhaltung sinken, erforderliche Modernisierungen werden nicht mehr durchgeführt und es entstehen technische Schulden wie eine unüberschaubare Architektur. Diese Schulden fallen nicht sofort auf; werden aber aufgrund neuer Anforderungen oder Gesetze wichtige Änderungen nötig, dafür umso mehr. Im schlechtesten Fall ist der kritische Punkt dann bereits überschritten: Die technischen Schulden sind so hoch, dass eine Modernisierung nicht mehr möglich ist und Unternehmen die Software tatsächlich ausmustern müssen.
Um diesen kritischen Punkt erst gar nicht zu erreichen, sollten Unternehmen ihre Software kontinuierlich pflegen – etwa durch ein regelmäßiges Refactoring. Dabei wird der Quellcode der Software immer wieder „aufgeräumt“, wodurch sie dauerhaft in einem Zustand bleibt, in dem sie unkompliziert und schnell um neue Funktionen erweitert werden kann. Diese Pflege gibt es natürlich auch nicht umsonst. Aber kostengünstiger als eine komplette Neuentwicklung ist sie allemal. Von den vermiedenen Risiken ganz zu schweigen. Zugegeben: Es gibt Fälle, in denen eine Neuentwicklung alternativlos ist. Etwa, wenn damit ein technologischer Fortschritt nicht mehr umgesetzt werden kann. In den meisten Fällen können Unternehmen aber den ständigen Kreislauf aus Neuentwicklung-Ausmusterung-