Wenn man ein System neu baut, fühlt sich alles noch einfach an.
Die Struktur ist klar, die Entscheidungen sind bewusst getroffen und man versteht, wie alles zusammenhängt. Änderungen lassen sich schnell umsetzen und haben vorhersehbare Auswirkungen.
Dieses Gefühl hält aber nie lange.
Sobald ein System benutzt wird, beginnt es sich zu verändern. Neue Anforderungen kommen dazu, bestehende werden angepasst, Sonderfälle tauchen auf. Jede dieser Änderungen ist für sich genommen sinnvoll, oft sogar notwendig.
Mit der Zeit entsteht daraus etwas anderes: ein System, das nicht mehr nur aus seiner ursprünglichen Idee besteht, sondern aus der Summe vieler Entscheidungen, die zu unterschiedlichen Zeitpunkten getroffen wurden.
Wie Komplexität tatsächlich entsteht
Komplexität entsteht selten durch „schlechtes Design“ oder falsche Entscheidungen.
Sie entsteht eher dadurch, dass viele richtige Entscheidungen aufeinandertreffen.
Ein Feature wird ergänzt, weil es gebraucht wird.
Ein Workaround wird eingebaut, weil die Zeit fehlt.
Eine Schnittstelle wird erweitert, weil es keinen besseren Weg gibt.
Jede dieser Entscheidungen löst ein konkretes Problem.
Aber sie wird isoliert getroffen.
Das System als Ganzes muss sie alle gleichzeitig tragen.
Genau dort beginnt Komplexität sichtbar zu werden. Nicht sofort, sondern schrittweise. Erst merkt man, dass Änderungen länger dauern. Dann, dass man mehr Zusammenhänge berücksichtigen muss. Irgendwann fühlt sich das System „schwerer“ an, ohne dass klar ist, woran es genau liegt.
Warum Komplexität sich nicht einfach entfernen lässt
Irgendwann kommt der Punkt, an dem man versucht, das System wieder „aufzuräumen“.
Man will Dinge vereinfachen, Struktur zurückgewinnen, Entscheidungen neu ordnen.
Das funktioniert – aber nur begrenzt.
Denn Komplexität ist kein isolierter Fehler, den man beheben kann.
Sie ist ein Ergebnis der Nutzung des Systems über Zeit.
Wenn man an einer Stelle vereinfacht, passiert oft etwas anderes:
- Abhängigkeiten verschieben sich
- Verhalten wird weniger offensichtlich
- oder Komplexität wandert einfach in einen anderen Teil des Systems
Man hat sie nicht entfernt, sondern umverteilt.
Das liegt daran, dass Komplexität nicht nur im Code steckt.
Sie steckt auch in Datenflüssen, in impliziten Annahmen und in der Art, wie das System verwendet wird.
Die Rolle von Entscheidungen über Zeit
Ein wichtiger Punkt dabei ist, dass Entscheidungen nicht verschwinden.
Auch wenn sie später nicht mehr sichtbar sind, wirken sie weiter.
Viele Stellen in einem System haben eine Geschichte:
Warum etwas genau so funktioniert, weiß oft niemand mehr, aber es „darf nicht geändert werden“.
Diese Stellen sind selten das Ergebnis eines einzelnen Fehlers.
Sie entstehen, weil sich mehrere Entscheidungen überlagern.
Das macht sie schwer zugänglich.
Man kann sie nicht isoliert betrachten, sondern muss verstehen, wie sie entstanden sind. Und genau das wird mit der Zeit schwieriger.
Was sich dadurch in der Arbeit verändert
Wenn man das einmal verstanden hat, ändert sich der Blick auf Systeme.
Man versucht weniger, die „perfekte“ Lösung zu bauen.
Stattdessen achtet man stärker darauf, wie sich Entscheidungen langfristig auswirken.
Zum Beispiel:
- Ist eine Lösung auch in einem halben Jahr noch verständlich?
- Wird eine Änderung dadurch einfacher oder schwieriger?
- Entsteht neue Komplexität, die man später wieder tragen muss?
Es geht weniger darum, etwas möglichst elegant zu lösen,
und mehr darum, etwas so zu bauen, dass es mit zukünftigen Veränderungen umgehen kann.
Der eigentliche Umgang mit Komplexität
Der entscheidende Punkt ist:
Komplexität lässt sich nicht vollständig vermeiden.
Aber man kann beeinflussen, wie sie entsteht und wo sie sichtbar wird.
Das bedeutet konkret:
- nicht jede Anforderung ungefiltert ins System zu übernehmen
- bewusst zu entscheiden, wo man Komplexität zulässt
- Bereiche klar zu trennen, statt alles miteinander zu vernetzen
- und regelmäßig zu hinterfragen, ob bestehende Strukturen noch sinnvoll sind
Es geht nicht darum, alles einfach zu halten.
Das ist in realen Systemen selten möglich.
Es geht darum, Komplexität so zu organisieren, dass sie beherrschbar bleibt.
Warum das wichtig ist
Der Unterschied zwischen zwei Systemen liegt oft nicht darin, welches weniger Komplexität hat.
Sondern darin, wie gut sich mit dieser Komplexität arbeiten lässt.
Ein System kann komplex sein und trotzdem gut funktionieren,
wenn seine Struktur nachvollziehbar ist und Änderungen möglich bleiben.
Ein anderes kann deutlich kleiner sein und trotzdem schwerfällig wirken,
weil Zusammenhänge unklar sind und Entscheidungen nicht mehr greifbar sind.
Komplexität selbst ist also nicht das Problem.
Unkontrollierte und unklare Komplexität ist es.






Schreibe einen Kommentar