Wird ein Fehler in der Software korrigiert, treten anschließend zwei neue Fehler an anderen Stellen auf. Die Software-Entwickler verbringen einen Großteil des Tages mit der Fehlersuche und dürfen zwischenzeitlich an der auf der Seite „Was ist Software-Sanierung?“ genannten „Featuritis“ weiterarbeiten. Fragt man diese Entwickler nach einer Lösung für das Problem, erhält man in den meisten Fällen die Antwort, dass die Software auf jeden Fall komplett neu geschrieben werden muss, um „alles besser zu machen“. Sie sind frustriert und möchten einfach nur neu auf einer grünen Wiese anfangen Es gibt nur einen Wunsch: Sich nicht mehr mit dem Quellcode herumschlagen zu müssen, der vor 20 Jahren entwickelt und seitdem strukturell nicht mehr an die neuen Anforderungen und technischen Möglichkeiten angepasst wurde.
Der zuständige Entscheider im Unternehmen hat nun die Aufgabe objektiv zu entscheiden, ob die Software saniert oder neuentwickelt werden soll. Im Folgenden werden die Vor- und Nachteile der Software-Sanierung sowie der Neu-Entwicklung beschrieben:
Software-Sanierung
Vorteile
- Hohe Motivation durch das Erreichen von Zwischenzielen und die dadurch erzielten Verbesserungen für alle Beteiligten (Kunden, Entwickler etc.)
- Niedrige Time-To-Market, da bereits Zwischenergebnisse an die Kunden ausgeliefert und mit denen abgestimmt werden können.
- Auf Basis des erstellten Sanierungs-Plans können Maßnahmen Schritt-für-Schritt durchgeführt werden (Keine „Alles oder nichts“-Entscheidung)
Nachteile
- Die Entwickler müssen den bestehenden Code untersuchen, die (oftmals nicht dokumentierten) Anforderungen der Software ermitteln und diese mit den Stakeholdern besprechen. Auch die Stakeholder wissen oft nicht mehr genau, welche Funktionen und „Sonderlocken“ sich über die Jahre in der Software angesammelt haben.
Neu-Entwicklung
Vorteile
- I.d.R. hohe Motivation bei den Software-Entwicklern, da mit der Neu-Entwicklung oft das Kennenlernen und die Arbeit mit neuen Technologien verbunden wird.
- Anforderungen können (unabhängig von bestehenden Code der Legacy-Software) gemeinsam mit den Stakeholdern ermittelt werden. Nicht mehr benötigte Features verschwinden somit automatisch.
Nachteile
- Sehr hohe Time-To-Market (Umstellung erst möglich, wenn die Neu-Entwicklung abgeschlossen ist).
- Zwischenzeitlich müssen neue Anforderungen doppelt (in der Legacy-Software sowie in der Neu-Entwicklung) umgesetzt werden.
- Durch die Euphorie wird oft zu schnell gehandelt, sodass wichtige Architektur-Entscheidungen nicht getroffen werden. Nicht selten wird deshalb mehrfach die Neu-Entwicklung erneut initiiert („Wir fangen nun nochmal neu an…“)
Die o.a. Übersicht stellt sehr gut dar, dass die Sanierung einer Software eine sehr gute Alternative zur oft sehr teuren und zeitaufwändigen Neu-Entwicklung ist.
Bevor mit einer Neu-Entwicklung begonnen wird, sollten Sie auf jeden Fall die Möglichkeit einer Sanierung untersuchen und auf Grundlage des erstellten Sanierungsplans Ihre Entscheidung treffen. Kontaktieren Sie uns gerne, um die Lage in Ihrem Unternehmen zu besprechen. Wir freuen uns darauf, Ihre Software kennenzulernen und zu ihrer Verbesserung beitragen zu dürfen.