Agile Minds

“Kompliziert” und “Komplex”

Was bedeutet “kompliziert” und gibt es einen Unterschied zu “komplex”? Viele Menschen verwenden die beiden Ausdrücke synonym. „Kompliziert“ gleich „komplex“ gleich „nicht einfach“. Fertig.
Die Menschen sind einfache Arbeitsabläufe gewohnt. Sei es beim Anbau von Nutzpflanzen oder in der Tierzucht, sei es beim Zubereiten von Essen oder dem Bau von Behausungen für Mensch und Tier, sei es beim Fertigen von Waffen oder einfachen Werkzeugen. Stets sind eine Vielzahl von Arbeitsschritten nötig. Jeder ist einfach. Stets folgt einer auf den anderen. Manchmal ist eine einzige Person nötig, mal mehrere oder gar ein Team. Es sind einfache, wenn auch aus vielen Schritten und eine große Zeitspanne benötigende, Arbeitsabläufe.
Mit dem Beginn der Industrialisierung wurde die Verwendung von immer umfangreicheren Werkzeugen und Maschinen nötig. Ingenieuren und Technikern wurde klar, dass sie es mit einer neuen Art von Arbeitsabläufen zu tun haben: sie sind kompliziert geworden. Es gibt nicht mehr eine einfache Liste von Arbeitsschritten, die in einer wohldefinierten Reihenfolge nacheinander abgearbeitet werden müssen. Stattdessen kann die Reihenfolge variiert werden, manche Arbeitsschritte können oder müssen parallel abgearbeitet werden, die Umsetzung eines Arbeitsschrittes kann in seiner Art und Weise variieren und zwar abhängig von äußeren Randbedingungen oder dem Zustand des Ausgangsmaterials usw. Maschinen übernahmen einfache Arbeitsschritte, wobei der Vorteil darin bestand, eine höhere Geschwindigkeit als ein Mensch zu haben. Auch diese Maschinen waren kompliziert: im Inneren mussten viele mechanische Teil gut aufeinander abgestimmt und angepasst zusammenspielen. Schnell lernten die Konstrukteure solcher Maschinen, dass möglichst jedes Teil nur eine einzige einfache Aufgabe übernehmen sollte. Das Zusammenspiel vieler solcher Teile ergab dann erst die gesamte Maschine, die insgesamt einen komplizierten Vorgang abarbeitete. Der Leitsatz „Keep it simple, stupid!“, war geboren. Er stammt nicht aus der Softwareentwicklung, nur so am Rande erwähnt. Die Feststellung ist, dass jedes einzelne Teil einer Maschine oder eines Arbeitsablaufes, nur eine einfache Aufgabe haben soll. Losgelöst von anderen Teilen bzw. Arbeitsschritten kann dieser Parameter einzeln optimiert werden. Dies wurde zur Definition von „kompliziert“: wenn etwas aus vielen einfachen Schritten aufgebaut ist, die unabhängig voneinander sind und einzeln optimiert werden können. Man kann sich dies wie eine Kette aus vielen einzelnen Gliedern vorstellen. Jedes hängt genau an einem vorangehenden und einem folgenden Glied der Kette. Es hat eine einfache Funktion und ist unabhängig von den anderen Gliedern der Kette. Lediglich eben die zwei Nachbarn sind ggf. noch relevant.

Während des Fortschreitens der Industrialisierung und der wissenschaftlichen Entwicklung, wurde es immer schwieriger Maschinen und Arbeitsabläufe so einfach aufzubauen. Es war und ist nicht trivial, etwas in viele einfache Teilschritte zu zerlegen. Dennoch war und ist es weiter ein elementares Bemühen jedes Ingenieurs und Entwicklers. Man begann sich zu fragen, ob es generell immer möglich ist, solch eine einfache Zerlegung eines Problems zu finden. In der Mathematik hatte man bereits mit Differentialgleichungen Bekanntschaft gemacht und ohne erklären zu wollen, was dies im Detail ist, sei nur soviel erwähnt: es war nicht gelungen diese Gleichungen in völliger Allgemeinheit zu lösen. Die Abhängigkeiten zwischen verschiedenen Gliedern der Gleichungen liesen sich nicht auflösen. Unabhängige Parameter zur Beschreibung des Problems waren nicht in Sicht. Die Anwendung solcher Differentialgleichungen wurde aber immer wichtiger, denn man begegnete ihnen bei der Vorhersage des Wetters und auch im Flugzeugbau. In beiden Fällen hat man es mit Strömungen zu tun und solange sich diese linear verhalten und entsprechend ohne Differentialgleichungen modelliert werden können, war die alte Welt noch in Ordnung. Kamen Verwirbelungen ins Spiel, war es aus damit. Die Wissenschaftler entwickelten die Chaostheorie und beschäftigten sich mit der „fraktalen Geometrie der Natur“. Chaos und die Erkenntnis, dass ein „Flügelschlag eines Schmetterlings in China, bei uns einen Orkan auslösen kann“, waren das Ergebnis. Der Begriff „komplex“ wurde zur letzten Bastion zwischen der komplizierten, aber beherrschbaren, alten Welt und der neuen chaotischen Welt. Ein komplexes System besteht aus Einzelteilen, die sich mehr oder weniger alle gegenseitig beeinflussen können.

In der modernen Softwareentwicklung ist man zu der Erkenntnis gelangt, dass sich Produkt- und Projektentwicklung letztlich wie ein komplexes System verhält. Und nicht mehr wie ein kompliziertes System. Es sind sehr sehr viele Parameter wie Kundenwünsche, technische Randbedingungen, zeitliche Randbedingungen, monetäre Randbedingungen usw. im Spiel und die meisten dieser Parameter beeinflussen mehrere andere Parameter. Die modernen agilen Vorgehensweisen sind genau für diese Art von Problemen gemacht. Sie sind optimal für die Lösung eines komplexen Entwicklungsproblem geeignet … denn dafür wurden sie erschaffen!

Kategorien:Agile Minds

Tagged as: