Freitag, 17. September 2021

Unvermeidbare und versehentliche Komplexität

Grafik: Pixabay / Geralt - CC0 1.0

Im Umfeld der agilen Frameworks ist sie überall anzutreffen: die Komplexität. Wie es in nahezu jedem Einführungs-Training mit Hilfe von Stacey Matrix oder Cynefin Model vermittelt wird ist es vor allem die komplexe Domäne in der es nötig ist agil (und lean, dazu gleich mehr) zu sein, also in jenem Bereich in dem Kleinteiligkeit, Abhängigkeiten und Eigendynamiken ein ständiges Überprüfen von Arbeitsständen und Vorgehensweisen notwendig machen.


Vor dem Hintergrund dieser zentralen Positionierung ist es erstaunlich, dass nur sehr selten versucht wird das Phänomen der Komplexität differenziert zu betrachten. Sie ist einfach da oder eben nicht, eine Aufteilung in Untertypen kommt praktisch nie vor. Dass sie aber möglich wäre zeigt ein Blick in die Vergangenheit - bereits im Jahr 1986 veröffentlichte der spätere Turingpreis-Träger Fred Brooks das Paper No Silver Bullet, in dem er zwei Haupttypen identifizierte, Essential und Accidential Complexity.


Unter Essential Complexity (sinngemäss übersetzbar als unvermeidbare Komplexität) können alle Faktoren zusammengetragen werden deren Entstehung oder Entwicklung eine Organisation nicht beeinflussen kann. Dazu gehören z.B. Marktdynamiken, gesetzliche Regulierungen, technologische Neuerungen, und Ereignisse wie Naturkatastrophen oder Pandemien. Als Besonderheit im IT-Bereich kommt dazu noch die unberechenbare Natur der Softwareentwicklung.


Im Gegensatz dazu steht die Accidential Complexity (sinngemäss übersetzbar als versehentliche Komplexität), die von den betroffenen Organisationen unbeabsichtigt selbst erzeugt wird. Auf der einen Seite geschieht das in Form von unrealistischer Planung, Bürokratie und Überregulierung, auf der anderen Seite kommen IT-spezifische Phänomene dazu wie so genannte Alt- oder Legacy-Systeme, zu grosse Releases oder zu langlebige Branches.


Was sich bei näherer Betrachtung der beiden Grundtypen ergibt ist nicht nur eine jeweils unterschiedliche Natur sondern auch daraus abgeleitet eine jeweils andere Art des Umgangs. Bei der unvermeidbaren Komplexität kann es nur darum gehen im Fall des Eintretens möglichst schnell und effektiv reagieren zu können, während man der versehentlichen Komplexität dadurch entgegenwirken kann, dass man sie gar nicht erst entstehen lässt oder sie wieder eindämmt sobald sie erkannt wird.


Diesen beiden Umgangstypen wiederum kann man (vereinfacht gesagt) die beiden Ansätze Agil und Lean zuordnen. Für Agilität müssen die Organisationsstruktur und die eingesetzten Technologien darauf optimiert werden in kurzen Abständen reaktions- und lieferfähig zu sein, während schlanke (Lean-)Strukturen erreicht werden indem kontinuierlich defekte Systeme und gut gemeintes aber zur Bürokratie werdendes Overprocessing gesucht und beseitigt werden.


Basierend auf dieser Zuordnung lässt sich schliesslich erkennen, dass die manchmal geforderte Entscheidung eine Organisation entweder agil oder lean zu organisieren nicht zielführend ist. Um in einem von Komplexität geprägten Umfeld bestehen zu können ist beides nötig, die häufige Annahme, dass Lean nur im komplizierten Umfeld Sinn macht (mehr dazu bei den oben verlinkten Werkzeugen Stacey Matrix oder Cynefin Model) verkennt wichtige Zusammenhänge. Fred Brooks' Ausdifferenzierung in unvermeidbare und versehentliche Komplexität zeigt deutlich auf warum das der Fall ist.

Related Articles