„Ganz schön kompliziert“ stöhnt der Schüler im Mathe-Unterricht. „Das ist ja das reinste Chaos!“ stellt der Reisende fest, der eine große Straßenkreuzung in Indien beobachtet. „Eine ziemlich komplexe Angelegenheit!“ meint der Taxifahrer, der die Fahrtzeit von A nach B im Berufsverkehr vorher sagen soll.
So weit kennen und verstehen wir diese Begriffe und irgendwie wissen wir, dass es einen Unterschied zwischen komplex und kompliziert gibt. Ob wir diesen Unterschied aus dem Stand weg definieren können, ist eine andere Frage.
Da agile Methoden den Anspruch haben, komplexe Systeme steuern zu können, und die Systemtheorie noch dazu nicht nur Definitionen, sondern auch Lösungsstrategien für diese unterschiedlichen Typen von Systemen parat hat, lohnt sich ein genauerer Blick.
Die Systemtheorie kennt das sogenannte „Cynefin Framework“, das die vier Haupt-Domänen ‚einfach’, ‚kompliziert’, ‚komplex’ und ‚chaotisch’ benennt. Jeder dieser Typen besitzt eine eigene Analyse- und Handlungslogik. Wer also versteht, mit welchem System er es zu tun hat, kann sein Vorgehen darauf abstimmen.
Ursache und Wirkung. Ich drücke den Lichtschalter und die Lampe geht an, ich drücke ihn erneut und die Lampe geht aus. Hier bedarf es keiner besonderen Analyse, man geht nach der einfachen Vorgehenskette „Wahrnehmen – Beurteilen – Reagieren“ vor.
Hier ist nicht sofort erkennbar, wie Ursache und Wirkung zusammen hängen. Es bedarf der genaueren Analyse oder besonderem Wissen, um die Zusammenhänge zu durchschauen. Das Vorgehen zur Lösungsentwicklung ist hier: Wahrnehmen – Analysieren – Reagieren.
Dies ist die Domäne der Betriebsanleitungen und Spezialisten. Fast alle technischen Systeme sind kompliziert: Als Laie erscheint es mir ziemlich undurchschaubar, wie ein Auto oder auch eine Software funktioniert. Als Ingenieur oder Entwickler dagegen kann ich das System verstehen und dann, wenn ich mich damit vertraut gemacht habe, zielgenaue Handlungen vollziehen. Software, die über Jahre und unzählige, womöglich unabgestimmte Entwickler hinweg zum undokumentierten Wildwuchs verkommen ist, kann jedoch zum komplexen System geworden sein, dass nicht mehr vorhersagbar ist.
Denn bei komplexen Systemen hilft kein theoretisches Fachwissen und keine Bedienungsanleitung mehr. „Probieren – Wahrnehmen – Reagieren“ ist hier die Handlungskette, wobei mit „Probieren“ kein zufälliges Try-and-Error gemeint ist, sondern das bewusste Bilden und Überprüfen von Hypothesen.
Das Prinzip „Build – Measure – Learn“ in der Lean Produktentwicklung meint nichts anderes: Zwar besteht ein Zusammenhang zwischen Ursache (z.B. der Implementierung von bestimmten Features oder die Änderung einzelner Codestellen) und Wirkung (etwa der Steigerung der Verkaufszahlen oder aber die Entstehung von Bugs) – aber dieser Zusammenhang ist nicht vorhersehbar, wohl aber nachträglich messbar. Eine solche überprüfte und bestätigte Hypothese ist dann nicht mehr komplex – sondern bestenfalls kompliziert, da sie ja weiterhin das Insiderwissen verlangt. Komplexer, weil undurchschaubarer „Legacy“-Code kann durch systematische Untersuchung also wieder zu einem komplizierten, aber vorhersagbaren System werden.
Doch es gibt auch Systeme, in denen Ursache und Wirkung in keinerlei systematischer oder logischer Beziehung zueinander stehen: In chaotischen Systemen hilft keine Analyse, gibt es keine Hypothesen und kein Erkenntnisprozess. Die einzig mögliche Handlungskette lautet: (beliebiges) Handeln – Wahrnehmen – Reagieren. Luft-Turbulenzen wie auch meteorologische Systeme, aber auch Börsenkurse gelten als chaotische Systeme, da sie, allen professionellen Bemühungen und Hypothesen zum Trotz, nicht vorhersehbar sind.
Diese Systematik zu begreifen und Systemtypen zu unterscheiden kann einen also davor bewahren, Prognose-Theorien zu entwickeln für Systeme, die doch nur vom Chaos bestimmt werden oder aber in komplizierten Systemen einfach blind auszuprobieren. Vor allem aber zeigt diese systematische Logik, wie wichtig die bewusste Bildung und Überprüfung von Hypothesen ist, um komplexe Systeme in den Griff zu bekommen. Egal, ob es sich um Software, Verkehrsfluss oder Marketingmaßnahmen handelt: Nur wer Schritt für Schritt deren Zusammenhänge untersucht und versteht, kann diese von komplex in kompliziert, und damit verstehbar verwandeln.
Rufen Sie uns an: 030 – 555 74 70 0
Hallo Karin,
an einer Stelle hast du dich vertippt:
"Komplexer, weil undurchschaubarer „Legacy“-Code kann durch systematische Untersuchung also wieder zu einem komplexen, aber vorhersagbaren System werden."
Es soll bestimmt "komplizierten, aber vorhersagbaren System werden" heißen.
Zu deinen Ausführungen bezüglich chaotischer Systeme habe ich eine Frage:
Ist es also vergeblich Prognose-Theorien für das Wetter (meteorologisches System) zu konstruieren?
Immerhin wird das Wetter derzeit ständig prognostiziert.
Schöne Grüße,
Alexandre
Hallo Alexandre,
ich antworte mal stellvertretend für Karin. Die Wetterfrage ist ziemlich spannend: In der Tat haben wir es hier mit einem komplexen System zu tun - was nahelegt, dass die Vorhersagbarkeit irgendwo zwischen nicht trivial und unmöglich ist. Ein befreundeter Physiker hält regelmässig einen Vortrag, in dem er die Kunst der Wettervorhersage entmystifiziert - die Fehlerquoten sind (wenn man genau hinschaut) im Detail enorm hoch, auch wenn die Tendenz häufig stimmt. Der Trick ist: Wenn meine Vorhersage nur hinreichend unpräzise ist von der Aussage her sinkt die Wahrscheinlichkeit, dass sie falsch ist.
Wenn wir das Problem der Wettervorhersage auf das Cynefin-Framework mappen wollen müssen wir uns ein paar Dinge bewusst machen:
1. die Problemquadranten einfach/kompliziert/komplex/chaotisch sind nicht absolut, sie sind relativ zu unserem individuellen Wissenslevel in dem und Betrachtungswinkel auf den jeweiligen Problembereich. Ein einfaches Puzzle aus 15 Teilen, dessen Lösung ein Kleinkind lange Zeit beschäftigen kann und das es nur über probieren lösen kann (also komplex) kannst Du durch Anschauen und nachdenken lösen (es ist für Dich also lediglich kompliziert). Die Wetterfrösche haben gegenüber Normalsterblichen einen Wissensvorsprung, für sie sind in der Domäne "Wetter" also die Quadranten wahrscheinlich etwas verschoben.
2. Wenn wir uns anschauen, wie eigentlich komplexe (und mehr noch chaotische) Systeme zusammengesetzt sind kommen wir darauf dass typischerweise mit steigender Komplexität mehr Elemente in einem System vorhanden sind, die miteinander in nichtlinearer Verbindung stehen und sich gegenseitig in unterschiedlichem Ausmass und oft indirekt beeinflussen. Das ist der sogenannte Schmetterlingseffekt. Dazu kann jedes einzelne Element eine Schwankungsbreite haben, welchen Wert es gerade einnimmt. Komplexität ist also Anzahl der beteiligten Elemente * mögliche Schwankungsbreite der Werte * Kopplung. Für eine Vorhersage ist auch noch Wichtig, wie häufig sich Werte ändern (also die Dynamik des Systems). Daraus ergibt sich modelltypisch eine Anzahl an Zuständen, die ein System einnehmen kann und je höher diese Zahl ist und je grösser die Dynamik, desto schwieriger ist das System zu durchschauen. Wenn ich es nicht mehr durchschauen kann hilft nur noch probieren - das ist das, was von Snowden als komplex bezeichnet wird. Für das Wetter trifft das zweifellos zu.
Wenn Du morgens aus dem Fenster schaust und die Sonne scheint schlussfolgerst Du: T-Shirt-Wetter. Gehst Du dann im T-Shirt aus dem Haus stellst Du möglicherweise fest, dass zwar die Sonne scheint, es aber trotzdem kalt ist. Was ist passiert? Du hast aus einem komplexen System ein einfaches gemacht und daher die falsche Lösungsstrategie gewählt. Zukünftig gehst Du zusätzlich zum Blick aus dem Fenster mal kurz auf den Balkon, um die Temperatur zu prüfen - Du probierst also und wähnst Dich somit in einem komplexen System. Wenn Du auf Basis dieses Tests entsprechend bekleidet auf die Strasse gehst kann es Dir passieren, dass dort ein ungeahnter Wind weht, den Du auf dem Balkon nicht bemerkt hast (Du also schon wieder falsch bekleidet bist) oder gar, dass das Wetter umschlägt und es (April sei Dank) - unverhofft hagelt. Und dann scheint wieder die Sonne. Da kommt dann eine hohe Dynamik in's Spiel. Das ist für Dich nicht vorhersagbar, aber Du kannst z.B. im April standardmässig eine Regenjacke einpacken und so das System hacken. Das bedeutet: Du akzeptierst, dass das System (für Dich) chaotisch ist und sorgst dafür, dass Du reagieren (vulgo handeln) kannst, wie auch immer es sich verändert.
3. Wir versuchen der Komplexität Herr zu werden, in dem wir vereinfachen - also Modelle aufbauen oder versuchen nicht ganz so wichtige Einflussfaktoren weg zu lassen. Das geht dann schief, wenn wir zu stark vereinfachen und uns auf einen Indikator verlassen, der nicht aussagekräftig genug ist (z.B. Sonnenschein). Oft klappt das aber ziemlich gut, vor allem, wenn wir historische Daten zur Verfügung haben und vielleich auch noch wissen, welche Zustände besonders häufig auftreten (sprich Erfahrung in dem Problembereich). Ein Taxifahrer kann dir ziemlich genau sagen, wie lange eine Fahrt zu einem bestimmten Ziel dauern wird, obwohl er nicht weiss, wie viele rote Ampeln genau am Weg liegen und wie viele Autos genau auf der Strecke unterwegs sein werden. Er kann es Dir aber nicht auf die Sekunde genau sagen, jedoch genau genug für Dich. Manchmal klappt das aber nicht: Wenn der Realwert der Komplexität den Erfahrungshorizont verlässt (mit anderern Worten eine ungewöhnliche Schwankungsbandbreite auftritt) z.B. durch Strassensperrung wegen Unfall, eine Demonstration oder schlicht Stau versagt die Vorhersagbarkeit. Es ist also durchaus relevant wie genau denn die Aussagen sein sollten, wie wir über unser System treffen wollen und wie häufig starke Schwankungen auftreten.
Das ist unterm Strich das, was bei der Wettervorhersage passiert: Man versucht mit Hilfe von starker Analyse in einem vereinfachten Modell unter Berücksichtigung von Erfahrungswerten und historischen Daten eine hinreichen präzise Vorhersage zu machen, damit sie hilfreich ist. Also: "Morgen im Norden Deutschlands überwiegend heiter, Temperatur wahrscheinlich zwischen 15 und 22 Grad, keine Wollsocken nötig" und nicht "um 11:34 und 36 Sekunden wird ein Regentropfen das Berliner Ortsschild in Wannsee an der äussersten Kante treffen. Die Luftfeuchtigkeit beträgt dabei xx Prozent, die Temperatur präzise 17,6 Grad." Der Präzisionsanspruch an die Wettervorhersage ist also gar nicht so furchtbar hoch - trotzdem stimmt die Aussage nicht immer. Das Wetter ist also ein komplexes (und je nach individuellem Betrachtungswinkel auch mal ein chaotisches System). Weil wir aber wissen wollen ob es morgen regnet oder nicht versuchen wir, es in den Bereich des Komplizierten zu bekommen - eigentlich ist das aber geschummelt. Mal klappt's besser, mal klapp's schlechter. Eine Tendenzaussage ist auch in komplexen Systemen häufig möglich (z.B. Stauprognose, Steuerschätzung, etc.) und beim Wetter reicht uns die auch - für Trendaussagen können wir also aus komplexen Systemen gelegentlich komplizierte machen. Bei anderen Anforderungen an die Aussagenpräzision ist das nicht genau genug.
Besagter Physiker hat exemplarisch mal Wettervorhersagen ausgewertet und kam - so sagt er - zu dem Ergebnis, dass die richtigen Vorhersagen im Bereich des Zufälligen liegen würden - wenn man also einfach blind wetten würde würde man nicht schlechter liegen. Ob das stimmt weiss ich nicht - es wäre aber sicherlich interessant den Wettervorhersagern eine Belohnung für richtige Prognosen zu geben und eine Strafe für Falsche einzufordern - wohlgemerkt bei einer definierten hinreichenden Präzision der Prognose. Andernfalls würde die Vorhersage wohl lauten: "Auch morgen ist das Wetter wahrscheinlich gut genug, dass wir fast alle überleben werden." Wäre durchaus interessant was da nach einem Jahr netto rauskäme: Plus oder minus für die Vorhersager.