In meinem Leben habe ich geschrieben, dass ich mich mit Fehlern beschäftige - mit Fehlern in Programmen. den ersten entdeckte ich vor 44 Lebensjahren. Ich habe mich damals gewundert, warum der Fehler nie behoben wurde.
In der Zwischenzeit habe ich als Entwickler für Hardware gearbeitet, ich habe im Verkauf gearbeitet und sechs Jahre davon für eine renommierte Firma namens Bösendorfer. Ich hatte dort auch als Produktionsleiter mit Fehlern zu tun. Besonders die Japaner waren sehr pingelig und ich lernte das erste Mal, was Qualität und Qualitätsmanagement bedeutet.
Das waren Hardware-Fehler, doch ein paar Jahre später lernte ich, was Software-Fehler sind. Und ich bemühe mich seither, Leute davon zu überzeugen, dass Fehler unvermeidlich sind. Es sind nicht nur die Fehler, welche Programmierer machen, die uns weh tun. Doch immer wieder werde ich mit der Haltung konfrontiert, Fehler wären nicht notwendig.
(Es ist interessant, wie intolerant Menschen mit den Fehlern anderer umgehen.)
Doch jetzt zur Geschichte:
Den Einstieg in das Thema möchte ich anhand meiner ersten Begegnung mit einem Softwarefehler mittlerweile 44 Jahren berichten.
Als neunzehnjähriger Werkstudent arbeitete ich bei einem großen Elektronikkonzern in der EDV als Operator. Das war für mich die beste Gelegenheit, einem Computer nahe zu kommen.
Jeden Monat musste ein Programm laufen, dass sich “offene-Posten-Buchhaltung” nannte. Es lief im Durchschnitt acht Stunden und war für den Operator ein angenehmes Programm. Zu Beginn musste man ungefähr einen Drittelmeter Lochkarten in die Zuführungsrinne platzieren. Danach lief das Programm von selbst mit Ausnahme der halbstündigen Bandwechsel im klimatisierten Bandraum.
Dann gab es noch einen notwendigen Eingriff. Nach einigen Stunden lief das Programm auf einen absoluten Halt. Die Daten mussten sortiert werden und der Sortiergenerator lief mit den vier Bandlaufwerken einfach nicht fehlerfrei. Es gab damals nur eine gleichartige Anlage (in München), die sechs Laufwerke hatte. Dort war der Sort-und-Merge-Algorithmus entwickelt worden und hatte funktioniert. Ich erfuhr davon erst Jahre später.
Um das Programm fortzuführen, musste ich auf der Konsole einige Register neu laden. Die eingestellten Ziffern wurden mit kleinen Lämpchen im Excess-3-Code dargestellt. Danach wurde noch ein Sprungbefehl auf eine fixe Adresse eingegeben und auf RUN gedrückt. Nach einiger Zeit beherrschte man die Abfolge im Schlaf. Ich kann mich aber erinnern, dass ich ungläubig staunte, als ich meine Kollegen das erste Mal bei dieser Tätigkeit beobachtete.
Ich habe damals nicht verstanden, warum die Firma diesen Fehler nicht beheben ließ. Mir erschien es als sehr großes Sicherheitsrisiko, Menschen in den Ablauf eingreifen zu lassen. Weiß Gott, was man damals hätte hacken können:)
Heute darf ich behaupten, dass ich verstehe, warum man nichts unternommen hat. Das Leben mit Fehlern ist im Softwarebereich notwendig. Vernünftiger Software-Test sorgt aber dafür, dass wir unter den Fehlern nicht zu sehr leiden müssen und dass ihre Auswirkungen erträglich bleiben.
Leider wird nicht immer verstanden, dass man für die Erträglichkeit etwas tun muss.