Die nächsten 37 Jahre
———————————————————————–
Der Titel dieses Blogs kann genau so sehr in die Irre führen wie der Gegenstand dieses Blogs. Ohne es genau zu hinterfragen, könnte man implizieren, dass der Autor 37 Jahre alt ist und damit rechnet, bis zu seinem 74 Lebensjahr arbeiten zu müssen. Wahr ist vielmehr, dass der Autor vor 37 Jahren das erste Mal mit einem Software-Fehler konfrontiert war. Irgendwo hat das dann in meinem Leben Niederschlag gefunden.
Das Thema dieses Blogs ist Software-Test.
Zum Einstieg möchte ich meine erste Begegnung mit einem Softwarefehler vor 37 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, 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.
In diesem Blog möchte ich einige Gedanken darstellen, welche dieser Sorge Rechnung tragen.
Sonntag, Mai 27, 2007 at 9:33 pm
Das Leben mit Fehlern akzeptiere ich auch, allerdings sollte man nicht aufhören den Fehler immer mal wieder zu hinterfragen, denn sonst passiert es, dass manuelle Korrigier-Arbeitsvorgänge noch existieren wenn das zugrunde liegende Problem oder sogar das entsprechende System nicht mehr da sind.
Ich hab da ein Beispiel im Kopf, bei dem ein manueller Datenvergleich über Jahre hinweg weiter durchgeführt wurde (immer ohne Befund), nachdem die 2 ursprünglichen datenliefernden Systeme bereits in ein einziges integriert worden waren und die manuelle Schnittstelle (= Fehlerquelle) gar nicht mehr existierte…
Sonntag, Mai 27, 2007 at 9:34 pm
Anmerkung:
Ein Freund, der ebenfalls in der IT arbeitet, hat mich darauf hingewiesen, dass der Programm-Halt doch gar kein Fehler ist. Das Programm terminiert. Für ein Turingmaschinenprogramm ein sehr erstrebenswerter Zustand. Der Mensch kann Aktionen setzen.
Tatsächlich handelte es sich aber um einen Exit, der vom Programmierer ursprünglich nicht vorgesehen war. Der Halt war der letzte Ausweg einer unbehandelten Exception.
Für mich bedeutete es – und tut es noch immer – einen crash. Das Programm wurde nicht ordentlich zu Ende geführt. Seine Aufgaben wurden nicht erfüllt. Immerhin sollte das ja ein Batch-Job sein. Man hätte das Programm auch teilen können, doch der Halt kam immer zu einem anderen Zeitpunkt. Irgendwie war er datenabhängig.
Sonntag, Mai 27, 2007 at 9:38 pm
@OAndreas
Danke, dieser Hinweis ist ganz ausgezeichnet. Solche Fälle passieren viel öfter als man es annehmen sollte.
Ich werde dem noch einen eigenen Eintrag widmen.