These

Die Beschleunigung der Softwareproduktion geht auf Kosten der Mechanismen, die Kompetenz hervorbringen

Info

Ursprünglich auf Französisch verfasst. Von KI übersetzt — der Sinn wurde bewahrt, nicht der Stil.

Blickwinkel

Ein begrenzter Bug, ein einfacher Endpunkt, ein Skript, ein Standardtest, ein bescheidenes Refactoring: Diese Aufgaben haben die Junior-Entwickler eines Teams nicht nur beschäftigt, sie haben sie hervorgebracht — und genau sie erledigt ein Entwicklungsassistent am besten. Die Beschleunigung streicht also nicht zuerst Stellen, sie streicht drei Mechanismen, über die ein Softwareteam seine eigene Kompetenz reproduzierte: den Preis des Codes, der dazu zwang, zu verstehen, bevor es weiterging; die geringe Größe des Systems, die den Fehler analysierbar und damit lehrreich hielt; die erste Stufe, die einen Anfänger dem Widerstand der Realität aussetzte, ohne das Produkt zu gefährden. Keiner der drei war eine beschlossene Praxis — es waren Nebenwirkungen einer Langsamkeit, die zu verteidigen nie jemand einen Grund hatte —, und deshalb tritt nichts von selbst an ihre Stelle, wenn sie wegfällt. Was an ihre Stelle tritt, muss beschlossen und aufgeschrieben werden: keinen Code mergen, den niemand erklären kann, die Tests an die Fachlichkeit binden, einen Katalog zugelassener Patterns führen, einen misslungenen Output des Assistenten als fehlende Direktive behandeln und das System danach beurteilen, was man daraus neu aufbauen könnte, statt danach, was es auf dem Bildschirm zeigt.

Zusammenfassung

Zusammengenommen trennen diese Notizen zuerst, was die gängige Diskussion vermengt: den Verfall des Codes und den Verfall der Kompetenz. Der erste ist alt, und der Assistent ändert daran nur das Tempo; der zweite ist neu, und für ihn kennt man kein Gegenmittel.

Die drei verlorenen Mechanismen sind keine drei Beispiele für dasselbe, sie bilden eine Kette. Der Preis des Codes erzeugte Verständnis schon beim Herstellen; die überschaubare Größe des Systems ließ einen Fehler auf eine Entscheidung zurückführen und damit im Nachhinein auswerten; die Einstiegsaufgaben lieferten die Gelegenheiten für Fehler überhaupt erst. Fällt das erste Glied weg, wächst das System schneller als die Lernschleife, und das zweite fällt mit. Fällt das dritte weg, gibt es gar nichts mehr zu analysieren. Die Beschleunigung trifft die Kette also an allen drei Gliedern zugleich, und mit ein und derselben Bewegung.

Hinzu kommt ein Druck, der nicht technisch ist. Die Lernzeit ist nicht länger geworden, aber alles um sie herum hat sich beschleunigt: Ihr relativer Preis ist sprunghaft gestiegen, und jede lokale Abwägung bevorzugt nun den schnellen Weg, ohne dass irgendeine Entscheidung die Ausbildung abgeschafft hätte. Das macht den Verlust unsichtbar — man stellt ihn nirgends fest, er häuft sich an.

Der letzte Baustein blickt nach vorn und trägt die Frage über das Team hinaus: Die Praktiken eines Handwerks lassen sich nicht aus dem Studium der bisherigen ableiten, sie entstehen aus einer Realität, die Widerstand leistet. Idempotenz, Retries, Circuit Breaker und Observability sind aus erlittenen Ausfällen und Migrationen hervorgegangen, nicht aus einem nachgelesenen Katalog. Eine Generation, die dem Widerstand nicht mehr unmittelbar begegnet, erbt die vorhandenen Patterns, ohne die Mittel, neue zu erfinden.

Bleibt, was diese Notizen dem entgegensetzen, und das hat einen inneren Zusammenhang: Jede Gegenmaßnahme setzt ausdrücklich einen der weggefallenen Mechanismen wieder ein. Die Rekonstruierbarkeit macht das Verständnis überprüfbar, das der Preis des Codes nebenbei sicherte. Die Weigerung, unerklärten Code zu mergen, gibt dem, was die Verständnisschuld später kosten würde, sofort einen Preis. Der Pattern-Katalog stellt den Zwang zur Einheitlichkeit wieder her, den die Langsamkeit schon deshalb ausübte, weil niemand die Kraft hatte, alles neu zu erfinden. Die Auswertung misslungener Outputs macht aus dem Fehlschlag Lernen statt einer Korrektur zum Wegwerfen. Und die bewusst wieder eingebaute Schwierigkeit — Dojos ohne Assistent, Reviews, in denen man den Code selbst erklärt — übernimmt, was die anderen nicht abdecken: Eine Kompetenz, die der Alltag nicht mehr braucht, erlischt, wenn nichts sie fordert.

Spannungen / Widersprüche

Diese Notizen sind sich nicht einig, ob der Verlust unausweichlich ist. Die einen, die die unterbrochene Kette beschreiben, setzen voraus, dass Lernen über die Produktion lief; die anderen, die relativieren, erinnern daran, dass ein als Tutor eingesetzter Assistent — erklären, vergleichen, zum Formulieren zwingen, ein Review simulieren — einen Teil dessen vermittelt, was die erste Stufe lehrte. Funktioniert dieser Ersatz wirklich, ist die Kette nicht unterbrochen, sondern verlegt. Hier lässt sich das nicht entscheiden, und der Streit dreht sich um den Teil des Lernens, der voraussetzt, für das Ergebnis verantwortlich gewesen zu sein.

Zweiter, wirtschaftlicher Dissens: Die Beschleunigung finanziert auch, was sie bedroht, denn die bei der Produktion gewonnene Zeit könnte das Lernen bezahlen. Die These besagt, dass diese Zeit von sich aus in noch mehr Produktion fließt; sie besagt nicht, dass man sie nicht anders verwenden kann.

Dritter Reibungspunkt, diesmal ein innerer: Die kurze Schleife, die diese Notizen verteidigen, hat ihren eigenen Mangel. Sie lehrt das lokale Handeln und setzt nie den Systemeffekten aus, die erst spät und in großem Maßstab auftreten. Ein Team, das nur die kleinen, analysierbaren Fehler schützte, brächte Entwickler hervor, die blind sind für das, was in Produktion wirklich bricht.

Fragen

  • Welche dieser Gegenmaßnahmen bringen tatsächlich Kompetenz hervor, und welche nur deren Spur in Dokumenten? Eine Architekturentscheidung aufzuschreiben und sie treffen zu können, ist nicht dasselbe.
  • Welcher indirekte Kontakt mit dem Widerstand der Realität — das Post-mortem eines Ausfalls, den man nicht selbst erlebt hat, Betriebsprotokolle, der öffentliche Vorfall eines anderen Unternehmens — genügt, um ein neues Pattern entstehen zu lassen, und welcher gibt nur das schon gefundene weiter?
  • Woran erkennt ein Team, dass es die Schwelle überschritten hat, ab der niemand mehr das System erklären kann, das es wartet — anders, als auf den Ausfall zu warten, der es ihm beibringt?
  • Wenn eine Organisation bereits ausgebildete Leute einstellt: Auf welcher Ebene — Unternehmen, Branche, Hochschule — sind die Kosten der ersten Stufe zu tragen, da niemand außerhalb des Ganzen rekrutieren kann, zu dem er gehört?