Softwarewartung

Grundlagen, Management und Wartungstechniken

Lebenszyklus

Die Softwareentwicklung geschieht üblicherweise im Rahmen eines Projektes. Ein Projekt ist per Definition eine zeitlich begrenzte Aufgabe: hat das Projekt sein vorher festgelegtes Ziel erreicht, wird das Projekt abgeschlossen und die gesamte Projektorganisation aufgelöst. Wie es mit der Software nun weiter geht, ist nicht die Aufgabe des Projektleiters und oft unklar.

Die soeben erstellte Software beginnt aber erst jetzt zu leben, weil sie erst jetzt beim Anwender zum Einsatz kommt. Zum einen wird damit Wartung notwendig, zum anderen reifen beim Anwender zusätzliche Wünsche, die Weiterentwicklungen nach sich ziehen.

Softwarelebenszyklus

Quelle: Softwarewartung, dpunkt.verlag, Heidelberg 2008


Will man Softwarewartung betreiben, ist die Sicht auf den Lebenszyklus, anstelle der isolierten Sicht auf ein einzelnes Projekt, der absolut entscheidende Punkt! Sie beeinflusst sämtliche Entscheidungen, die es im Verlauf eines Produktlebens immer wieder zu fällen gilt. Denn alles, was man während des Lebenszyklus tut oder auch unterlässt, hat Folgen, die wieder auf einen zurückfallen – im Guten wie im Schlechten.

So zum Beispiel profitieren die korrektive und präventive Wartung sehr von qualitätssichernden Maßnahmen, wie einem guten Diagnosemechanismus, gut lesbarem und übersichtlichem Code oder geeigneter und aktueller Dokumentation. Diese und weitere Massnahmen lassen die Wartungsaufwände bei der Fehlerbehebung drastisch sinken. So gesehen beginnt Softwarewartung in der Entwicklung - hier kann man viel für die Wartung tun!

Der Aufwand, der zu einem frühen Zeitpunkt in qualitätssichernde Maßnahmen investiert wird, zahlt sich zu einem späteren Zeitpunkt wieder aus – in der Wartung.

Diesen Lebenszyklus gilt es zudem bewusst steuern. Genau dies ist die Aufgabe des Produktmanagers. So wie der Projektleiter der Manager eines einzelnen Projektes ist, so ist der Produktmanager der Manager all dieser Aneinanderreihungen von einzelnen Projekten sowie der zugehörigen Wartung, die in Summe den gesamten Lebenszyklus eines Systems ausmachen. Beispielsweise entscheidet eine Produkteroadmap wie häufig neue Softwareversionen entshene sollen oder viele unterschiedliche Versionen parallel gepflegt und unterstützt werden. Dies mag aus Sicht einer Mobile App und deren einfachen Updatemöglichkeiten nicht so wichtig zu sein, es ist aber deutlich anders, wenn sie Software für Liftsteuerungen, Eisenbahnen, Flugzeuge, Autos, Produktionsmaschinen, Tunnels etc. entwickeln.

Softwarewartung macht nur Sinn, wenn man den gesamten Lebenszyklus der Software betrachtet – von der Idee für die Software bis zum Ende der Anwenderunterstützung.