© saicle/Shutterstock.com
Softwarefehler nicht nur beheben, sondern sie analysieren

Aus Fehlern lernen


Niemand scheitert gern. Dabei ist die Folge von Versuch und Irrtum die natürliche Basis jedes Lernens. Aus einem Fehlschlag lässt sich gewöhnlich sehr viel mehr lernen als aus einem schnellen und möglicherweise leichtsinnig machenden Erfolg. So gesehen müsste die IT-Branche eine unübertroffene Quelle nützlicher Erkenntnisse sein – ist sie aber nicht. Woran liegt das und wie könnte man das ändern?

Es ist seit Langem bekannt, dass ein erheblicher Teil der IT-Projekte abgebrochen wird oder die angestrebten Ziele nicht oder nicht vollständig erreicht. Aufgearbeitet wird dieses Problem jedoch fast ausschließlich auf der projektorganisatorischen Ebene. Das ist nicht falsch, lässt aber Wichtiges unberücksichtigt. Tatsächlich liegen Misserfolgen oft fehlerhafte Managemententscheidungen zu Grunde. Aber das ist nur ein Teil der Wahrheit. Der andere Teil wird gern hinter dem Motto „Einsatz unausgereifter Technologien“ eher versteckt als klar benannt. Was bedeutet „unausgereift“ in einem derart schnelllebigen Gebiet? Ist damit nicht eher gemeint, dass eine falsche Technologie oder auch die richtige Technologie falsch eingesetzt wurde?

Damit kommen wir zum Kern des Problems: Es gibt in der IT keine Fehler- und darauf basierende Lernkultur. Jeder frage sich selbst, wann er das letzte Mal eine Analyse gelesen hat, die sich mit den konkreten Problemen befasste, die sich aus dem Einsatz einer Software, eines Design- oder Architektur-Patterns oder eines Programmierstils ergeben hat?

Im Gegensatz dazu gibt es jede Menge Berichte, die uns glauben machen wollen, dass durch die Anwendung von XYZ die Softwareentwicklung zum Kinderspiel wird. Selbstverständlich lernt man auch aus Erfolgsbeispielen. Dabei erfährt man aber nicht, wie weit ein Konzept wirklich trägt. Grenzen kann man nur durch Scheitern erkunden. Wenn ein Seil einer Belastung von 20 N standhält, weiß ich zwar, dass es für 15 N reicht, aber nicht, ob das auch noch für 30 N gilt. Vielleicht ist es auch hoffnungslos überdimensioniert und hält 2 000 N aus. Genauso verhält es sich mit Erfolgsberichten.

Umgang mit Fehlern am Beispiel der Luftfahrt

Flugzeuge lassen sich in ihrer Komplexität mit IT-Systemen vergleichen und verfügen zudem über zahlreiche softwaregesteuerte Funktionen. Ein Fehler kann fatale oder katastrophale Auswirkungen haben. Vor ihrer Freigabe müssen Flugzeuge deshalb unzählige Prüfungen und Zertifizierungsprozesse durchlaufen. Trotzdem lassen sich Fehler nicht vollständig verhindern, und es passieren Abstürze und andere Unfälle. Bemerkenswerterweise und in deutlicher Diskrepanz zur IT-Welt nimmt die Anzahl der erheblichen technikbedingten Vorkommnisse bei Flugzeugen seit Jahren ab, trotz wachsender Komplexität der Systeme, Zunahme des Verkehrs und Anstieg des Durchschnittsalters der Flotten. Diese erfolgreiche Entwicklung beruht vor allem darauf, dass es weitgehend gelingt, das Wiederholen von Fehlern zu verhindern. Erreicht wird das durch die sorgfältige Untersuchung aller relevanten Vorfälle durch unabhängige Inspektoren. In den meisten Ländern gibt es dazu Institutionen wie die Bundesstelle für Flugunfalluntersuchung (BFU) in Deutschland, die im Ergebnis ihrer Auswertungen dann auch Empfehlungen für das Beseitigen von Risiken aussprechen können. Die Prüfungen und Zertifizierungen gehen zu einem erheblichen Anteil auf solche Empfehlungen zurück. Derartige Untersuchungsberichte weisen einige wichtige Charakteristika auf:

  • Sie sind sehr detailliert: Sie enthalten nicht etwa „Der Pilot traf die falsche Entscheidung“, sondern eine genaue Beschreibung der Umstände und Einflüsse, unter denen diese Entscheidung getroffen wurde.

  • Varianten werden ausführlich diskutiert, da auch klar vorliegende Fakten immer unterschiedliche Interpretationen zulassen.

  • Der Fokus liegt auf der Aufklärung der Kausalitäten und Abläufe. Es ist nicht das Ziel, Verantwortliche (Sündenböcke) zu ermitteln.

Neben der Neutralität ist der letzte Punkt besonders wichtig, weil nur so die wirklich entscheidenden Fehlerquellen offengelegt werden können. Um Probleme in Zukunft vermeiden zu können, müssen sie klar benannt werden. Das geht nur, wenn persönliche Betroffenheit aus der Aufklärung herausgehalten wird [1].

Die Erarbeitung solcher Auswertungsberichte ist meist langwierig, schwierig und erfordert ausgeprägte Expertise. Das verursacht mithin erhebliche Kosten. Die hohe Sicherheit im Luftverkehr rechtfertigt diesen Aufwand und beweist die Richtigkeit einer solchen Strategie. In Bereichen wie Bahnverkehr, Reaktorsicherheit oder Bauaufsicht gibt es ähnliche Verfahren mit mehr oder weniger ausgeprägter Stringenz. So eindrucksvoll das geschilderte Beispiel sein mag, so schwierig ist es auf die IT-Welt zu übertragen, allein schon aus quantitativen Gesichtspunkten. Aber das heißt nicht, dass es nicht möglich wäre, nutzbringende Schlüsse zu ziehen.

Was sind Fehler?

Fehler sind jedes unerwünschte abweichende Verhalten einer Software, also nicht nur funktionale Fehler, sondern auch mangelnde Leistungsfähigkeit, zu hoher Ressourcenverbrauch, zu hohe Kosten oder verspätete Fertigstellung.

Umgang mit Fehlern in IT-Systemen

Ganz allgemein hat sich gegenüber Fehlern ein gewisser Fatalismus breit gemacht. Überraschung löst es eher aus, wenn Projekte ohne große Verzögerung und Mehrkosten abgeschlossen werden können. Mit dieser Haltung ignoriert man das Verbesserungspotenzial, das die konsequente Auswertung von Fehlern bietet. Natürlich ist es aus Kostengründen gar nicht möglich, jeden Fehler vollständig zu analysieren. Aber es muss das Bewusstsein dafür geschärft werden, dass jeder Fehler die Chance bietet, seine Wiederholung zu vermeiden. In der Softwareentwicklung findet sich häufig die Einstellung, dass es alte Projekte nicht wert seien, genauer untersucht zu werden, weil beim nächsten Projekt ein anderer Ansatz oder neue Tools gewählt werden. Das ist jedoch ein Irrtum. Denn viele Fehler, die eigentlich die gleiche Ursache haben, können in veränderten Umgebungen erneut auftreten.

Analyse von Fehlern

...

Neugierig geworden? Wir haben diese Angebote für dich:

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang