Von der Luftfahrt lernen - Teil 2

Wartung von Software: Handwerk auf die nächste Stufe heben

Wartung von Software: Handwerk auf die nächste Stufe heben

Von der Luftfahrt lernen - Teil 2

Wartung von Software: Handwerk auf die nächste Stufe heben


Luftfahrt fasziniert nicht nur durch große Flugzeuge und die Möglichkeit, buchstäblich den Boden der Tatsachen verlassen zu können, sondern auch und gerade durch das Zusammenspiel vieler komplexer Komponenten zu einem großen Ganzen. Für uns als Softwareentwickler ist sie daher eine ideale Möglichkeit, über den eigenen Tellerrand zu blicken und uns für unsere eigenes Handwerk und unsere Prozesse etwas abzuschauen.

Im ersten Teil der Serie haben wir uns mit Piloten beschäftigt. Sie sind diejenigen, deren Arbeit wir mehr oder weniger direkt sehen und wahrnehmen. Doch das hochkomplexe System der Luftfahrt besteht aus vielen weiteren Spezialisten, die alle Hand in Hand arbeiten, um uns sicher und schnell von A nach B zu bringen. In diesem Teil werden wir einen Blick hinter die Kulissen werfen und uns mit einer Gruppe beschäftigen, deren Arbeit wir nicht direkt wahrnehmen, die jedoch trotzdem für das reibungslose Funktionieren eines Fluges essenziell ist: den Flugzeugmechanikern.

Gute Wartung ist das A und O in der Luftfahrt. Bekanntlich bringt nur ein Flugzeug Umsatz, das in der Luft Passagiere transportiert. Es ist daher oberste Priorität für Fluggesellschaften, ihre Flugzeuge möglichst lange in der Luft und gleichsam kurz am Boden zu halten. Das bedingt ein ausgeklügeltes System proaktiver Wartung, damit Probleme gar nicht erst auftreten, und professionellen Werkzeugen und Prozessen (z. B. Wartung und Reparatur), damit Probleme so schnell wie möglich beendet werden können.

In der Softwareentwicklung haben wir das ähnliche Ziel, unsere Softwaresysteme immer und jederzeit zur Verfügung stellen zu können. Downtimes sollen möglichst vermieden bzw. auf ein Minimum reduziert und neue Features dem Anwender schnell und reibungslos zur Verfügung gestellt werden. Schauen wir uns also einige Hilfsmittel an, derer sich Flugzeugmechaniker bedienen, um ihre Ziele zu erreichen, und wie wir als Softwareentwickler ähnliche Hilfsmittel und Prozesse nutzen können, um unsere eigene Arbeit noch besser und noch nachhaltiger zu gestalten.

Optimale Vorbereitung

Vor dem Beginn jeder Wartung oder Reparatur eines Flugzeuges steht eine dedizierte und genau geplante Vorbereitung. Es wird nicht einfach „drauflos geschraubt“ sondern minutiös geplant und entsprechend vorbereitet. Für viele Kontrollen oder Reparaturen an einem Triebwerk wird dieses komplett vom Flugzeug entfernt und in eine separate Halle und einen separaten Arbeitsplatz gebracht. Anschließend werden Verkleidungsteile entfernt und der eigentliche Reparaturort freigelegt. Ziel ist es, einen einwandfreien Einblick zu bekommen und den Arbeitsort möglichst allumfassend betrachten und bearbeiten zu können.

Beim Arbeiten an unseren Softwaresystemen können wir ähnliche Hilfsmittel anwenden, die häufig sogar mit deutlich weniger Aufwand verbunden sind. Um einen besseren Einblick in die Arbeitsweise unserer Anwendung zu bekommen, können wir beispielsweise beim lokalen Arbeiten (oder der Arbeit an einem Testsystem) das Log-Level erhöhen, um Informationen, die in der Produktion unnütze Ressourcen (wie z. B. Plattenplatz, Prozessorzeit oder Netzwerkverkehr) blockieren würden, selektiv hinzuzuschalten. Wir können Werkzeuge wie Debugger einsetzen und mit unserer Anwendung verbinden, um nicht nur die Ergebnisse von außen, sondern auch konkrete Details unter der Haube zu analysieren und besser zu verstehen.

Wichtig hierbei ist, entsprechende Hilfsmittel bereits bei der Erstellung der Anwendung mit vorzusehen. Mit einer guten Logging-Bibliothek bekommen wir Dinge wie unterschiedliche Log-Level und eine ganze Reihe an möglichen Appendern, die uns die Auswertung der Nachrichten ermöglichen. Das erreichen wir zwar nicht umsonst, aber mit minimalem Aufwand, der sich während der Entwicklung und spätestens bei späterer Fehleranalyse mehr als bezahlt macht.

Das richtige Werkzeug für den richtigen Einsatzzweck

Unterschiedliche Aufgaben erfordern ...