Ihr AI-Coding-Setup ist ein kompliziertes Werkzeug. Ihre Codebasis ist komplex.
Neue AI-Coding-Tools versprechen, Agenten zuverlässiger zu machen. Man sieht Frameworks für Skills, Superkräfte und spezifikationsgetriebene Entwicklung. Diese Tools funktionieren. Sie helfen Agenten dabei, einem Prozess zu folgen, anstatt zu raten.
Aber es gibt eine Falle. Die Leute glauben, dass ein besseres Setup für eine einzelne Aufgabe ein kohärentes System schafft. Das tut es nicht.
Um zu verstehen, warum, nutzt man das Cynefin-Framework. Es unterteilt Probleme in zwei Typen: Kompliziert und Komplex.
Komplizierte Probleme Diese haben eine bekannte Antwort. Man nutzt Analyse und Geschicklichkeit, um sie zu finden. Beispiele hierfür sind das Refactoring eines Moduls oder das Schreiben einer Validierungsfunktion. Sobald man die Antwort gefunden hat, kann man sie wiederholen. Die meisten AI-Coding-Tools bewegen sich in diesem Bereich. Sie konzentrieren sich auf die Arbeitseinheit. Sie machen Aufgaben wiederholbar und überprüfbar.
Komplexe Probleme Diese haben keine vorhersehbare Antwort. Das System ist ein Geflecht aus Einzelteilen. Ergebnisse zeigen sich erst, nachdem man gehandelt hat. Werden vierzig Merges die Architektur in sechs Monaten zerstören? Wird Agent A Agent B widersprechen? Diese Antworten findet man nicht, indem man nur eine einzelne Datei betrachtet. Sie entstehen aus der Art und Weise, wie die Teile interagieren.
Die Diskrepanz entsteht, wenn man erwartet, dass komplizierte Tools komplexe Probleme lösen.
Ein Tool mag einen Agenten dazu bringen, eine perfekte Funktion zu schreiben. Aber wenn eine Aufgabe userId verwendet und eine andere user_id, bricht das System zusammen. Beide Aufgaben waren isoliert betrachtet „korrekt“. Das Scheitern ist emergent. Es liegt in der Interaktion, nicht in der Einheit.
Selbst massive Kontextfenster können das nicht lösen. Ein größeres Fenster hilft dabei, mehr zu sehen, aber Sehen ist nicht dasselbe wie Schlussfolgern. Man kann eine gesamte Codebasis lesen und trotzdem nicht wissen, ob sie unter Produktionslast in einen Deadlock gerät. Das ist eine Laufzeiteigenschaft.
So geht man mit beidem um:
- Für die komplizierte Ebene: Nutzen Sie Skills, Spezifikationen und TDD. Diese machen den individuellen Output des Agenten präzise.
- Für die komplexe Ebene: Nutzen Sie Probe-Sense-Respond. Man kann nicht vorhersagen, was kaputtgehen wird. Man muss mergen, deployen und beobachten. Nutzen Sie Integrationstests und Observability, um zu spüren, was passiert, wenn Teile zusammenkommen.
Lassen Sie sich nicht von dem Versprechen blenden, dass eine bessere Spezifikation Ihr System stabil macht. Spezifikationen machen die Einheit zuverlässig. Sie machen das System nicht kohärent.
Passen Sie Ihre Methode der Domäne an. Nutzen Sie Tools, um die Einheit zu perfektionieren. Nutzen Sie Experimente, um das System zu verstehen.
Optionale Lern-Community: https://t.me/GyaanSetuAi
