Der Gouverneur von New Jersey erwähnte unlängst COBOL, eine Programmiersprache, die bereits 60 Jahre alt ist. Was ist das genau? Und warum ist sie trotz des Mangels an Experten immer noch so zentral im Finanzsektor?
Die Anfänge von COBOL
Grace Hopper war eine außergewöhnliche Persönlichkeit. Sie promovierte in Mathematik an der Yale University, war Professorin am Vassar College und verließ die US-Marine im Rang eines Konteradmirals. Ihre Verdienste in der Informatik zeigen sich in der Anzahl der Stiftungen und Programme, die in ihrem Gedenken ins Leben gerufen wurden. Das National Energy Research Scientific Computing Center benannte einen Cray XE6 Supercomputer nach ihr. Auch die Navy benannte einen Lenkwaffenzerstörer, die USS Hopper, nach ihr. Das Motto des Schiffes, „Aude et Effice“ („Wagen und tun“), hätte auch von Hopper stammen können.
Mit dem Ziel, eine Programmiersprache zu entwickeln, die dem Englischen näher ist als der von Computern verstandene Maschinencode, entwickelte Hopper den ersten Compiler. Dies ebnete den Weg für erste kompilierte Sprachen, wie beispielsweise FLOW-MATIC. Dadurch wurde sie 1959 in das Conference/Committee on Data Systems Languages (CODASYL) berufen.
Sie war ebenfalls maßgeblich an der Spezifikation und Entwicklung von Common Business-Oriented Language (COBOL) beteiligt. Das erste Treffen fand am 23. Juni 1959 statt und ihr Bericht sowie die Spezifikation der COBOL-Sprache folgten im April 1960.
COBOL: Eine Revolution ihrer Zeit
COBOL brachte einige wegweisende Konzepte hervor. Das wohl bedeutendste davon war die Fähigkeit, auf Hardware unterschiedlicher Hersteller zu laufen – ein Novum zu jener Zeit.
Die Sprache war raffiniert und bot Programmierern ein nahezu englisches Vokabular, mit dem sie arbeiten konnten. Sie wurde konzipiert, um enorme Datenmengen zu verarbeiten und außergewöhnlich mathematisch präzise zu sein.
Ihr Vokabular an reservierten Wörtern (die Wörter, aus denen die Sprache besteht) umfasst beinahe 400. Ein Programmierer kombiniert diese reservierten Wörter, damit sie syntaktisch Sinn ergeben und ein Programm erstellen.
Jeder Programmierer, der mit anderen Sprachen vertraut ist, wird bestätigen, dass 400 reservierte Wörter eine beträchtliche Menge ist. Zum Vergleich: Die Programmiersprache C hat 32 und Python 33.
Eine weitere Besonderheit von COBOL ist die strikte Vorgabe, dass bestimmte Programmzeilen in bestimmten Spalten beginnen müssen. Dies ist ein Überbleibsel aus der Zeit der Lochkarten. Heutzutage haben Programmierer mehr Freiheit bei der Formatierung von COBOL und müssen nicht alles in Großbuchstaben schreiben. Dies macht die Arbeit damit weniger reglementiert und schreiend, aber sie ist dennoch ein Produkt ihrer Zeit, wie im Folgenden zu sehen:
IDENTIFICATION DIVISION. PROGRAM-ID. Hello-World. DATA DIVISION. FILE SECTION. WORKING-STORAGE SECTION. PROCEDURE DIVISION. MAIN-PROCEDURE. DISPLAY "Hello world, from etoppc.com!" STOP RUN. END PROGRAM Hello-World.
COBOL ist ein Erfolgsmodell
Die meisten Geldautomatentransaktionen nutzen immer noch COBOL.
So sperrig COBOL heute auch erscheinen mag, bei seiner Einführung war es revolutionär. Es fand Anklang im Finanzsektor, bei Regierungsbehörden und in großen Unternehmen. Dies lag an seiner Skalierbarkeit, seinen Stapelverarbeitungsfunktionen und seiner mathematischen Präzision. Es wurde in Großrechnern auf der ganzen Welt installiert, schlug Wurzeln und entwickelte sich prächtig. Wie ein hartnäckiges Unkraut will es einfach nicht aussterben.
Unsere Abhängigkeit von Systemen, die noch immer auf COBOL laufen, ist erstaunlich. Ein Bericht von Reuters aus dem Jahr 2017 enthüllte folgende beeindruckende Statistiken:
- Noch heute werden 220 Milliarden Zeilen COBOL-Code verwendet.
- COBOL ist die Basis von 43 Prozent aller Bankensysteme.
- Systeme, die auf COBOL laufen, wickeln täglich Transaktionen im Wert von 3 Billionen US-Dollar ab.
- COBOL verarbeitet 95 Prozent aller Kartenzahlungen an Geldautomaten.
- COBOL ermöglicht 80 Prozent aller persönlichen Kreditkartentransaktionen.
Wie man sieht, ist es schwierig, einen Tag ohne ein COBOL-basiertes System zu verbringen. Bankkonten, Scheck-Clearing-Dienste und öffentliche Infrastrukturen wie Geldautomaten und Ampeln laufen noch immer mit diesem vor Jahrzehnten geschriebenen Code.
COBOL ist ein Problem
Die Programmierer, die mit COBOL vertraut sind, sind entweder im Ruhestand, kurz davor oder bereits verstorben. Wir verlieren kontinuierlich die Fachkräfte, die diese lebenswichtigen Systeme am Laufen halten können. Jüngere, neue Programmierer kennen COBOL nicht. Die meisten wollen auch nicht an Systemen arbeiten, bei denen alter Code gepflegt oder neuer Code geschrieben werden muss.
Dieses Problem ist so gravierend, dass Bill Hinshaw, ein COBOL-Veteran, gezwungen war, aus dem Ruhestand zurückzukehren und COBOL Cowboys zu gründen. Dieses private Beratungsunternehmen richtet sich an verzweifelte Firmenkunden, die nirgendwo mehr COBOL-erfahrene Programmierer finden. Die „Youngsters“ bei COBOL Cowboys (deren Motto lautet „Not Our First Rodeo“) sind über 50 Jahre alt. Sie schätzen, dass 90 Prozent der Geschäftssysteme der Fortune-500-Unternehmen auf COBOL laufen.
Natürlich müssen nicht nur Privatunternehmen, Konzerne und Banken riesige Mengen an Finanzdaten verarbeiten. Bundes-, Landes- und Kommunalverwaltungen haben dieselben Anforderungen. Wie alle anderen nutzen sie dafür Mainframes und COBOL.
Die verheerenden Auswirkungen der Coronavirus-Pandemie haben zu Leid, Todesfällen und wirtschaftlicher Unsicherheit für Unternehmer, Angestellte und Selbstständige geführt. Die hohe Anzahl beurlaubter und entlassener Mitarbeiter in New Jersey veranlasste den Gouverneur, erfahrene COBOL-Programmierer aufzurufen, um die veralteten Backend-Systeme des Staates zu unterstützen. Diese sind durch die 326.000 Neuregistrierungen überlastet.
Das Open Mainframe Project führt eine ehrenamtliche Initiative zur Unterstützung durch. Wenn Sie glauben, helfen zu können, würden sie sich über Ihre Kontaktaufnahme freuen.
New Jersey ist mit dieser misslichen Lage nicht allein. Über 10 Millionen Menschen haben sich arbeitslos gemeldet, Tendenz steigend. Connecticut hat Schwierigkeiten, eine Viertelmillion Neuanmeldungen mit den 40 Jahre alten Systemen des Staates zu bearbeiten.
Es handelt sich um ein weit verbreitetes und tief verwurzeltes Problem. Ein Bericht des Government Accountability Office aus dem Jahr 2016 listete COBOL-Systeme auf, die auf Mainframes laufen, die bis zu 53 Jahre alt sind. Dazu gehören Systeme zur Verarbeitung von Daten des Department of Veterans Affairs, des Department of Justice und der Social Security Administration.
Warum nicht gestern migrieren und modernisieren?
Die Modernisierung dieser Legacy-Systeme ist nicht so einfach, wie es scheint. Die Systeme sind kritische Dreh- und Angelpunkte, an denen sich die Finanz-, Regierungs- und Wirtschaftswelt rund um die Uhr dreht. Der Code ist alt, komplex und oft schlecht oder gar nicht dokumentiert. Er muss jedoch immer funktionieren. Das Vorhaben wurde mit dem Entfernen von Propellern eines Flugzeugs und dem Einbau von Düsentriebwerken verglichen – während des Fluges.
Abgesehen von dem Risiko ist das wirtschaftliche Argument für die Migration auf moderne Systeme ebenfalls schwierig. Die Geldbeträge, die investiert wurden, um diese Mainframes und COBOL-Anwendungen am Laufen zu halten, sind erstaunlich. Sollen die Institutionen alles verwerfen und von vorne anfangen, solange dieser COBOL-Code noch läuft und funktioniert? Dies ist ein schwieriges Argument für einen Vorstand, der wahrscheinlich nicht besonders technikaffin ist. Eine COBOL-Migration ist weder kostengünstig noch schnell zu realisieren.
„Ich habe gerade eine Umstellung von COBOL auf Java hinter mir“, sagte Hinshaw. „Sie haben vier Jahre gebraucht, und sie sind immer noch nicht fertig.“
Als die Commonwealth Bank of Australia ihre COBOL-Kernplattform im Jahr 2012 ersetzte, dauerte es fünf Jahre und kostete letztendlich 749,9 Millionen US-Dollar (1 Milliarde australische Dollar).
Und das, wenn alles nach Plan läuft. Die britische Bank TSB musste 2018 aufgrund einer Übernahme von einem COBOL-basierten System migrieren. Das ging schief. Da die Bank tagelang nicht handlungsfähig war, beliefen sich die Kosten der Migration auf 330 Millionen Pfund. Hinzu kamen die budgetierten Kosten für die Engineering-Arbeiten für die eigentliche Migration. TSB verlor zudem 49,1 Millionen Pfund durch Finanzbetrug, während ihre Systeme zusammenbrachen.
Die Kundenerstattungen überstiegen 125 Millionen Pfund und die Bank musste 122 Millionen Pfund ausgeben, um neue Mitarbeiter einzustellen, die die 204.000 Kundenbeschwerden bearbeiten sollten. Der Vorstandsvorsitzende trat zurück und das Unternehmen versucht noch immer, den Schaden zwei Jahre nach dem Vorfall zu beseitigen.
Das COBOL-Rätsel
Der aktuelle Zustand kann nicht so bleiben, aber die Aussicht, etwas dagegen zu unternehmen, ist wenig verlockend. Dennoch wird es nur durch kontrollierte und behutsame Migrationen auf moderne Soft- und Hardware besser.
Um dies ohne Unterbrechung, Datenverlust und Ausfallzeiten zu erreichen, sind modernes Know-how und Geld erforderlich, was die eine Hälfte der Gleichung darstellt. Die andere Hälfte sind COBOL-Experten und Zeit. Leider sind das die beiden Zutaten, die uns fast ausgehen.
Vielleicht reitet ja eine neue Generation von COBOL-Cowboys in die Stadt.