+49 (0)5583 2829973 info(at)coders(dot)care
Shadow

Eine wahre Geschichte, wie man falsche Dinge beschleunigt

Das Video meines WeAreDevelopers-Talks "A True Story About Speeding Up the Wrong Things" dauert rund 40 Minuten und bietet Stoff für mehr als nur einen Artikel. Also habe ich die Argumentation auf 3 Posts verteilt. Im ersten geht es um den ältesten Fehler der ganzen Geschichte: Beschleunigung mit Fortschritt zu verwechseln.

Geschätzte Lesezeit: 8 Min.

Der ursprüngliche 40-minütige Talk ist bei WeAreDevelopers verfügbar.

Geht das auch schneller?

Es ist immer dieselbe Frage

die sich die Technologiebranche seit Jahrzehnten mit bemerkenswerter Hartnäckigkeit stellt.

Meistens ist das eine völlig vernünftige Frage. Schnellere Builds sind besser als langsamere, Deployments, die Minuten statt Stunden dauern, sind in der Regel eine Verbesserung, und repetitive Handarbeit loszuwerden, ist nun wirklich nichts, worüber ich mich beschweren würde. Ich habe den größten Teil meines Berufslebens gerade deshalb mit Technologie verbracht, weil sie uns erlaubt, Dinge schneller, zuverlässiger oder mit weniger unnötigem Aufwand zu erledigen.

Das Problem beginnt einen Schritt später, nämlich dann, wenn aus einer messbaren Steigerung der Geschwindigkeit stillschweigend der Beweis abgeleitet wird, dass sich das System selbst verbessert hat.

Geschwindigkeit ist attraktiv, weil sie sich leicht beobachten lässt. Ein Build dauert zwölf statt zwanzig Minuten, ein Release-Zyklus schrumpft von zwei Wochen auf zwei Tage, ein Team schließt mehr Tickets ab, eine Plattform verarbeitet mehr Traffic. Das sind echte Zahlen und sie ergeben hervorragende Charts. Richtung ist weniger kooperativ. Sehr viel schwieriger lässt sich messen, ob das, was wir jetzt schneller produzieren, überhaupt existieren sollte, ob es das dahinterliegende System tatsächlich verbessert oder ob wir lediglich die Reibung beseitigt haben, die eine schlechte Entscheidung bisher ausgebremst hat.

Dieser Unterschied ist wichtig, weil lokale Optimierung nicht dasselbe ist wie die Verbesserung des Gesamtsystems. Ein Team kann tatsächlich schneller werden und dabei an anderer Stelle mehr Arbeit erzeugen. Ein automatisierter Prozess kann einen manuellen Schritt beseitigen und Abhängigkeiten schaffen, an die sich sechs Monate später niemand mehr erinnert. Eine Integration kann ein ganz reales Problem lösen und die Gesamtarchitektur trotzdem schwerer verständlich machen als vorher. Keine dieser Verbesserungen muss vorgetäuscht sein. Sie können alle exakt das tun, was von ihnen erwartet wird, und das eigentliche System dennoch in die falsche Richtung bewegen.

Bewegung lässt sich leicht messen, bei Richtung fangen die Schwierigkeiten an.

Den Film hatten wir schon mal

Nichts davon begann mit künstlicher Intelligenz

KI macht das alte Muster nur leichter sichtbar, weil sie Reibung in einem Ausmaß beseitigt, das wir so bisher nicht kannten.

Die Dotcom-Jahre liefern das naheliegende Beispiel. Nicht das Internet selbst war der Fehler, ebenso wenig die Vorstellung, dass Reichweite und Distribution ganze Branchen verändern würden. Beides war richtig. Der Fehler bestand darin, Wachstum als Ersatz dafür zu behandeln, das zugrunde liegende System zu verstehen. Traffic wurde zu Wert, Aufmerksamkeit zum Beweis und die Fähigkeit, schnell zu skalieren, galt plötzlich als Antwort auf die wesentlich unangenehmere Frage, was da eigentlich skaliert wurde.

Eine Zeit lang funktionierte das. Mit Geld ließ sich Aufmerksamkeit kaufen, Aufmerksamkeit produzierte die nächste Wachstumskurve und Wachstum rechtfertigte weiteres Geld. Die Maschinerie war ausgesprochen gut darin, genau den Teil zu beschleunigen, den ohnehin alle messen wollten. Das Problem tauchte erst auf, als die Bewertung irgendwann einen Beleg sehen wollte.

Die Finanzwelt lieferte später eine kompliziertere Variante desselben strukturellen Fehlers. Mehr Abstraktion, mehr Hebelwirkung und mehr Abstand zwischen den Menschen, die Risiken erzeugten, und denen, die sie am Ende trugen, ließen das Risiko nicht verschwinden, sondern machten das System schwerer lesbar. Wenn ein Problem durch genügend Schichten wandert, kommt irgendwann der Punkt, an dem es weniger wie ein ungelöstes Problem und mehr wie ein Implementierungsdetail aussieht.

Softwarearchitekten sollte das unangenehm vertraut vorkommen. Wir abstrahieren, kapseln, integrieren und automatisieren, weil sich dadurch Redundanz vermeiden und komplizierte Dinge handhabbar machen lassen. Aber jede Abstraktion schafft auch Abstand, und dieser Abstand kann genau den Punkt unsichtbar machen, an dem niemand mehr das Gesamtsystem versteht. Gute Entwicklung kann Komplexität reduzieren, schlechte Entwicklung kann sie verstecken. Von außen kann beides erstaunlich lange fast identisch aussehen.

Der Flash Crash von 2010 war eine sehr viel komprimiertere Demonstration. Automatisierte Handelssysteme reagierten mit Maschinengeschwindigkeit auf Marktbedingungen und aufeinander, die Liquidität brach ein und der Ablauf musste anschließend rekonstruiert werden. Die Maschinen reagierten; die Menschen erklärten später, was passiert war.

Das ist kein Argument gegen Automatisierung. Maschinen sollen schneller reagieren als Menschen; sonst gäbe es wenig Grund, viele dieser Systeme überhaupt zu automatisieren. Der interessante Unterschied liegt nicht zwischen Maschinen und menschlicher Geschwindigkeit, sondern zwischen Reaktion und Korrektur.

Ein System kann extrem schnell reagieren, ohne entsprechend gut erkennen zu können, dass seine eigenen Reaktionen die Lage verschlimmern. Es kann im Rahmen seiner aktuellen Logik perfekt funktionieren und zugleich schlecht darin sein zu erkennen, dass genau diese Logik Teil des Problems geworden ist. An diesem Punkt erhöht zusätzliche Geschwindigkeit nicht die Kontrolle. Sie verkürzt lediglich die Zeit zwischen dem ursprünglichen Fehler und seinen Folgen.

Ashbys Gesetz

Nur Varietät kann Varietät absorbieren

Lange vor automatisiertem Handel, Cloud-Infrastruktur oder KI-Agenten beschäftigte sich der Kybernetiker W. Ross Ashby mit der allgemeineren Frage dahinter: Was braucht ein System, um die Kontrolle zu behalten, wenn seine Umgebung komplexer wird?

Ein Thermostat liefert die angenehm langweilige Version der Antwort. Seine Welt ist klein. Er misst die Temperatur, vergleicht sie mit einem Zielwert und schaltet die Heizung ein oder aus. Für diese eng umrissene Aufgabe hat ein einfacher Regler genügend mögliche Reaktionen, um mit den relevanten Zuständen seiner Umgebung umzugehen.

Jetzt machen wir die Umgebung komplizierter. Wir fügen mehr Variablen, mögliche Zustände, Abhängigkeiten und mehr Wechselwirkungen zwischen ihnen hinzu. Irgendwann hat der Regler nicht mehr genügend Möglichkeiten, zu unterscheiden, was gerade passiert, oder angemessen darauf zu reagieren. Ihn schneller zu machen löst dieses Problem nicht. Ein Thermostat, das die Heizung tausendmal pro Sekunde ein- und ausschalten kann, bleibt ein Thermostat.

Ashbys Gesetz der erforderlichen Varietät liefert dafür ein nützliches Denkmodell. Ein Regler braucht in seinen möglichen Reaktionen genügend Vielfalt, um mit der Vielfalt der Störungen umgehen zu können, die er kontrollieren soll. Die Mathematik dahinter ist präziser, als wir sie hier brauchen; die praktische Konsequenz ist einfach genug. Wenn man die Bandbreite der Zustände vergrößert, die ein System erzeugen oder antreffen kann, braucht man auch genügend Möglichkeiten, diese Zustände zu unterscheiden und darauf zu reagieren.

Genau hier bringen sich Technologieunternehmen immer wieder selbst in Schwierigkeiten. Wir erhöhen die Zahl möglicher Zustände eines Systems und feiern, dass die Maschinerie, die diese Zustände verarbeitet, schneller geworden ist. Wir fügen Integrationen, Automatisierung, Services, Abhängigkeiten und neue Pfade durch die Architektur hinzu, erhöhen anschließend den Durchsatz und nennen das Fortschritt.

Doch Durchsatz und Kontrolle sind nicht dieselbe Fähigkeit. Ein schnelleres System kann eine vorhandene Reaktion schneller ausführen. Es bekommt dadurch nicht automatisch eine bessere Reaktion, ein besseres Modell der Situation oder eine bessere Möglichkeit zu erkennen, dass seine Annahmen falsch sind.

Die Umgebung wird komplexer, der Regler nicht.

Das Falsche beschleunigen

Das Problem war nie die Geschwindigkeit

Deshalb entwickeln so viele Technologiewellen irgendwann denselben Geruch. Etwas wird einfacher, also machen wir mehr davon. Auslieferung wird einfacher, also liefern wir mehr aus. Integration wird einfacher, also verbinden wir mehr Dinge miteinander. Automatisierung wird einfacher, also automatisieren wir mehr Prozesse.

Nichts davon ist irrational; das meiste davon bringt anfangs echte Verbesserungen und echte Vorteile für die Beteiligten.

Das Problem beginnt, wenn die durch diese Verbesserungen erzeugte Komplexität schneller wächst als die Fähigkeit des Systems, sich selbst dabei zu verstehen und zu korrigieren.

Eine Pipeline kann schneller werden, während die Entscheidungen, die in sie hineinfließen, weiterhin schlecht sind. Infrastruktur kann besser skalieren, während die Architektur zunehmend schwerer zu durchdringen ist. Automatisierung kann manuelle Arbeit beseitigen und gleichzeitig ein Netz von Beziehungen erzeugen, von dem niemand mehr ein vollständiges mentales Modell besitzt. Die Maschinerie verbessert sich, aber es gibt kein Gesetz, nach dem die Steuerung im gleichen Maß besser werden müsste.

So formuliert klingt das offensichtlich, trotzdem verhält sich ein erheblicher Teil der Technologiebranche noch immer so, als wäre Beschleunigung ein Beleg für Reife. Ein System, das eine schlechte Entscheidung in einer statt in zehn Minuten ausführen kann, ist nicht zehnmal besser geworden. Es ist nur zehnmal schneller darin geworden, eine schlechte Entscheidung auszuführen.

Besonders schwer zu erkennen wird das Problem, wenn jede der lokalen Optimierungen tatsächlich einzeln funktioniert. Jedes Team kann zeigen, dass seine Version besser läuft als vorher, jede einzelne Änderung lässt sich begründen, jedes Dashboard kann grün sein. Und trotzdem kann das Gesamtsystem schwerer zu ändern, schwerer zu erklären und schwerer zu kontrollieren sein, weil jede Verbesserung die Zahl der Wechselwirkungen erhöht hat, die irgendjemand anderes verstehen muss.

An diesem Punkt hört Geschwindigkeit auf, nur ein Vorteil zu sein, und beginnt all das zu verstärken, was das System falsch macht.

Und dann kam KI

aber sie hat dieses Muster nicht erzeugt

Sie traf auf eine Branche, die jahrzehntelang gelernt hatte, einzelne Teile immer komplizierterer Systeme zu beschleunigen, während sie deren Steuerbarkeit vernachlässigte.

Was KI verändert, ist die Menge an Reibung, die in Bereichen übrig bleibt, die uns bisher vor allem deshalb ausgebremst haben, weil menschliche Arbeit teuer war.

Wir können Text, Code, Analysen und Pläne mit modernen KI-Tools sehr viel schneller erzeugen als früher.

Der Nutzen ist real, und genau deshalb wäre es ein Fehler, das lediglich als nächste Produktivitätssteigerung zu behandeln. Wir beschleunigen nicht mehr nur die Ausführung. Wir beginnen, Teile des Denkens und der Koordination selbst zu beschleunigen.

Damit wird die alte Frage wichtiger, nicht unwichtiger. Wenn ein System schneller handeln kann, kann es dann auch erkennen, wann seine Handlungen falsch sind? Wenn es dramatisch mehr Output produzieren kann, ist seine Fähigkeit, diesen Output zu beurteilen im gleichen Maß gewachsen? Wenn wir die Reibung entfernen, die bisher begrenzt hat, wie viele Änderungen überhaupt ausprobiert werden konnten, was hat sich sonst noch darauf verlassen, dass genau diese Reibung das System verständlich hielt?

Diese Fragen machen KI nicht zu einer schlechten Idee. Schwache Werkzeuge erzeugen diese Art von Problem nur selten, weil ihnen niemand genügend Verantwortung überträgt, damit es relevant würde; mächtige Werkzeuge schon. Gefährlich wird es dort, wo mehr Leistungsfähigkeit mit mehr Kontrolle verwechselt wird. Deshalb war die interessante Frage nie, ob wir Dinge schneller machen können. Natürlich können wir das. Darin sind wir inzwischen ausgesprochen gut. Die schwierigere Frage lautet, ob die Systeme rund um diese Geschwindigkeit noch erkennen können, wohin sie sich bewegen.

Geschwindigkeit ist keine Richtung. Mehr Geschwindigkeit repariert kein falsches System. Sie lässt nur die Konsequenzen früher eintreffen.

KI macht diesen Fehler interessanter, weil sie verändert, was teuer ist. Code, Text und andere Artefakte lassen sich heute in einem Tempo produzieren, das noch vor wenigen Jahren absurd gewesen wäre. Ihr Verständnis ist nicht im gleichen Maß billiger geworden.

Genau dort beginnt Teil 2: Der Engpass hat sich verschoben.

Ein System zu beschleunigen, macht es nicht automatisch besser. Geschwindigkeit lässt sich leicht messen, Richtung, Urteilskraft und Kontrolle dagegen sehr viel schwerer. In den vergangenen Jahrzehnten hat Technologie immer wieder Skalierung, Automatisierung und Durchsatz schneller erhöht, als die umgebenden Systeme verstehen oder korrigieren konnten, was dabei passierte. Ashbys Gesetz der erforderlichen Varietät liefert dafür einen nützlichen Rahmen: Je komplexer ein System wird, desto stärker muss auch seine Fähigkeit wachsen, diese Komplexität zu erfassen und darauf zu reagieren. KI schafft dieses Muster nicht neu, beschleunigt es aber, weil sie Reibung in Bereichen beseitigt, die bislang stark von menschlicher Arbeit abhingen. Die eigentliche Frage lautet daher nicht mehr, ob wir Dinge schneller machen können, sondern ob die Systeme rund um diese Geschwindigkeit noch erkennen, wann sie sich in die falsche Richtung bewegen.

Jo Hasenau