KI verändert die Softwareentwicklung rasant. Die Codegenerierung wird immer günstiger und schneller. Mit modernen KI-Tools ist das Schreiben von Code oft nicht mehr der schwierigste Teil der Softwareentwicklung.

Die eigentliche Herausforderung liegt woanders: klar zu definieren, was das System leisten soll.

Ist die Spezifikation vage, produziert die KI einfach schneller fehlerhafte Software.

Gestern stellte ein Redner auf einem Meetup, bei dem ich über Spec-Driven Development sprach, eine Anwendung vor, die er mit der BMAD-Methode entwickelt hatte, einem Framework zur Strukturierung KI-gestützter Entwicklung. Die Idee ist, chaotische Eingabeaufforderungen durch einen disziplinierteren Prozess zu ersetzen. Anstatt eines einzelnen KI-Assistenten setzt BMAD mehrere spezialisierte KI-Agenten ein, die ein Entwicklungsteam simulieren. Ein Agent übernimmt die Rolle des Analysten, ein anderer die des Produktmanagers, ein weiterer die des Architekten und andere konzentrieren sich auf Entwicklung oder Test.

Jeder Agent erzeugt Artefakte, die an die nächste Phase des Workflows weitergegeben werden.

Auf den ersten Blick wirkt dies wie ein moderner Ansatz für die KI-gestützte Softwareentwicklung. Bei genauerer Betrachtung der Struktur fällt jedoch die Vertrautheit auf.

Der BMAD-Prozess folgt weitgehend dem klassischen Produktentwicklungsablauf:

Vision
→ Produktanforderungsdokument
→ Architektur
→ User Stories
→ Implementierung

Der Unterschied besteht darin, dass viele dieser Artefakte von KI-Agenten generiert werden.

Das Framework konzentriert sich daher auf die Organisation der KI-Arbeit.

Dies wirft jedoch eine wichtige Frage auf:

Liegt das eigentliche Problem in der KI-gestützten Entwicklung in der mangelnden Agenten-Orchestrierung? Oder hat es tiefere Ursachen?

Der eigentliche Engpass: Klarheit der Spezifikation

Viele Teams, die mit KI-Entwicklung experimentieren, stoßen auf dasselbe Problem. KI-Tools können zwar sehr schnell große Mengen an Code generieren, stoßen jedoch auf Schwierigkeiten, wenn die Beschreibung des Systemverhaltens vage ist.

User Stories veranschaulichen dieses Problem gut.

Eine typische Story könnte lauten:

„Als Benutzer möchte ich eine Datei hochladen, um Dokumente zu teilen.“

Für menschliche Teams funktioniert das recht gut. Entwickler stellen Fragen, Produktverantwortliche klären offene Details, und viele Annahmen werden in Diskussionen geklärt.

KI funktioniert anders.

Große Sprachmodelle können fehlende Informationen nicht ohne Weiteres erschließen oder implizite Annahmen hinterfragen. Sie sind vollständig auf den Kontext angewiesen.

Eine typische User Story spezifiziert selten wichtige Aspekte des Systemverhaltens:

  • die genauen Interaktionsschritte
  • Validierungsregeln
  • alternative Abläufe
  • Fehlerbehandlung
  • Zustandsübergänge
  • Systemreaktionen

Deshalb generiert KI oft Code, der zwar technisch korrekt ist, aber nicht dem beabsichtigten Systemverhalten entspricht.

Das Hinzufügen weiterer KI-Agenten oder zusätzlicher Workflow-Schritte beseitigt diese Mehrdeutigkeit nicht. Es verlagert die Unsicherheit lediglich von einem Artefakt zum anderen.

Eine spezifikationsgetriebene Perspektive

Der AI Unified Process geht diese Herausforderung anders an.

Anstatt sich auf die Orchestrierung von KI-Agenten zu konzentrieren, fokussiert er sich auf die Erstellung präziser Spezifikationen, die die Grundlage der Entwicklung bilden. KI wird zur Generierung von Code, Tests und Dokumentation verwendet, aber die Spezifikation bleibt die zentrale Informationsquelle.

Bei diesem Ansatz wird das System durch strukturierte Artefakte beschrieben, wie zum Beispiel:

  • Funktionale Anforderungen
  • Entitätsmodelle
  • Systemanwendungsfälle.

Diese Artefakte bilden eine kohärente Beschreibung des Systems. Ändert sich das Verhalten, wird zunächst die Spezifikation angepasst. Implementierung, Tests und Dokumentation folgen.

Dadurch entsteht eine stabile Beziehung zwischen Spezifikation und Software.

KI funktioniert in dieser Umgebung am besten, da sie klare und strukturierte Eingaben erhält.

Systemanwendungsfälle als Verhaltensspezifikationen

Ein wichtiges Element dieses Ansatzes ist der Systemanwendungsfall.

Ein Systemanwendungsfall beschreibt kein vages Ziel. Er beschreibt Schritt für Schritt, wie sich das System verhält.

Beispiel:

Akteur: Kunde

Hauptablauf

  1. Kunde öffnet Bestellformular
  2. Kunde gibt Bestelldaten ein
  3. System validiert die Daten
  4. System erstellt die Bestellung
  5. System bestätigt die Bestellung

Alternativer Ablauf
3a Validierung schlägt fehl
System zeigt Validierungsfehler an

Diese Struktur liefert genau die Informationen, die die KI benötigt:

  • klare Interaktionsschritte
  • explizite Verantwortlichkeiten
  • definierte alternative Pfade
  • vorhersagbare Systemreaktionen

Aus einer solchen Spezifikation kann die KI große Teile der Implementierung ableiten:

  • Backend-Logik
  • Verhalten der Benutzeroberfläche
  • Tests
  • Validierungsregeln
  • Die Spezifikation wird so zu einer ausführbaren Beschreibung des Systems anstatt einer vagen Anforderung.

Zwei unterschiedliche Strategien

Beim Vergleich zwischen BMAD und dem AI Unified Process wird der Unterschied deutlich.

BMAD strukturiert den Prozess um die KI herum, indem es mehrere Agentenrollen und Workflows einführt.

Der AI Unified Process strukturiert das Wissen über das System durch präzise Spezifikationen, die die Entwicklung steuern.

Beide Ansätze versuchen, die KI-gestützte Entwicklung vorhersagbarer zu machen. Sie adressieren jedoch unterschiedliche Aspekte des Problems.

BMAD konzentriert sich auf die Organisation der KI-Aktivitäten.
Der KI-basierte Unified Process konzentriert sich auf die Verbesserung der Qualität der der KI zugeführten Informationen.
In der Praxis ist das zweite Problem oft wichtiger.

Der Wandel in der Softwareentwicklung

KI beschleunigt nicht nur die Codierung. Sie verschiebt den Schwerpunkt der Softwareentwicklung.

Die Implementierung wird einfacher.
Die Spezifikation gewinnt an Bedeutung.

Teams, die weiterhin auf vage Anforderungen setzen, generieren zwar schneller Code, aber auch schneller fehlerhaftes Verhalten.

Teams, die in klare Verhaltensspezifikationen investieren, schöpfen das wahre Potenzial der KI-gestützten Entwicklung aus.

Es gibt einen weiteren Vorteil, der oft übersehen wird. Gut strukturierte Spezifikationen sind nicht nur während der Implementierung nützlich, sondern bilden auch eine dauerhafte Beschreibung des Systems selbst.

Auch Jahre später, wenn ein System erweitert, migriert oder modernisiert werden muss, beschreiben diese Spezifikationen noch immer das gewünschte Systemverhalten. Sie bieten eine verlässliche Referenz, die Teams dabei hilft, die Intention der Software zu verstehen, ohne den Code per Reverse Engineering analysieren zu müssen.

Dadurch werden Spezifikationen zu einem nachhaltigen Gut. Sie überdauern technologische Veränderungen, Framework-Migrationen und Architekturtransformationen.

Die Zukunft der Softwareentwicklung hängt daher möglicherweise nicht primär von besseren Codegeneratoren ab.

Sie hängt vielmehr von etwas viel Fundamentalerem ab: der Fähigkeit, das Systemverhalten klar zu beschreiben und dieses Wissen in Spezifikationen zu bewahren, die über Jahrzehnte hinweg nützlich bleiben.