Melden Sie sich hier an, um auf Kommentare und die Whitepaper-Datenbank zugreifen zu können.

Kein Log-In? Dann jetzt kostenlos registrieren.

Falls Sie Ihr Passwort vergessen haben, können Sie es hier per E-Mail anfordern.

Der Zugang zur Reseller Only!-Community ist registrierten Fachhändlern, Systemhäusern und Dienstleistern vorbehalten.

Registrieren Sie sich hier, um Zugang zu diesem Bereich zu beantragen. Die Freigabe Ihres Zugangs erfolgt nach Prüfung Ihrer Anmeldung durch die Redaktion.

28.10.1988 - 

Unternehmensberater schlägt unkonventionelle Lösung des "Softwareproblems" vor:

Ganzheitliches Denken statt mächtiger Tools

Während die Hersteller das sogenannte Software-Problem stets von der technischen Seite angehen, will Manfred Gahr* nicht die Tools, sondern die Denkprozesse optimieren. "Superprogramming", wie er das Ergebnis dieser Umorientierung nennt, sei keine graduelle Verbesserung, sondern ein "Quantensprung" in Richtung Effektivität und Softwarequalität.

In den letzten Jahren gab es viele Anstrengungen, die Probleme bei der Softwareentwicklung durch technische und organisatorische Verbesserungen in den Griff zu bekommen. Dies hat teilweise zu wesentlichen Erfolgen geführt. Interessanterweise lag jedoch bisher der Schwerpunkt ausschließlich bei der methodischen Weiterentwicklung. Ein wichtiger Bereich wurde wenig berührt: die kognitiven Prozesse derjenigen, die Software entwickeln.

Es ist unmittelbar einleuchtend, daß ein Systemmanager, der die inneren Abläufe einer Rechenanlage kennt, deren Leistungsfähigkeit wesentlich besser ausschöpfen kann als jemand, für den die Maschine eine Black Box ist. Im kognitiven Bereich ist es nicht anders: Die Default-Parameter unseres Gehirns sind vermutlich noch auf Beerenpflücken und die Orientierung im Urwald eingestellt - ganz sicher nicht auf die Entwicklung komplexer Softwaresysteme. Nur durch Wissen über mentale Prozesse lassen sich die Ergebnisse optimieren.

Vermutlich haben Sie eine ähnliche Situation schon einmal erlebt: Seit Wochen schieben Sie eine Arbeit vor sich her, es geht nicht so recht weiter, alles läuft furchtbar zäh, eine Korrektur ergibt den nächsten Fehler. Schließlich naht die unverrückbare Deadline, und Sie entschließen sich, eine Nacht dranzuhängen.

In einem kleinen Team arbeiten Sie völlig ungestört, kein Telefon klingelt, alle Ressourcen sind verfügbar. Und in dieser Nacht schaffen Sie oder das Team mehr als in den drei Wochen vorher. Nicht nur, daß es schneller geht; die Qualität stimmt auch. Mancher Programm-Fleckerlteppich ist in den Papierkorb gewandert und wurde durch Besseres ersetzt. Zu guter Letzt fühlen Sie sich zwar müde, aber innerlich ausgeglichen und befriedigt.

Derartige Zustände stark erhöhter Produktivität treten bei vielen Menschen sporadisch auf; die wenigsten können sich erklären, warum das passiert, noch können sie einen derartigen Zustand gezielt herbeiführen. Doch einer der Punkte, in dem sich ein Spitzen-Manager oder ein Entwicklungs-Crack vom Durchschnitt unterscheidet, ist die Häufigkeit und Reproduzierbarkeit von Phasen überdurchschnittlicher Kreativität und Effizienz.

In einem von Herstellerseite gesponserten Forschungsobjekt haben wir diese Zustände erhöhter Leistungsfähigkeit bei Software-Entwicklern in verschiedenen Computerfirmen untersucht. Wir wollten wissen, was diese Zustände bedingt, ob sie reproduzierbar sind und ob man diese Arbeitstechniken anderen Menschen verfügbar machen kann.

Wir stellten fest, daß es sehr unterschiedliche Fähigkeiten und Methoden gibt, sich in einen solchen Zustand zu versetzen. Sind auch die Bootstrap-Methoden unterschiedlich - ist der Zustand einmal erreicht, so ähneln sich die mentalen Strategien stark. Das gilt unabhängig vom Arbeitsgebiet, sei es nun Chip-Design, Management oder Softwareentwicklung.

Folgende wesentliche mentale Strategien haben wir bei den untersuchten Spitzenkräften gefunden:

* intensive Nutzung mentaler Bilder und dreidimensionaler Visualisierungen,

* Integration dieser Bilder in andere Wahrnehmungssysteme,

* gezielte Nutzung unterbewußter Prozesse zur Ideenfindung und Problemlösung und

* Kombination von kreativ-intuitivem mit logisch-analytischem Denken.

Die Quintessenz daraus ließe so manchem Projektmanager die Haare zu Berge stehen: Programmkonzepte entstehen beim Phantasieren; Software wird in den Köpfen der Entwickler zu Planetensystemen, freischwebenden Schuhkartons oder eleganten Villen. Während der eine einen Programmfehler als schiefhängende Treppe visualisiert, sieht ein anderer ein Atomkraftwerk in einer Flußlandschaft.

Bei nur zehn Systementwicklern konnten wir über 300 verschiedene visuelle Symbole isolieren, mit Hilfe derer sie sich Software vorstellen. Gute Ideen entstehen auch nicht immer am Schreibtisch: Bei dem einen zündet es morgens in der Dusche, der andere hat seine Einfälle beim Squash-Spielen, Tanzen, Daherlaufen, Meditieren oder dann, wenn er gerade bei der Tagesschau eingenickt ist.

Das Herumnagen an einem Problem ist eine sehr ineffiziente Methode, eine Lösung zu finden. Spitzenkräfte, so fanden wir heraus, definieren ein Problem, definieren eine mögliche Lösung - und hören dann auf, sich darum zu kümmern. Stunden, Tage oder Wochen später, manchmal in einer völlig unvermuteten Situation, taucht ein Lösungsansatz auf, der oft sehr geradlinig zum Ziel führt.

Was hier so chaotisch klingt, hat in Wirklichkeit Methode. Metawissen über mentale Prozesse ermöglicht es, dieses Chaos zu durchschauen und nutzbar zu machen. Denn genau wie ein Rechner verfügt das menschliche Gehirn über verschiedene "Devices" mit unterschiedlichen Eigenschaften und Fähigkeiten.

Da wäre zunächst das linguistische System; es ist für das Verstehen und die Übertragung verbaler Kommunikation sowie für den "inneren Dialog" zuständig. Die meisten Menschen setzen "denken" gleich mit "zu sich selbst reden"; denn unser Erziehungssystem betont diese Art des Denkens sehr stark. Das linguistische System ist aber eigentlich für die Übertragung von Informationen ausgelegt, was nichts anderes bedeutet, als daß es linearer, sequentieller Natur ist und relativ langsam arbeitet. Man könnte es mit einer seriellen V.24-Schnittstelle vergleichen.

Beim Verstehen von Sprache bildet der Mensch aus zusammenhängenden Wörtern sogenannte Superzeichen, die zu Superzeichen immer höherer Ordnung zusammengefaßt werden, bis ein Satz verstanden ist. Unter Psychologen ist man sich ziemlich einig darüber, daß ein Mensch Sprache dann nicht mehr ohne weiteres versteht, wenn sie die Bildung von mehr als sieben Superzeichen erfordert.

Dies läßt sich einfach anhand des nächsten Satzes demonstrieren, der die Bildung von etwa zehn Superzeichen verlangt: Das Haus, das dort an dem Flüßchen, das sich malerisch durch das Tal wand, stand, welches meiner Mutter, sie war gerade nicht da, ich glaube, sie war in Italien, gehörte, und dessen Farbe, als das Gewitter, das so viel Schaden angerichtet hatte, wütete, herunterkam, wurde neu gestrichen.

Da verbales Denken langsam und sequentiell ist, muß es notwendigerweise scheitern, wenn es um vernetzte, komplexe Systeme geht. Sprache hat einen sehr lokalen logischen Bereich. Es ist schwer, etwa ein Netzwerk mit Sprache zu beschreiben. Aufgrund der Limitierung auf sieben Items kommt es bei verbalem Denken auch schnell zu einem "Memory-Overflow".

Menschen handhaben dieses Problem genauso wie ein Rechner: Sie lagern Informationen aus; sie machen sich Notizen. Wenn ein Rechner "Pages" auslagert, wird er langsam, wenn er Prozesse auslagert, wird er wesentlich langsamer. Am langsamsten aber ist es, sich Notizen zu machen. Anstatt die enorme Leistungsfähigkeit des Gehirns zu nutzen, wird ein externes Medium mit etwa 100 Baud Übertragungsgeschwindigkeit eingesetzt.

Zusätzlich nötigt diese Methode den Denker, sein System in kleinste Informationseinheiten zu zerlegen; das ist gut, um ein Buch über mathematische Axiome zu schreiben, der Gesamtüberblick über ein Softwaresystem geht aber sofort verloren. Darin liegt eine der wesentlichen Ursachen für Spaghetti-Programmierung oder Inkonsistenzen im Systemdesign.

Neben dem linguistischen verfügt unser Gehirn jedoch auch über ein visuelles System; es nimmt optische Sinneseindrücke wahr und umfaßt den Bereich bildlicher Vorstellungen. Visualisierungen sind detailliert, schnell modifizierbar, mehrdimensional und erlauben es, ein System von verschiedenen Blickwinkeln aus zu betrachten. Es wird sogar behauptet, das visuelle System sei bis zu zehnmillionenmal leistungsfähiger als das linguistische, was die Verarbeitungsgeschwindigkeit betrifft. Stellen Sie sich nur einen blinden Piloten im Tiefflug vor, dem Sie beschreiben müßten, was gerade auf ihn zukommt...

Die meisten kognitiven Aufgaben können wir Menschen gar nicht anders als durch Visualisierungen lösen. Visuelles Denken ist so allgegenwärtig, daß es kaum jemandem bewußt ist. Fragen Sie jemanden: "Was haben Sie heute morgen gegessen?"; er wird ein visuelles Bild zurückrufen. Viele Ausdrücke in unserer Sprache spiegeln visuelles Denken wider: klarer sehen, die Lösung vor Augen haben, das erscheint nebulös, eine durchsichtige Angelegenheit etc.

Wir fanden heraus, daß Visualisierungen intensiv von professionellen Softwaredesignern genutzt werden. Komplexe Systeme lassen sich gar nicht anders planen und warten als durch Visualisierung und Mustererkennung. Computer benötigen aber sprachliche Informationen, keine Bilder. Daher müssen mentale Bilder einem Transformationsprozeß unterworfen werden, wobei sie, da sie unbewußt sind, leider meistens zerstört werden.

Bestimmt haben Sie folgendes schon erlebt: Sie haben lange über ein Problem nachgedacht - plötzlich wissen Sie, wie Sie es lösen werden. Sie gehen zum Schreibtisch, um die Lösung niederzuschreiben. Während Sie schreiben, verschwindet die Lösung - was eben noch völlig klar war, ist wieder in Konfusion versunken. Sie lehnen sich zurück und denken erneut nach. Da kommt die Lösung zurück. Sie beginnen wieder zu schreiben, und der Zyklus wiederholt sich.

Dies ist ein klassisches Beispiel dafür, daß eine unbewußt visualisierte Problemlösung während der Ausgabe zerstört wird. Man kann dies auch sofort an der Häufigkeit von Korrekturen und der logischen Konsistenz einer Niederschrift erkennen. Ein erster Schritt in Richtung "Superprogramming" besteht also darin, das bildliche Vorstellungsvermögen zu trainieren, abstrakte Dinge wie ein Programmsystem oder Datenstrukturen zu visualisieren, und zu üben, Visualisierungen bei der Niederschrift präsent zu behalten. Dies allein kann schon einen Leistungszuwachs um den Faktor 10 bewirken.

Wenn wir ein menschliches Wesen von der Informationsverarbeitung her betrachten, so stellen wir fest, daß es ungeheure Datenmengen unter Realtime-Bedingungen verarbeiten muß. Der Mensch hat dabei die gleichen Anforderungen zu erfüllen wie ein DV-System: Er muß schnell sein, fehlerarm und flexibel; er muß fähig sein, dazuzulernen - und man sollte ihn auch mögen können.

Insofern ist also Datenverarbeitung gar nichts Neues. Der Mensch benutzt nun sein visuelles und auditives System für die schnelle Informationsaufnahme und Vorverarbeitung. Wenn es aber darum geht, Entscheidungen zu fällen, dann ist das sogenannte kinesthetische System an der Reihe.

Dieses System ist zunächst einmal für Körperfunktionen, Bewegungen und unser körperliches Befinden zuständig. Darüber hinaus schreibt man ihm aber auch Emotionen, Bewertungen und Intuitionen zu. Dieses älteste Sinnessystem verrichtet seine Arbeit ziemlich unscheinbar, aber präzise und schnell. Unser Überleben hängt seit Millionen von Jahren von seinem fehlerfreien Funktionieren und Reagieren ab.

Die Tatsache, daß unsere Entscheidungen vom kinesthetischen System bestimmt werden, macht sich dadurch bemerkbar, daß wir Bewertungen meistens mit Worten ausdrücken, die dem Fühlen entlehnt sind: eine glatte, elegante Lösung, das ist holzig, ein zähes Problem, ein glitschiger Typ, eine nicht abgerundete Sache.

Versuchen wir in die Zukunft zu sehen, also die Konsequenzen einer Entscheidung zu simulieren, dann pendelt der Denkprozeß zwischen dem visuellen und dem kinesthetischen System hin und her: Wir stellen uns etwas vor, bewerten die Vorstellung, modifizieren sie, bewerten sie wieder etc.

Es gibt nun eine Reihe von Entwicklern, die auch Datenstrukturen auf diese Art entwickeln. Sie stellen sich die Struktur vor, "fühlen" an dem Bild, modifizieren es, fühlen wieder und so fort. Der Clou an der Sache ist, daß der Debugging- und Optimierungsprozeß geschlossen im Gehirn abläuft - mit einer unglaublichen Geschwindigkeit - viel schneller, als es mit Hilfe von Niederschriften oder grafischen Darstellungen und deren Modifikationen jemals möglich wäre.

Wer etwas Übung hat, kann anstelle frustrierender Editier-Sessions einen Entwurf, sei es nun ein Programm oder ein Vortrag, so lange im Gehirn hin- und herjonglieren, bis die Lösung reif und rund ist, um sie dann in einem Rutsch in den Rechner oder das Diktiergerät zu bannen. Und weil der Vorgang dem natürlichen Denken entspricht, nenne ich ihn "natürliches Programmieren".

Hier sind wir nun - fast - beim ganzheitlichen Denken angelangt: das visuelle System für die bildhafte Vorstellung abstrakter Systeme, das kinesthetische System zur Bewertung und Korrektur, das linguistische System zur Kommunikation mit Mensch und Maschine. Einige Entwickler beziehen stets auch das innere Verbalisieren in den Entwicklungsprozeß ein, nach dem Motto: Wenn ich etwas nicht formulieren kann, dann ist es noch nicht komplett durchdacht.

Ich habe bisher so getan, als würde der mentale Prozeß ausschließlich im Bewußten und unter unserer willentlichen Kontrolle ablaufen. Das ist mit Sicherheit nicht so. Wir fanden, daß gute Softwareentwickler unterbewußten Vorgängen bei der Problemlösung und Ideenfindung vertrauen. Viele versuchen gar, diese Vorgänge durch bestimmte Techniken gezielt zu fördern, beispielsweise durch Meditation oder Joga. Das ist gar nicht so abwegig, wenn man bedenkt, wie viele Alltagsprobleme nicht durch Nachdenken, sondern durch plötzliche "Eingabe", woher sie auch immer kommen mag, gelöst werden.

Was sich hinter dem Modewort "whollistisches Denken" verbirgt, ist schlicht der Einsatz aller Bereiche unseres Hirns: Logik, Bilder, Fühlen, Intuitionen, Sprache, bewußtes und unterbewußtes Denken. Beim Rechner haben wir uns an das reibungslose Zusammenspiel der verschiedenen Devices und Prozeßarten längst gewöhnt - warum also nicht beim menschlichen Denken auch?

Spätestens hier verlassen wir die Welt objektiv beobachtbarer Phänomene und sind im Bereich der Persönlichkeit gelandet. Doch auch diese findet sich, so konnten wir feststellen, in der Software wieder: Vergleichen Sie nur die Benutzeroberfläche eines Apple-Macintosh mit der einer IBM-Maschine nach altem Muster, und versuchen Sie, sich die Unterschiede im Menschenbild und Kommunikationsverhalten der Entwicklungsmannschaft vorzustellen!

Wir stehen in einem Umbruch vom monokausalen und linearen Denken in isolierten Problemlösungen hin zu komplexem, vernetztem und systematischem Denken - in der DV genauso wie in der Politik und der Ökologie. Die hier beschriebene Technologie ist dafür ein gutes Beispiel. Verwechseln Sie sie aber nicht mit der Wahrheit -sie ist ein Modell, das nur solange Gültigkeit hat, bis ein brauchbareres gefunden ist!