Systems Thinking mit Causal-Loop-Diagrammen
Systems Thinking in lernenden Organisationen
Systems Thinking wird als eine der wichtigsten Charakteristika lernender Organisationen aufgefasst. Peter Senge beschreibt die Fรคhigkeit, systematisch oder in Systemen zu denken, in seinem Buch โThe Fifth Disciplineโ (englisches Original, deutsche รbersetzung) als รผberlebenswichtig fรผr eine lernende Organisation. Diese Fรคhigkeit hilft, bestehende Probleme ganzheitlich zu betrachten und sรคmtliche Aspekte der Organisation zu betrachten, auch wenn diese auf den ersten Blick keinerlei Zusammenhang mit dem eigentlichen Problem zu haben scheinen. Neben Systems Thinking als fรผnfter Disziplin beschreibt Senge vier weitere Disziplinen, auf die es in einer lernenden Organisation ankommt:
- Personal Mastery. Menschen sind dann motiviert, wenn sie durch ihre Arbeit zu fachlichem und persรถnlichem Wachstum herausgefordert werden. Hier findet sich zum Einen der Mastery-Aspekt wieder, den Daniel Pink in seinem Buch โDriveโ (englisches Original, deutsche รbersetzung) beschreibt. Zum Anderen entspricht es dem Flow-Konzept von Mihaly Czikszentmihaly (englisches Original). Bei der Anwendung von Systems Thinking hilft Personal Mastery, die eigene Expertise und das eigene Arbeitsumfeld zu verstehen und zu meistern.
- Mental Models. Wir alle haben unsere blinden Flecken durch einschrรคnkende Glaubenssรคtze, derer wir uns meist gar nicht gewahr sind. Eine Kultur der Offenheit und des kritischen Hinterfragens soll gelebt werden und sichtbar sein. Niemand soll sich davor fรผrchten, auf des Kaisers fehlende Kleider aufmerksam zu machen. Fรผr Systems Thinking ist diese Offenheit notwendig, damit auch alle unbequemen Aspekte des Systems einflieรen kรถnnen.
- Team Learning. Teams sind nur erfolgreich, wenn die Menschen in den Teams gelernt haben, effektiv zusammenzuarbeiten. Die eben genannte Offenheit ist hier im Miteinander notwendig. Fehlendes Vertrauen und Angst vor Verletzlichkeit mรผssen aus dem Weg geschafft werden. Team Learning beinhaltet sehr viele Aspekte der „Five Dysfunctions of a Team“ von Patrick Lencioni (englisches Original, deutsche รbersetzung). Systems Thinking profitiert dabei von der Fรคhigkeit, ehrliche Einschรคtzungen und Blickwinkel aus dem Team zu erhalten.
- Shared Vision. Der gemeinsame Blick aller Beteiligten auf den Sinn und Zweck der Organisation ist entscheidend fรผr das Verstรคndnis, aus welchem Grund an einer Sache gearbeitet wird und wofรผr dies alles รผberhaupt gut ist. Fรผr die Identifikation einer Shared Vision sollen alle Mitarbeiter einer Organisation eingebunden werden. Fรผr Systems Thinking ist dies wichtig, damit die Leute die sinngebende Zielsetzung fรผr Lรถsungsansรคtze anstreben kรถnnen.
- Systems Thinking. Mit Hilfe dieser vier eben genannten Disziplinen wird nun die Anwendung von Systems Thinking erst effektiv mรถglich.
Nutzen von Systems Thinking
Systems Thinking ermรถglicht das gemeinsame Verstรคndnis und den gemeinsamen Blick auf den aktuellen Zustand des eigenen Systems bzw. der eigenen Organisation. Anstelle der individuellen Betrachtung lokaler Symptome durch einzelne Beteiligte fรถrdert Systems Thinking die gemeinsame Erarbeitung eines Modells durch viele Beteiligte. Durch die Einbindung dieser Beteiligten flieรen Perspektiven hรถherer Diversitรคt in das Modell ein. Die Ableitung von Erkenntnissen und Maรnahmen aus diesem Modell erfolgt ebenso durch alle Beteiligten und erzeugt damit eine deutliche hรถhere Verbundenheit.
Systems Thinking fรผhrt vom einfachen, linearen Ansatz hin zu zirkulรคrem Denken und dem Erkennen von dynamischen Abhรคngigkeiten innerhalb des betrachteten Systems. So lassen sich Feedback-Schleifen und deren Ursachen identifizieren, welche im Fortgang mit entsprechenden Maรnahmen beseitigt werden kรถnnen.
Visualisierung durch Causal-Loop-Diagramme
Die Darstellung eines Systems Thinking Modells geschieht durch Causal-Loop-Diagramme. (Diese kursieren fรคlschlicherweise manchmal auch unter den Namen Cause-Effect-Diagramm oder Ursache-Wirkungs-Diagramm. Dabei handelt es sich jedoch um eine andere Art von Diagramm, die wegen ihrer optischen รhnlichkeit zu Fischgrรคten auch als Fischgrรคten-Diagramme bekannt sind.)

Die visuelle Sprache ist leicht verstรคndlich und kann von allen Beteiligten nach kurzer รbung angewandt werden. Im abgebildeten Beispiel hat die Anzahl der Fรผchse einen wechselseitigen Einfluร auf die Anzahl der Gรคnse. Die Anzahl der Fรผchse wird ebenso durch die Anzahl der Jรคger beeinflusst. Durch die graphische Darstellung sind diese Zusammenhรคnge ersichtlich. In der Kette lรคsst sich auch leicht erkennen, dass die Anzahl der Gรคnse mittelbar von der Anzahl der Jรคger beeinflusst wird. So werden grรถรere Zusammenhรคnge sichtbar und lassen in der weiteren Arbeit mit dem Modell weitere Erkenntnisse zu.
Definition der Problemstellung
Bevor wir mit einer Gruppe von Beteiligten ein sinnvolles Modell entwerfen kรถnnen, benรถtigen wir das gemeinsame Verstรคndnis der Problemstellung, der wir uns mit dem Modell widmen wollen. Ein allgemeiner Aufruf nach dem Motto โlasst uns mal ein Modell unseres Organisations-Systems erstellenโ ist zwar machbar, jedoch nicht zielfรผhrend.
- Welche Aspekte der Organisation sollen รผberhaupt betrachtet werden?
- Welche Betrachtungsgrenzen kรถnnen wir fรผr das Modell abstecken?
- Ab wann ergibt eine detaillierte Betrachtung weiter entfernter Aspekte keinen Sinn mehr?
Die Antworten auf diese und รคhnliche Fragen mรผssen den Beteiligten bei der Erstellung des Modells klar sein. Ist dies nicht der Fall, dann werden wir uns relativ bald verrennen und die Arbeit am Modell aufgeben.
Wir mรผssen also die Frage beantworten, welches Problem mit dem zu erarbeitenden Modell betrachtet werden soll.
Beispiel: โWir beobachten immer wieder, dass wir nach jedem Release sehr viele, kurz getaktete Hotfixes hinterherschieben mรผssen. Das verursacht sehr viel Stress in den Teams und wirklich zufrieden sind unsere Anwender offensichtlich auch nicht. Lasst uns mal versuchen, diese Probleme in einem Causal-Loop-Diagramm zu modellieren.โ
Identifikation von System-Variablen
Die erste Frage im Modell lautet: โWelche Variablen gibt es in unserem System, die etwas mit unserem Problem zu tun haben kรถnnten?โ
Aus unserem Beispiel ergeben sich direkt schon folgende Variablen:
- Anzahl der Hotfixes pro Release
- Druck auf die IT / Stress in den Teams
- Zufriedenheit der Anwender

Eine System-Variable ist also ein ganz spezifischer Aspekt in unserem System, der unterschiedliche Ausprรคgungen haben kann. Die Anzahl der Hotfixes kann groร oder klein oder sogar null sein, jedoch nie negativ. Der Stress in den Teams, sowie die Zufriedenheit der Anwender kรถnnen ebenso hoch, viel, groร oder niedrig, wenig, klein sein.
Bei der Identifikation von System-Variablen ist darauf zu achten, dass die verwendete Bezeichnung eindeutig und verstรคndlich formuliert ist. Eine System-Variable โFehlerbehebungโ ist nicht zweifelsfrei zu interpretieren. Sie kรถnnte โMenge an Fehlerbehebungโ, โNotwendigkeit zur Fehlerbehebungโ, โAnzahl gemeldeter Fehler pro Wocheโ und viele weitere Ausprรคgungen bedeuten. Ein weiteres Negativbeispiel lautet: โAusbildung der Mitarbeiterโ. Was kรถnnte damit gemeint sein? Das bestehende Ausbildungsniveau der Mitarbeiter, die Menge an durchgefรผhrten Ausbildungsmaรnahmen pro Monat oder vielleicht die Notwendigkeit von Ausbildungen fรผr Mitarbeiter? Hier gilt es, wachsam zu sein und immer wieder mit den Beteiligten zu erรถrtern, welche Bedeutung die identifizierten System-Variablen tatsรคchlich haben. Bei Bedarf mรผssen diese dann verstรคndlicher umformuliert werden.
Dynamik und Verรคnderungen von System-Variablen
Die identifizierten System-Variablen in unserem Modell unterliegen einer gewissen Dynamik und kรถnnen ihre jeweilige Ausprรคgung im Laufe der Zeit verรคndern. Die Zufriedenheit der Anwender kann sich anfรคnglich auf hรถchstem Niveau befinden. Durch die Beeinflussung anderer Variablen kann sie sich jedoch auf ein geringeres Niveau absenken. Es gilt nun, diese beeinflussenden Variablen zu identifizieren und in unserem System-Modell in Relation zu den bereits identifizierten Variablen zu setzen.
Folgende Fragen helfen bei der Identifizierung:
- Welcher Zusammenhang lรคsst sich zwischen einzelnen System-Variablen herstellen?
- Beeinflussen sich zwei System-Variablen direkt oder sind weitere Variablen beteiligt?
- Welche weiteren Aspekte spielen eine Rolle im Umfeld einer identifizierten Variable?
In unserem Beispiel kรถnnten wir vorschnell einen direkten Zusammenhang zwischen der Zufriedenheit der Anwender und der Anzahl der Hotfixes pro Release herstellen. Diese beiden Variablen stehen jedoch in keiner direkten Verbindung. Erst durch die Auswirkung weiterer Variablen lassen sich Rรผckschlรผsse ziehen. Welche Einflรผsse kรถnnten fรผr die Zufriedenheit der Anwender also eine Rolle spielen?

Wir kรถnnen ein paar Variablen definieren, die zur Anwenderzufriedenheit beitragen. Wie hรคngen diese nun wiederum mit der Anzahl der Hotfixes pro Release zusammen? Betrachten wir der Einfachheit halber nur die neu definierte Variable โAufwand fรผr Updates fรผr die Anwenderโ. Hier gibt es nun mindestens zwei Varianten der Beeinflussung. Der Aufwand fรผr Updates kann fรผr die Anwender bei jedem Hotfix sehr hoch sein, wenn dafรผr das System gestoppt, Workflows unterbrochen und evtl. explizit Zeit fรผr das Update eingeplant werden muss. In extremen Fรคllen bedeutet das, eine Fabrik fรผr eine ganze Woche in den Wartungsmodus zu bringen und die Produktion anzuhalten. Im einfachsten Fall hat es fรผr einzelne Anwender zur Folge, eine Desktop-Applikation oder das Smartphone-Betriebssystem fรผr wenige Minuten den Update-Prozess durchlaufen zu lassen. In beiden Fรคllen bedeutet die Durchfรผhrung eines Updates einen gewissen Aufwand fรผr die Anwender. Je รถfter dieser Aufwand entsteht, desto unzufriedener werden die Anwender. Wir kรถnnen hier also einen unmittelbaren Einfluร von der Anzahl der Hotfixes pro Release zum Aufwand fรผr Updates fรผr die Anwender darstellen.

Betrachten wir nun eine zweite Variante. Wenn unser System in der Lage ist, Verรคnderungen fรผr den Anwender vรถllig unsichtbar verfรผgbar zu machen, dann existiert kein Zusammenhang zwischen der Anzahl der Hotfixes und dem Aufwand fรผr Updates fรผr die Anwender. Dies ist beispielsweise der Fall in einer Online-Anwendung, die durch Continuous Deployment jederzeit auf dem neuesten Stand gehalten wird. Im Extremfall haben die Anwender nach jedem einzelnen Klick eine neue Version des Systems vor sich.

Eine sehr wichtige Erkenntnis daraus fรผr die Arbeit mit System Thinking und System Modeling lautet daher: es existiert kein allgemeingรผltiges System-Modell, das fรผr alle oder รคhnliche Organisationen einsetzbar ist! Wir mรผssen stets die jeweiligen Realitรคten in der betrachteten Organisation wahrnehmen und in ein plausibles System-Modell transferieren.
Bleiben wir fรผr den weiteren Verlauf beim ersten Beispiel mit einem System, das Aufwรคnde durch Updates nach sich zieht.
Verstรคrkung und Abschwรคchung von System-Variablen
Wir betrachten nun die Zusammenhรคnge zwischen den einzelnen Variablen in unserem System-Modell etwas genauer und stellen dabei die Frage: โWenn sich Variable A nach oben verรคndert, also in ihrer Ausprรคgung stรคrker, hรถher oder mehr wird, wie verรคndert sich dann Variable B?โ
Wenn die Anzahl der Hotfixes steigt, dann steigt damit auch der Aufwand fรผr Updates. Dies veranschaulichen wir mit einem einfachen Pfeil von der ersten zur zweiten Variable. Gleichzeitig stellen wir fest, dass mit einem Anstieg der Anzahl der Hotfixes die Verfรผgbarkeit des Systems sinkt. Diese negative bzw. inverse Auswirkung zeigen wir im System-Modell durch einen Pfeil mit einem annotierten Kreis. Die folgende Abbildung zeigt diese und weitere Verbindungen zwischen unseren identifizierten System-Variablen.

So tragen eine hohe Verfรผgbarkeit des Systems, eine hohe Geschwindigkeit der Problemlรถsung, sowie eine hohe Qualitรคt zur gesteigerten Zufriedenheit der Anwender bei. Ein hoher Aufwand fรผr Updates verringert jedoch die Zufriedenheit. Oder anders formuliert: geringe Qualitรคt sorgt fรผr geringe Zufriedenheit, wenig Aufwand fรผr Updates sorgt fรผr hรถhere Zufriedenheit.
Verzรถgerter Einfluร von System-Variablen
Wir kรถnnen nun weitere Ursachen identifizieren, die zu Update-Aufwand und der Systemqualitรคt beitragen. Wie oben schon beschrieben, kann der Anteil der System-Komponenten mit Continuous Deployment in unser Modell einflieรen. Diese verbinden wir mit einer abschwรคchenden Verbindung zum Aufwand fรผr Updates. Je mehr Continuous Deployment wir haben, desto geringer ist der Update-Aufwand. Um diesen Anteil zu erhรถhen, benรถtigen wir eine entsprechend hohe Kapazitรคt der Entwicklungsteams zur Umsetzung von Continuous Deployment. Nun ist es leider nicht so, dass sich der Anteil an Continuous Deployment sofort erhรถht, wenn wir die Entwicklungskapazitรคt nach oben setzen. Der Effekt tritt erst mit einer gewissen Verzรถgerung ein. Diese Tatsache verdeutlichen wir im graphischen Modell durch einen verstรคrkenden Pfeil mit zwei parallelen Linien.

Ein analoges Beispiel findet sich in der Abbildung bezรผglich des Anteils an Test-Automation. Auch diese erhรถht sich erst verzรถgert, nachdem die Teams ihre Kapazitรคt zum Ausbau der Test-Automation erhรถht haben.
Folgende Abbildung zeigt die graphische Sprache, mit der wir in System-Modellen arbeiten und visualisieren.

Kreislรคufe von System-Variablen
Die folgende Abbildung zeigt ein erweitertes System-Modell unseres Beispiels. Hier sei nochmals darauf hingewiesen, dass dieses Modell auf den ersten Blick den Anschein eines allgemein gรผltigen Modells fรผr jegliche Software-Entwicklungsorganisation erzeugen kann. Tatsรคchlich ist dieses Modell ausschlieรlich fรผr unsere betrachtete Beispiel-Organisation gรผltig, auch wenn in einzelnen Aspekten parallelen zu anderen Organisationen gezogen werden kรถnnen.

In diesem Modell lassen sich Kreislรคufe von sich beeinflussenden System-Variablen erkennen. Alle Kreislรคufe sind im Uhrzeigersinn dargestellt.
Einer der Kreislรคufe lรคsst sich wie folgt beschreiben. Eine geringe Zufriedenheit der Anwender sorgt fรผr eine hohe Anzahl an Support-Ticket, die wiederum eine lange Bug-Liste nach sich zieht. Somit steigt die Anzahl der dringenden Aufgaben, wodurch der Druck auf die IT wรคchst. Durch den hohen Druck verringert sich die Einhaltung der Definition of Done und damit sinkt der Fokus auf die Qualitรคtssicherung. Dieses geringe Maร an Qualitรคtssicherung verursacht mehr Fehler im Release und die Qualitรคt des Systems sinkt fรผr die Anwender, wodurch deren Zufriedenheit weiter absackt. Wir haben es hier mit einem sich selbst verstรคrkenden Kreislauf zu tun, gerne auch Teufelskreis genannt.
Dieser Kreislauf ist in der folgenden Abbildung vereinfacht ohne die umliegenden System-Variablen dargestellt.

Angriffspunkte und Maรnahmen
Schaffen wir es, solche Kreislรคufe in unserem System-Modell zu finden und darzustellen, dann haben wir im nรคchsten Schritt die Mรถglichkeit, geeignete Angriffspunkte zu identifizieren und Maรnahmen abzuleiten, um das gesamte System zu verbessern.

Mehrere Hebel lassen sich in diesem Beispiel finden. Wie oben bereits skizziert, lieรe sich der Anteil an Test-Automation im System erhรถhen. In der Kette findet sich eine Idee, die dafรผr notwendige Kapazitรคt im Team durch weitere Teammitglieder zu steigern. Dies wรคre eine eher langwierige Maรnahme. Auรerdem sehen wir, dass die notwendige Entwicklungskapazitรคt fรผr Test-Automation auch durch die Einhaltung der Definition of Done erreicht werden kann. Damit haben wir als mรถgliche Maรnahme identifiziert, die Effektivitรคt des Scrum Masters zu erhรถhen. Dies kann durch den Scrum Master auf Grund der Erkenntnis aus diesem System-Modell selbst erfolgen. Vielleicht steht auch ein agiler Coach zur Verfรผgung, der hier unterstรผtzen kann, oder eine Scrum Master Community of Practice hilft im gegenseitigen Austausch mit Praktiken fรผr mehr Effektivitรคt der Scrum Master Rolle.
Es lassen sich weitere Optionen an Maรnahmen ablesen. Aus diesen Optionen kรถnnen nun Experimente abgeleitet werden, um heraus zu finden, welche der Maรnahmen dem gesamten System tatsรคchlich weiterhilft. Die Abwรคgung der einzelnen Optionen bezรผglich Machbarkeit, Hebelwirkung und nรถtigem Aufwand sollte von den Beteiligten des Systems besprochen werden, ebenso die Entscheidung รผber den konkreten, nรคchsten Schritt.
Iteratives Modellieren
Es reicht nicht aus, unser System einmalig zu analysieren und ein fรผr alle Zeit gรผltiges System-Modell zu erzeugen. Nach jeder Maรnahme, nach jedem Experiment, nach jeder Verรคnderung am System muss das Modell erneut geprรผft, hinterfragt und auf den aktuellen Stand gebracht werden. Die System-Variablen verรคndern sich im Laufe der Zeit und Zustรคnde, die einmal negative Auswirkungen auf das Gesamtsystem hatten, kรถnnen zwischenzeitlich in positive Aspekte umgeschlagen haben. Wir mรผssen immer wieder รผberprรผfen, welche Erkenntnisse sich aus der aktuellen Situation unseres Systems ergeben, welche kritischen Faktoren im System existieren und welche Maรnahmen sich daraus ableiten lassen.
Nachteile und Pitfalls von Causal-Loop-Diagrammen
Fรผr die an der Entstehung Beteiligten ist ein Causal-Loop-Diagram leicht nachvollziehbar. Jeder weiร, welche Bedeutung die einzelnen Variablen im Gesamtkontext besitzen und wie die Variablen miteinander zusammenhรคngen. Deswegen verstehen die Beteiligten auch die Schlussfolgerungen, die sich aus dem Causal-Loop-Diagram ergeben und in Maรnahmen umgesetzt werden sollen. Im Gegenzug ist dieses Verstรคndnis fรผr alle Nicht-Beteiligten oftmals leider nur schwer zu erlangen. Ein typischer Kommunikationsfehler im Umgang mit Causal-Loop-Diagrammen entsteht, wenn das visuelle Ergebnis Unbeteiligten รผbergeben wird in der Annahme, dass diese das Diagramm ohne intensive Erklรคrung nachvollziehen kรถnnten. Da sich im Regelfall niemand die Blรถรe von Unverstรคndnis geben mรถchte, wird diese Art der Kommunikation stillschweigend entgegengenommen oder im schlimmsten Fall kopfnickend akzeptiert. Damit entsteht wiederum auf der Senderseite die Annahme, dass eine gelungene Kommunikation stattgefunden hat und die รผberbrachte Nachricht verstanden wurde.
Die Entstehung von Causal-Loop-Diagrammen bedingt die Einbindung der Betroffenen und Beteiligten, damit ein gemeinsames Verstรคndnis durch die gemeinsame Erarbeitung des Modells entstehen kann.
รbung macht den Meister
Fรผr alle, die sich nun dem Thema Systems Thinking widmen wollen, habe ich einen wichtigen Hinweis: einfach machen und immer wieder รผben! Egal in welcher Rolle Du Dich befindest, fang damit an, eine kleine Fragestellung in Deinem umgebenden System zu modellieren. Nimm ein wiederkehrendes Hindernis aus Deinem Team und finde heraus, welche System-Variablen zu diesem Hindernis beitragen. Nimm gerne auch einen positiven Aspekt aus Deiner Organisation, eine Sache, die bereits gelingt, und identifiziere einen sich selbst bestรคrkenden Kreislauf von System-Variablen dazu.
Bring dieses Werkzeug in eine Retrospektive und binde die Beteiligten des Systems bei der Erstellung des System-Modells ein.
Es gibt viele Mรถglichkeiten, Causal-Loop-Diagramme fรผr die agile Inspektion zu nutzen. Experimentiere damit und setze die gewonnenen Erkenntnisse um. Die Resultate dieser Maรnahmen werden sich im nรคchsten System-Modell auswirken und es ist immer wieder interessant, zu sehen, wie sich das System-Modell im Laufe der Zeit verรคndert.
Welche Erfahrungen hast Du mit System-Thinking und Causal-Loop-Diagrammen gemacht? Was hat gut funktioniert? Welche Schwierigkeiten sind bei der Anwendung aufgetreten? Welche Unklarheiten oder Fragen haben sich fรผr Dich ergeben?
Hinterlasse gerne einen Kommentar und berichte รผber Deine Erfahrungen.
