Source Reflection #4: Plädoyer für mehr Wartung in der Softwareentwicklung

Wartungsvorschriften sind in der Softwarebranche noch die Ausnahme. Die Folge sind Systemabstürze und Ausfälle, mit ungeheuren Kosten und weitreichenden Problemen. Zeit, dass sich das ändert.

In Pocket speichern vorlesen Druckansicht 19 Kommentare lesen
Lesezeit: 6 Min.
Von
  • Jörg Friedrich

Wartungsvorschriften sind in der Softwarebranche noch die Ausnahme. Die Folge sind Systemabstürze und Ausfälle, mit ungeheuren Kosten und weitreichenden Problemen. Zeit, dass sich das ändert.

Was für eine Art von Tätigkeit ist dasProgrammieren eigentlich? Die Philosophin Hannah Arendt unterschied in ihrem Buch "Vita activa" drei Arten von Aktivitäten: das Arbeiten, das Herstellen und das Handeln. Während das Arbeiten nach ihrer Unterscheidung dazu dient, das tägliche Überleben zu sichern, schafft das Herstellen Dinge, die der Mensch zum Arbeiten braucht, und das Handeln gestaltet die soziale Welt. So scheint die Sache erst einmal eindeutig: Softwareentwicklung ist Herstellen, so wie man auf den ersten Blick klar sagen kann, dass eine Software ein Werkzeug ist, das andere Aktivitäten unterstützt, so wie es der Hammer oder auch schon der Speer des Urmenschen tat.

Mehr Infos

Source Reflection – die Kolumne

"Was tun wir hier eigentlich?" – Das wird sich schon mancher im Softwareprojekt gefragt haben. Wer so fragt, wird schnell philosophisch und kommt ins Staunen über das Selbstverständliche. Dieses Reflektieren macht Software nicht auf die Schnelle besser, aber auf lange Sicht ändert es die Art, wie man Problemen begegnet, und darum geht es in dieser Kolumne.

Es ist keineswegs unsinnig, sich solche Fragen zu stellen, denn der Umgang mit den Dingen wird zumeist dadurch geprägt, für was sie gehalten werden. Beim Herstellen entstehen haltbare Werkzeuge, die sich nicht nur einmal benutzen lassen. Aber Werkzeuge werden durch die Benutzung abgenutzt, sie leiden darunter. Deshalb pflegen, reparieren und warten gescheite Handwerker sie.

Man muss sich vor Augen halten, dass es gerade in Europa eine Jahrhunderte alte Tradition der Pflege von Werkzeugen gibt, die bei den mittelalterlichen Landwirten und Handwerkern ebenso selbstverständlich war wie in den Fabriken des 19. Jahrhunderts und in den Autowerkstätten der Gegenwart. Jedem war und ist bewusst, dass Fahrzeuge, Schreibzeuge, Werkzeuge durch die Benutzung oder sogar durch das bloße Herumliegen verschleißen. Und dem kommt man durch vorbeugende Wartung zuvor: Man fettet die Kette, bevor sie Rost zeigt, man wechselt das Öl, bevor es nicht mehr schmiert. Man bringt sein Auto regelmäßig zur Werkstatt, auch wenn es keinerlei Verschleißerscheinungen zeigt. Wahrscheinlich ist ein Großteil des wirtschaftlichen Erfolgs und der technischen Sicherheit komplexer Systeme darauf zurückzuführen, dass Menschen, ohne zu fragen, ob es wirklich nötig ist, extra Zeiten reservieren, in denen sie Werkzeuge und Maschinen liebevoll pflegen.

Aber Software verschleißt ja nicht durch die Benutzung und auch nicht, wenn sie ungenutzt auf der Festplatte herumliegt. So sagt man jedenfalls. Ganz davon abgesehen, dass die Haltbarkeit elektronischer Speichermedien geringer ist als die der Metalle, aus denen Maschinen und Werkzeuge entstehen, ist es erstaunlich, wie oft Anwender plötzlich bemerken, dass eine Software, die sie lange nicht gestartet haben, plötzlich nicht mehr läuft. Irgendeine Verbindung, die die Software braucht, existiert nicht mehr, eine Systembibliothek wurde aktualisiert und stellt ein paar Funktionen nicht mehr zur Verfügung.

Es ist genau genommen wie bei einem Werkzeug, das Umwelteinflüssen ausgesetzt ist, das zu rosten beginnt oder das durch Hitze spröde wird: Weil sich die Umgebung ändert und eben nicht ideal ist, leidet eine Software ebenso wie jedes andere Werkzeug. Genau genommen gehört zur Software eben mehr als der übersetzte und ausgelieferte Code. Auch die Verbindungen zur Umgebung und das System, in dem die Software eingebettet ist, gehören dazu, so wie zur Bohrmaschine der Stromanschluss gehört und zum Hammer der Amboss.

Aber Software leidet ebenfalls unter der Benutzung. Natürlich geht eine Dialogbox nicht kaputt, wenn sie öfter geöffnet und wieder geschlossen wird. Auch hier gilt: Software ist mehr als Executable, mehr als die unveränderlichen Deliverables. Zur Software gehören Protokolldateien, Datenbanktabellen und der Arbeitsspeicher, in dem sich im Laufe der Softwarenutzung Reste ansammeln wie der Kalk in den Wasserleitungen.

Das alles ist nichts Neues. Es ist aber überraschend, dass bei der Software die Selbstverständlichkeit der Kulturtechnik "Pflege und Wartung der Werkzeuge" verlernt wurde. Selbst da, wo das Problem notgedrungen erkannt wird, etwa in Großunternehmen, wo Ressourcen zur Überwachung von Tablespaces, temporären Files und Speichern und für das Einspielen von Systemupdates bereitgestellt werden, sind die Wartungsarbeiten fortwährend zu rechtfertigen. Sie stehen oft zuerst auf der Liste der Tätigkeiten, deren Priorität heruntergestuft wird, wenn Kosten oder Zeit zu sparen ist. Noch kritischer sieht die Situation in mittelständischen und kleinen Unternehmen aus.

Auch die Entwicklerseite unterschätzt das Problem des Verschleißes und der vorbeugenden Wartung von Software. Bei jeder Maschine gibt es Wartungsverfahren und -intervalle, die die Hersteller genau vorgeben. Wer die nicht einhält, verliert die Gewährleistung. Und kaum jemand würde sein Auto nicht entsprechend dem Wartungskalender zur Inspektion bringen, wie es Hersteller zwingend vorschreiben.

Wie häufig aber wird Software mit einem detaillierten Wartungsplan ausgeliefert? Man stelle sich vor, es gäbe zu jeder Softwareinstallation einen detaillierten Wartungsplan, die große und die kleine Inspektion, entweder nach einem Jahr oder nach soundsoviel Aufrufen, je nach dem, was früher eintritt. Und für die "Werkstatt" detaillierte Checklisten, Testfälle, die auszuführen sind, egal ob etwas an der Software geändert wurde oder nicht.

Eine solche Wartungsvorschrift dürfte in der Softwarebranche noch die Ausnahme sein. Die Folge sind Systemabstürze und Ausfälle, mit ungeheuren Kosten und weitreichenden Problemen. Software wird so genutzt, als würde man Autos fahren, ohne je das Öl zu wechseln oder den Reifendruck zu prüfen – und dann wundert man sich, wenn plötzlich nichts mehr geht.

Jörg Friedrich
ist Philosoph und Geschäftsführer eines Münsteraner Softwarehauses. Im vergangenen Jahr erschien sein Buch "Kritik der vernetzten Vernunft".
(ane)