Ein Volk von Programmieren

31.10.1980

Software Engineering Services GmbH, München und Budapest

In der Bundesrepublik beklagt sich heute jeder über den Mangel an Programmierern. Der Markt ist leergefegt, heißt es. Und auch in den USA sind Programmierer so gefragt, daß sie es sich erlauben können, alle 18 Monate die Stelle zu wechseln, mit einem erheblichen Gehaltszuwachs. Immer mehr wichtige Projekte werden wegen mangelnder Programmierkapazität verschoben, denn die wenigen Programmierer, die es gibt, sind zum größten Teil mit der Erhaltung der bestehenden Programme - sprich Wartung beschäftigt. Diese Situation ist zweifelsohne frustrierend, nicht zuletzt für die Computerhersteller, deren Kapazität, neue Hardware zu produzieren, offenbar unbegrenzt ist. So gibt es Großrechner, Mittelrechner, Mikrorechner, Tischrechner und Taschenrechner, die alle irgendwie programmiert werden müssen. Aber wo sollen die vielen Programmierer denn herkommen? Einige suchen die Lösung in Standardprogrammen, die nur einmal erstellt und von vielen verwendet werden. Diese Lösung entspricht in etwa dem Fahren mit dem Omnibus und hat die gleichen Vor- und Nachteile. Insofern, als der Bus genau dorthin fährt, wo wir hin wollen, und zu dem Zeitpunkt, an dem wir wollen, ist es uns recht. Sonst fahren wir doch lieber mit dem eigenen Auto. Und leider gibt es in der Datenverarbeitung ungefähr so viele Lösungsmöglichkeiten, wie es im Verkehrsnetz Fahrstrecken gibt. Also wird die individuelle Lösung trotz aller Standardisierungsbemühungen das Hauptverkehrsmittel bleiben.

Andere suchen die Lösung in einem massiven Ausbildungsprogramm für Programmierer. Ich bin inzwischen aber anderer Meinung. Egal, wie viele Programmierer wir ausbilden, wir werden niemals so viele haben, wie es Aufgaben zu programmieren gibt, genausowenig, wie wir jemals genügend Chauffeure haben könnten für jeden, der Auto fahren will. Der Programmierbedarf wächst exponentiell im Verhältnis zum Programmierangebot. Es gibt meiner Meinung nach nur eine Lösung, und zwar, die Programmierung wie das Autofahren so zu vereinfachen, daß es jeder selbst kann, das heißt Delegierung der Programmierung an die Endbenutzer. Natürlich wird es immer Programmaufgaben geben, die sich nicht delegieren lassen. Man würde einem Sonntagsfahrer auch keine Transportlaster überlassen. Aber das Gros der Anwendungen kann der Programmkonsument selbst erledigen. Man muß die Programmierung nur entzaubern.

Viele Leser mögen über diese Äußerung schockiert sein - vor allem aus dem Munde eines Berufsprogrammierers. Man muß jedoch erkennen, daß Programmieren, trotz allem, was Dijkstra und andere Starprogrammierer gesagt haben, kein wirklicher Beruf ist. Er ist stets nur eine Nebensächlichkeit. Die Starprogrammierer sind im Grunde genommen gar keine Programmierer, sondern Mathematiker, Ingenieure oder Software-Monteure. Denn programmieren tut jeder, der einen Ablauf oder einen Algorithmus definiert. Ein Manager programmiert, wenn er einen Fertigungsprozeß entwirft. Ein Arzt programmiert, wenn er die Beziehungen zwischen Symptomen und Behandlung beschreibt. Eine Hausfrau programmiert, wenn sie ein Kochrezept erfindet. Und ein Sachbearbeiter programmiert, wenn er seinen Arbeitsvorgang festlegt. Jeder beschäftigt sich mit Handlungen (Funktionen) auf Objekten (Daten) und deren Sequenz, beziehungsweise Auswahl, beziehungsweise Wiederholung. Das, was sie unterscheidet, ist die Art der Handlungen und Objekte sowie die Notation, mit der sie diese ausdrücken, wobei die beiden eng miteinander verknüpft sind.

Wenn es so ist, wenn in der Tat jeder, der ein Problem zu lösen hat, sowieso programmieren muß, warum brauchen wir noch Spezialisten, um es nochmals für sie zu programmieren? Es gibt zwei Antworten. Zum einen haben viele Menschen die gleiche Einstellung zum Programmieren wie ich zum Autofahren. Sie empfinden es als lästig, ihre Gedanken zu präzise zu formulieren und würden es stets vorziehen, dies einem anderen zu überlassen. Der Mensch ist eben bequem.

Zum anderen müßte er sich, wollte er sein Problem nach dem heutigen Stand der Programmiertechnik lösen, mit einer ganzen Reihe rein EDV-technischer Vorgänge beschäftigen, die mit der Lösung seines Problems nur am Rande zu tun haben - zum Beispiel der Bereitstellung, Aufbewahrung und Darstellung seiner Objekte, dem Anschluß an irgendwelche Geräte und der Behandlung von Ausnahme- beziehungsweise Fehlersituationen. Ein einziges solches Randproblem allein wäre genug, um ihm seine Programmierlust zu verderben, erst recht, wenn er so esoterische Schnittstellen wie DL/1, Codasyl, DBMS oder KDBS zu bedienen hat. Der Mensch wird durch die vielen Nebenerscheinungen des Programmierens überfordert. Es ist, als ob der Autofahrer vor jeder Fahrt die Reifen erst anmontieren müßte.

Was sollten wir DV-Spezialisten tun, um das Programmieren zur Nebensächlichkeit eines jeden Berufes zu degradieren und dadurch den Programmierengpaß ein für allemal abzuschaffen? Was wir auf jeden Fall nicht tun sollen, ist noch mehr reine Programmierer auszubilden. Damit kreieren wir nur noch mehr Probleme. Nein, wir müssen anders vorgehen. Wir Berufsprogrammierer sprich Software-Monteure, müssen uns darauf konzentrieren, einfache und stabile Werkzeuge für die Massen zu bauen, Werkzeuge die es den Menschen erlauben, ihre eigenen Bedürfnisse zu befriedigen.

Zum Schluß möchte ich sagen, daß unser Schicksal unausweichlich ist. Die Technik schreitet stets voran. Die internationale Konkurrenz wächst. Will eine Land wie Deutschland seinen technologischen Vorsprung behalten, so bleibt den Deutschen nichts anderes übrig, als ein Volk von Programmierern zu werden. Die Umstellung wird sicherlich nicht von heute auf morgen geschehen. Sie erfordert einen nicht unerheblichen Ausbildungsaufwand, von der Investition in die Entwicklung der Programmierwerkzeuge nicht zu sprechen. Nichtsdestotrotz bin ich optimistisch. Denn es gibt nur eins, was meinen dreijährigen Sohn mehr fasziniert als Autos, und zwar der Computer.