Fool bleibt Fool, da hilft kein Tool

14.08.1992

Der deutsche Philosoph Ernst Bloch hat das Prinzip Hoffnung, das heißt die Sehnsucht nach einer besseren Welt, als die treibende Kraft der menschlichen Entwicklung postuliert. Der Mensch brauche Modelle, beziehungsweise Religionen oder Ideologien, an denen er sich orientieren kann. Sonst läßt er sich nur treiben, in welche Richtung auch immer.

Weltpolitisch gesehen sind wir Menschen zur Zeit ziemlich orientierungslos. Die alten Modelle haben ihre Anziehungskraft verloren, sie haben uns enttäuscht, die neuen Modelle sind noch nicht praxiserprobt. Es gibt zwar Hoffnung, aber keiner weiß, worauf. Es fehlen greifbare Zukunftsvisionen. Um so mehr schauen die Menschen in solchen Zeiten zurück in die Vergangenheit und suchen dort nach Leitmotiven.

In der Miniwelt der Informatik unterliegen wir Informatiker den gleichen Stimmungswogen wie die Menschen allgemein. Da wir ebenfalls vom Prinzip Hoffnung leben, lassen wir uns von neuen Zukunftsmodellen leicht hinreißen, und wenn diese Modelle unsere Lage nicht gleich verbessern, sind wir ebenso schnell enttäuscht. Auf die Begeisterung für eine Zukunft, in der alles besser wird, folgt die Vorliebe für eine Vergangenheit, in der alles nicht so schlecht war. Zur Zeit ist die Informatik in einem Zwiespalt zwischen realitätsfremden Zukunftsvisionen und einer bedrückenden Altlast, die nichts anderes ist als eine Aufhängung bisheriger Versuchsergebnisse.

Die Modelle der Vergangenheit haben enttäuscht, nicht etwa deshalb, weil sie nichts genutzt hätten, sondern weil wir zuviel von ihnen erwartet haben. Trotz höherer Programmiersprachen, einzelner Werkzeuge und allerlei Methoden bleibt die Entwicklung und Wartung komplexen Anwendungssysteme mühselig, arbeitsintensiv und unkalkulierbar. Andererseits sind einige Fortschritte gemacht worden, sowohl in der Qualität als auch in der Produktivität. Nur sind diese Fortschritte weit hinter unseren Erwartungen zurückgeblieben. Ein Fool mit einem Tool ist immer noch ein Fool. Die Fähigkeit des Menschen ist immer noch ein maßgeblicher Faktor in jedem Softwareprojekt. Neue Sprachen und Werkzeuge haben den Unterschied weiter verstärkt, ebenso wie die moderne Technologie die Kluft zwischen wohlhabenden und armen Völkern nur vertieft. Der große Durchbruch ist ausgeblieben.

An Zukunftsmodellen mangelt es nicht in der visionären Welt der Informatik. Integrierte CASE-Umgebungen wie AD/ Cycle und Cohesion versprechen eine Revolution in bezug auf die Art und Weise, wie wir Software entwickeln und warten. Endlich soll es eine durchgängige Unterstützung der Aufgaben mit einer zentralen Ablage der Ergebnisse geben, die natürlich von jedem leicht bedienbar ist. Ein weiteres Zukunftsmodell ist die objektorientierte Entwicklung. Softwarebausteine werden dadurch klein und wiederverwendbar. Außerdem sollen sie miteinander beliebig verknüpfbar sein. Jeder kann mit jedem kommunizieren. Endlich soll es saubere intermodulare Schnittstellen in einer offenen Architektur geben, eine Architektur die praktisch von selbst aus der Problemstellung folgt.

Schließlich stehen uns echte verteilte Systeme bevor, Client-Server-Systeme nämlich, die die Vorteile zentraler Daten- und Funktionsbasen mit den Vorteilen dezentraler Verarbeitung und Datenpräsentation verbinden. Die Benutzeroberfläche wird durch Window-Techniken individuell gestaltbar sein. Gleichzeitig sind alle Daten und Funktionen für jeden beliebig abrufbar. Genormte Schnittstellen erlauben eine Kommunikation über System- und Programmiersprachen hinweg.

Alles scheint von weitem gesehen sehr verheißungsvoll, aber wer näher hinschaut, kommt schnell dahinter, wie unausgereift diese Zukunftsmodelle in Wirklichkeit sind. Die vielversprechenden integrierten CASE-Systeme sind in der Tat nur Umrisse einer potentiellen Tool-Umgebung. Die wichtigsten Bausteine wie das MVS-Repository sind noch nicht einsatzreif, viele Bausteine fehlen, und die hochgepriesenen Verbindungen sind größtenteils nur Vorschläge. Bis Produktionsumgebungen wie AD/Cycle und Cohesion in vollem Umfang zur Verfügung stehen, werden Jahre vergehen. Bis sie wirklich ausgereift sind, dürfte mindestens ein Jahrzehnt vergehen. Also werden Systeme dieser Art kaum einen Einfluß auf die Zukunft haben. Sie dienen vielmehr als Fata Morgana für Führungskräfte, die in der Softwarewüste orientierungslos herumirren.

Objektorientierte Software-Entwicklung ist im Prinzip eher realisierbar. Der Anwender ist hier nicht auf ferne Herstellerlaboratorien angewiesen, die irgendwann einmal ein gewisses Produkt liefern werden. In diesem Fall ist die Technologie größtenteils bereits vorhanden. Es gibt Sprachen, Bibliotheken, Methoden und sogar Umgebungen. Was es aber nicht gibt, sind genügend Entwickler, die damit umgehen können. Die Ansprüche an die Anwender dieser Technologie sind äußerst hoch, die Ansprüche an die Organisatoren noch höher. Welcher Betrieb ist heute in der Lage, eine Bibliothek wiederverwendbarer Klassen zu verwalten? Wer trägt die Kosten für solche Bibliotheken? Und wo sind die Vorgehensmodelle für komplexe objektorientierte Vorhaben? Die objektorientierte Programmierung stößt schnell auf Grenzen. Die Frage ist die, ob sie sich überhaupt auf große kommerzielle Informationssysteme übertragen läßt. Der Beweis hierfür steht noch aus. Die Vermutung liegt nahe, daß wir uns wieder zuviel von einem Modell versprechen. Die Komplexität der Vererbung und der Nachrichtenvermittlung erzwingt eine baldige Ernüchterung in Sache Objektorientierung.

Letztlich haben wir noch die verteilten Systeme als Leitbild. Man braucht aber nur etwas genauer hinzuschauen, um auch hier die leeren Flächen und Risse im Bild zu erkennen. Es beginnt damit, daß das Problem der redundanzfreien, konsistenten, verteilten Datenbanken noch nicht gelöst ist. Dies ist immer noch ein Forschungsthema. Hinzu kommt das noch unreife Sicherheitskonzept der meisten offenen Netze. Der Teufel liegt eben im Detail. Mechanismen wie externe Prozeduraufrufe bergen große Gefahren in sich und müssen mit Vorsicht behandelt werden. Und mit der Normierung der, Software-Schnittstellen ist es in der Tat lange noch nicht soweit wie allgemein vermutet. Jede Unix-Umgebung hat ihre eigenen Tücken, die jeder erst entdecken muß. Die Anstrengungen zur Entwicklung eines sicheren, funktionsfähigen verteilten Anwendungssystems sind enorm und kaum abschätzbar. Demzufolge ist dieses Modell vorerst nur den Reichen und den Mutigen vorbehalten.

Was bleibt uns also übrig für die nächste Zukunft? Gibt es gar nichts, worauf wir unsere Hoffnungen setzen können? In Anbetracht der hohen Risiken, die mit den neuen Modellen verbunden sind, erscheint die Softwaretechnologie von gestern in keinem so schlechten Licht. Man weiß wenigstens, was man hat. Man kann weiterarbeiten wie bisher mit den Sprachen, die wir beherrschen, mit Datenbanksystemen, die zwar umständlich, aber sicher und effizient funktionieren und mit den klassischen ausgereiften TP-Monitoren, deren Tücken wir alle kennen. Es bedarf nur einer gelegentliche Sanierung, um die heutigen Anwendungssysteme noch Jahre lang am Leben zu erhalten - zum Beispiel bis der amtierende Org./DV-Leiter in Ruhestand geht. Die Versuchung, alles beim alten zu lassen, ist groß. Aber wenn alles so bleibt, wie es ist, wo ist dann die Hoffnung auf eine bessere Zukunft?

AIs Menschen, die vom Prinzip Hoffnung geleitet werden, sind die Informatiker verpflichtet, neue Modelle nicht nur auszudenken, sondern auch umzusetzen. Fest steht, daß es müßig ist, über die Kosten und den Nutzen neuer Softwaretechnologien zu rätseln. Die Umsetzung der neuen Modelle wird viel kosten und lange dauern. Auf keinen Fall dürfte es einfach sein, und am Ende werden viele enttäuscht. Der Nutzen wird sich erst viel später herausstellen. Nichtsdestotrotz werden alle ermuntert, auf die neuen Modelle hinzusteuern, auch wenn es manche die Karriere kostet. Wer zu lange zögert, wird ebenfalls vom Lauf der Dinge überholt. Die Anwenderbetriebe dürfen nicht warten, bis andere die Wege für sie geebnet haben. Sie müssen selbst die Initiative ergreifen. Die Informatik ist zum Experimentieren verurteilt.