Hinter dem Wort Fabrik steckt eine Schleife. Eine Fertigungslinie, die denselben Zyklus immer wieder durchläuft, jede Runde ein Stück mehr, und der ganze Sinn besteht darin, dass Sie sie einmal anwerfen und sie von selbst weiterläuft. Die agentische Softwarefabrik, wie sie gerade gebaut wird, setzt die Modelle in diese Schleife hinein: Die Modelle schlagen die Arbeit vor, erledigen sie, prüfen sie und gehen in die nächste Runde, und Sie werden vom Tippen zum Beaufsichtigen befördert. Eine Schleife, die sich von selbst dreht.
Ich habe eine solche Fabrik gebaut, um clive zu verbessern, ein Werkzeug, das eine Shell steuert und mit Agenten Aufgaben auf der Kommandozeile erledigt; die Fabrik soll Änderungen an clive vorschlagen und diejenigen behalten, die helfen. Leicht gesagt. Aber eine Fabrik, die auf ein echtes Ziel gerichtet ist, das selbst in Bewegung ist, hat am Ende nicht eine Schleife, sondern drei. Diese drei Schleifen sind nicht von derselben Art, und sie sind beim Bauen entstanden, so wie sich die Form eines Weges beim Gehen ergibt.
Zwei der drei Schleifen sind Motoren, und von ihnen erzählt der Hype. Die Fabrik verbessert sich selbst: Sie schlägt eine Änderung an ihrem eigenen Innenleben vor und bewertet sie anhand ihrer eigenen festen Prüfungen. clive verbessert sich unter der Fabrik: Jede vorgeschlagene Änderung wird am tatsächlichen Endzustand einer echten Shell gemessen, wurde die Datei geschrieben, ist der Dienst hochgefahren. Beides ist dieselbe Maschine an zwei Adressen. Jede schuftet vor sich hin. Jede behält oder verwirft anhand einer Prüfung, die vollständig in ihrer eigenen Welt liegt, die Fabrik muss also nie auf clive schauen, um zu wissen, ob ihre eigene Änderung geholfen hat, und die Schleife von clive muss nie auf die Fabrik schauen. Genau diese Lokalität ist ihr Sinn, denn eine Schleife, deren Test ganz in ihr selbst liegt, können Sie schnell laufen lassen und sich selbst überlassen. Außerhalb von ihr muss niemand gefragt werden, bevor sie die Wahrheit kennt.
Die dritte Schleife ist allerdings von anderer Art. Die beiden Motoren können konstruktionsbedingt nicht über die Grenze zwischen ihnen hinausschauen, also muss es etwas anderes tun, sonst driften die beiden Hälften auseinander, während jede überzeugt bleibt, dass bei ihr alles in Ordnung ist. Als ich einen Schwung Verbesserungen von clive in sein Repository pushen wollte, halfen all die Wiederholungsversuche und selbstreparierenden Pläne nichts: Der Push konnte nicht stattfinden, weil der Teil des Systems, der ihn erledigt, noch gar nicht existierte. Die Arbeit auf den gemeinsamen Branch zu übernehmen, sie dorthin zu pushen, wo andere sie sehen können, die Notizen zu aktualisieren, die damit erledigten Issues zu schließen: Nichts davon war automatisiert. Also habe ich es von Hand gemacht und mich dann sofort darangesetzt, es der Fabrik beizubringen. Das ist die dritte Schleife. Sie überquert die Grenze und stellt jede Ebene wieder auf den Boden des tatsächlichen Zustands der anderen. Was sie liefert, würde niemand Fleißarbeit nennen, sie gleicht ab, und sie läuft langsam, weil es mehr kostet, eine Ebene am echten Zustand der anderen zu prüfen als an sich selbst. Also drei Schleifen, aber zwei Arten: zwei schnelle Motoren und eine langsamere Schleife, die die Lücke zwischen ihnen überbrückt.
Typischerweise hat jeder dasselbe Bild im Kopf: ein Mensch über den Schleifen, der beaufsichtigt und bereit ist einzugreifen. Es zeigt sich aber, dass die Motoren keine Aufsicht brauchen; sie sind lokal und schnell, der am leichtesten zu automatisierende Teil des Ganzen. Der Teil, der einen Menschen braucht, ist die langsame Schleife über die Grenze, denn dort liegen die Urteile, die kein lokaler Test fällen kann. Gilt der Maßstab noch, nachdem sich clive unter ihm verändert hat? Ist clive dem Test entwachsen? Ist das echter Fortschritt, oder sind sich nur die beiden Motoren einig, während beide still von der Welt wegdriften? Über dieser Schleife stehen Sie nicht. Sie sind sie.
Gemerkt habe ich das in der wohl gewöhnlichsten Ecke, die man sich vorstellen kann, im Issue Tracker. Als ich der Fabrik beibrachte, erledigte Issues zu schließen, war mein erster Impuls der naheliegende: Ein ausgelieferter Commit nennt ein Issue, also wird das Issue geschlossen. Die Fabrik plant ihre nächste Arbeit, indem sie ihre offenen Issues liest. Ein Epic, das in Scheiben ausgeliefert wird, wäre in dem Moment geschlossen worden, in dem die erste Scheibe ankam, und sobald es geschlossen war, wäre es aus dem Blickfeld der Fabrik verschwunden, und die Fabrik hätte vergessen, den Rest ihres eigenen Plans zu bauen. Genau so ein verfrühtes Erledigt hatte ich zuvor in derselben Woche von Hand wieder geöffnet. Deshalb bekam das Schließen eine Sperre: statt einer Pauschalregel ein ausdrückliches Schlüsselwort im Commit, mit dem der Entwickler sagt, schließ das, und es auch so meint. Ein Issue zu schließen ist ein Aktuator, der auf den eigenen Input der Fabrik schreibt. Der Issue Tracker ist hier kein Nebensystem; er gehört zu der Fläche, auf die die Fabrik ihre Planung stellt, und ein Aktuator, der dort frei herumkritzeln darf, verdirbt den Boden, auf dem die nächste Entscheidung steht.
Eine Sache aus dieser Session lohnt noch den Blick, weil sie dieselbe Form von einer anderen Seite zeigt. Jeder Schritt darin, der sich nicht rückgängig machen ließ, wartete auf mich. Die Arbeit auf einen Main-Branch zu mergen, in ein Repository zu pushen, das andere sehen können, zu entscheiden, ob ein Issue geschlossen oder nur kommentiert wird: Jeder dieser Schritte hielt an und fragte nach, selbst mitten in einem langen Lauf, den die Maschine ansonsten allein steuerte. Die Motoren liefen breit und frei; die unumkehrbaren Handlungen stellten sich hinter einem einzigen menschlichen Ja an. Nur in dieser Anordnung hat ein breites, schnelles System noch jemanden, der dafür einstehen kann, was es mit der Welt außerhalb anstellt.
Unterm Strich ist es eigentlich recht einfach, die Schufterei der Fabrik zu automatisieren. Die Fabrik kann Ihnen sagen, dass ihre Prüfungen grün sind, aber nicht, ob die Prüfungen noch bedeuten, was sie letzte Woche bedeutet haben. Die Fabrik zu steuern braucht deshalb vorerst Ihr Urteil. Bis zu einer vollautomatischen Fabrik, die auch die langsamere Schleife schließt, ist noch Arbeit nötig. Zeit, die Fabrik auf sich selbst anzusetzen und sie das herausfinden zu lassen.
Aus dem Englischen übersetzt: zum Originalbeitrag