Spec-Driven Development hat das eigentliche Problem nicht gelöst
Spec-driven development (SDD) ist die neue Antwort auf das Problem, dass KI-Agenten falschen Code schreiben.
Der Workflow ist einfach. Man schreibt eine strukturierte Spezifikation. Ein Agent führt den Plan aus. Man überprüft das Ergebnis. Tools wie GitHub Spec Kit, OpenSpec und Kiro führen diesen Wandel an.
Dieser Ansatz funktioniert besser als reines Prompting. Aber er hat einen massiven Fehler.
Er setzt voraus, dass die Spezifikation die „Source of Truth“ bleibt. Das ist eine Lüge.
Seit 20 Jahren versuchen wir, Dokumentationen mit dem Code synchron zu halten. Design-Docs, Wikis und READMEs sind alle gescheitert. Warum? Weil das Bearbeiten von Code schnell geht und einen Mehrwert liefert. Das Bearbeiten eines Dokuments ist langsam und liefert nichts Sichtbares. Dokumentation verliert immer gegen Geschwindigkeit.
SDD steht vor demselben Problem.
Ein Agent stößt auf eine Einschränkung. Er korrigiert den Code, damit er funktioniert. Nun passen Code und Spezifikation nicht mehr zusammen. Die Spezifikation ist innerhalb weniger Tage nutzlos. Die meisten Frameworks raten dazu, „Disziplin“ anzuwenden, um dies zu beheben. Disziplin hat uns schon früher jedes Mal im Stich gelassen.
Eine vollständige Spezifikation vor dem Coden zu schreiben, setzt voraus, dass man während der Implementierung nichts lernt. Das bricht den Feedback-Loop. Es verwandelt agile Entwicklung in einen schwerfälligen Prozess mit hohem Vorlauf.
Ein Entwickler leitete ein mehrmonatiges Projekt unter Verwendung von SDD. Der Agent folgte jeder Spezifikation perfekt. Das System scheiterte dennoch. Die Spezifikation konnte das Wissen nicht erfassen, das erst während der Erstellung entsteht. Eine kleine Infrastrukturänderung zerstörte den gesamten Spezifikations-Graphen.
Ein anderes Team versuchte SDD und stellte fest, dass es 10-mal langsamer war. Sie hatten mehr Ceremony, aber die gleiche Anzahl an Bugs.
Das Ziel sollte nicht mehr Dokumentation sein.
Das eigentliche Problem ist, wie man Spezifikationen am Leben erhält. Wir brauchen Spezifikationen, die sich selbst aktualisieren. Wir brauchen Tools, die die Spezifikation aus dem Code und dem laufenden System ableiten. Es sollte wie eine Lockfile funktionieren. Es muss automatisch ablaufen.
Ich bin mir nicht sicher, ob das bereits möglich ist. Ich möchte von Leuten hören, die in der Produktion entwickeln.
- Überlebt Ihre Spezifikation die dritte Woche?
- Wenn sie driftet, was verursacht den Bruch?
- Haben Sie versucht, Spezifikationen aus Code oder Telemetrie zu generieren?
- Bietet die Strenge einen Mehrwert oder ist sie nur reine Ceremony?
Optionale Lern-Community: https://t.me/GyaanSetuAi