Spaghetti schon am frühen Morgen


Unterhalt der Programme ist nicht immer unterhaltend

Die Grossrechner-Programme hatten meist ein recht langes Leben. Ich erlebte eine Applikation mit etwa 100 Programmen, die den 25. Geburtstag feiern konnte!  IBM selbst achtete darauf, dass Programme, die für die 1401 geschrieben worden sind, auch auf dem System 360 noch lauffähig waren, d.h. von 1963 bis in die 2000er Jahre.

THINK-Tafeln aus Holz, Plexiglas oder Metall
standen bei vielen IBM Mitarbeitern auf dem Pult

Das Entwickeln eines Programms ist eigentlich relativ einfach, und meistens wurden Junioren damit beauftragt; die erfahrenen Informatiker wurden für die Fehlersuche bei produktiven Programmen eingesetzt. Die Junior-Programmierer erhielten jeweils mehr oder eben auch weniger Unterstützung von erfahrenen Programmierern. Vielfach waren die Termine – wie auch heute noch üblich – sehr knapp und deshalb wurde so rasch als möglich mit Codieren begonnen ohne vorherige Gedanken über Strukturen und Module.

Dadurch entstanden die sogenannten Spaghettiprogramme. Einfach ein sehr langer Strang von aneinandergereihten Befehlen mit vielen Verzweigungen z.B. „Branch“, „goto“ oder wie die Sprünge alle hiessen. Meistens funktionierten die Programme auch auf Anhieb und für einige Zeit recht gut. Aber jeder Informatiker weiss, dass einerseits beim Beginn der Programmierung nie alle Anforderungen bekannt sind, und andererseits immer auch Fehler in Codezeilen bleiben, die beim Test nicht durchgeführt werden.

Und irgendwann im Lauf der Zeit – sei es bereits nach einigen Wochen oder allenfalls erst nach mehreren Jahren – kommt es zum Absturz, weil ausgerechnet an diesem Tag ein ganz spezieller Fall vom Programm bearbeitet werden sollte. Das Ergebnis war in meiner Zeit jeweils ein mehr als 100-Seitiger Speicherauszug, sogenannter Dump.

hexadezimaler Speicherauszug mit 3 Spalten:
jede Zeile enthält folgenden Eintrag:
links 6 Zeichen mit Speicheradresse, 
in der  Mitte 8 Blöcke mit 4 Stellen im Hexcode,
rechts 16 Zeichen in Normalschrift
hexadezimaler Speicherauszug mit 3 Spalten: jede Zeile enthält folgenden Eintrag: 
links 6 Zeichen mit Speicheradresse,
in der Mitte 8 Blöcke mit 4 Stellen Programmcode hexadezimal, 
rechts 16 Zeichen in Normalschrift (Name von Textkonstanten sind lesbar)

Jetzt kommt die schwierige Aufgabe der Fehlersuche und dazu braucht es Spezialisten bzw. Senior-Programmierer, die Dump lesen konnten und dazu mehrere Programmiersprachen kannten und vor allem auch, sie mussten die Übersicht über mehrere Tausend Programme in einer Firma haben.

In meiner ganzen Berufszeit habe ich leider nicht lange als Entwickler gearbeitet, sondern meine Aufgabe war meistens in der Software-Wartung, d.h. Unterhalt der alten bis uralten Programme. Auch wenn neue Anforderungen vom System, von der Geschäftsleitung oder der Wirtschaft kamen (z.B. neue Speichereinheiten, neue Filialen, Namensänderung der Firma, zusätzliche Währungen oder Sprachen usw.) musste jedes Programm entsprechend angepasst werden. Bei diesen Arbeiten war man immer sehr dankbar, wenn möglichst modulare Programme zu bearbeiten waren.

Bei der meist unter Zeitdruck stehenden Fehlersuche waren die Spaghettiprogramme das Schlimmste. Da die Produktion (Batchprogramme) immer in der Nacht laufen musste, waren die von Fehlern produzierten Dumps am frühen Morgen auf meinem Pult. Oft waren es mind. 2 bis sogar 7 Stück. Ganz schlimm war’s, wenn dann noch ein Online-Programm vom Tag abstürzte, denn ich war die einzige Person, die eine Fehlersuche in den speziellen Programmen für die Terminals an den Bankschaltern eines ganzen Kantons machen konnte.

So kam auf den hohen Stapel von Dumps noch diejenigen der Online-Applikation (siehe auch unter ‚Storno der Fehlbuchung nur mit Dump‚) und die mussten prioritär behandelt werden. Denn das Bankpersonal an den Schaltern wollte ja nicht, dass die Schlange der wartenden Kunden immer länger und länger wurde.

Diese Arbeitsweise erlebte ich während dreier Jahre und es ist wirklich verrückt: all die Herausforderungen haben mir gefallen!

Aber Spaghettiprogramme waren auch bei mir
während der ganzen Zeit nicht beliebt.