Vibe Coding vs. Spezifikationsgetriebene Entwicklung
Zwei Ansaetze fuer die Arbeit mit KI -- zu wissen, wann man welchen einsetzt, ist die Schluesselfaehigkeit.
Was ist Vibe Coding?
Anfang 2025 gepraegt, bedeutet "Vibe Coding", der KI eine lose Beschreibung zu geben und zu sehen, was passiert:
"Bau mir eine Todo-App mit einer huebschen UI"
Sie legen weder den Tech-Stack noch die Architektur oder Anforderungen fest. Sie lassen die KI alle Entscheidungen treffen und iterieren basierend auf dem, was Sie sehen.
Der Vibe-Coding-Workflow:
- Beschreiben Sie, was Sie wollen, in einfacher Sprache
- Lassen Sie die KI alles generieren
- Fuehren Sie es aus und sehen Sie, was passiert
- Sagen Sie "mach die Buttons groesser" oder "fuege einen Dark Mode hinzu"
- Wiederholen, bis es gut aussieht
Es ist wie Wegbeschreibungen nach Gefuehl:
"Geh in die Richtung, bis du ein Cafe siehst, dann biege links ab"
vs. Koordinaten angeben:
"Geh zur Hauptstrasse 123, Gebaeude B, 3. Stock"
Was ist Spezifikationsgetriebene Entwicklung?
Der gegenteilige Ansatz -- praezise Spezifikationen, bevor Code generiert wird:
## Feature: Benutzer-Authentifizierung
### Anforderungen:
- JWT-basierte Authentifizierung mit Refresh-Tokens
- Passwoerter gehasht mit bcrypt (12 Salt-Runden)
- Login-Endpunkt: POST /api/auth/login
- Token-Erneuerung: POST /api/auth/refresh
- Ratenbegrenzung: 5 fehlgeschlagene Versuche pro 15 Minuten
- Token-Ablauf: 15 Min. Access, 7 Tage Refresh
### Tech-Stack: Express.js, MongoDB, jsonwebtoken
### Tests: Jest, mindestens 90% Abdeckung im Auth-Modul
Jede Entscheidung wird vorab getroffen. Die KI fuehrt die Spezifikation aus, nicht ihre Fantasie.
Wann Vibe Coding passt
Vibe Coding funktioniert am besten, wenn die Risiken niedrig und Geschwindigkeit wichtig sind:
Geeignet fuer:
- Prototypen und Proof-of-Concepts
- Persoenliche Projekte und Experimente
- Hackathons und Demos
- Erkundung eines neuen Frameworks oder einer Bibliothek
- Einmal-Skripte, die man nur einmal verwendet
- Lernen -- sehen, wie die KI Probleme angeht
Beispiel -- perfektes Vibe-Coding-Szenario:
"Ich brauche ein schnelles Skript, das eine CSV mit Mitarbeiternamen einliest und Geburtstags-Erinnerungs-E-Mails generiert. Nichts Ausgefallenes, einfach funktional."
Keine Spezifikation noetig. Wenn es funktioniert, ausliefern. Wenn nicht, iterieren.
Wann eine Spezifikation zuerst kommt
Spezifikationsgetriebene Entwicklung ist unverzichtbar, wenn der Code wichtig ist:
Erforderlich fuer:
- Produktionssysteme mit echten Nutzern
- Features mit Sicherheitsrelevanz (Auth, Zahlungen, Datenverarbeitung)
- Code, den andere Entwickler warten muessen
- Systeme mit Compliance-Anforderungen (HIPAA, SOC 2)
- Performance-kritische Pfade
- Alles, was mit Geld oder sensiblen Daten zu tun hat
Beispiel -- hier braucht man eine Spezifikation:
Einen mandantenfaehigen API-Gateway bauen, der Authentifizierung, Ratenbegrenzung und Kostenverfolgung fuer 50 Enterprise-Kunden uebernimmt.
Vibe Coding wuerde hier inkonsistenten, unsicheren, unwartbaren Code erzeugen.
Der Denkwandel
Traditionelle Entwicklung vs. KI-gestuetzte Entwicklung:
Traditionell:
Denken → Entwerfen → Coden → Testen → Debuggen → Ausliefern
(Sie machen alles)
KI-gestuetzt (Spezifikationsgetrieben):
Denken → Spezifizieren → KI codet → Sie ueberpruefen → Testen → Ausliefern
(Sie konzentrieren sich auf das WAS, KI erledigt das WIE)
KI-gestuetzt (Vibe):
Beschreiben → KI codet → Ergebnis ansehen → Iterieren → Ausliefern
(Sie steuern nach Gefuehl, KI macht alles)
Die zentrale Erkenntnis: Ihre Aufgabe verschiebt sich vom Code-Schreiben zum klaren Definieren von Problemen und kritischen Ueberpruefen von Loesungen. Je besser Sie artikulieren koennen, was Sie wollen, desto besser wird die KI-Ausgabe.
Der Hybrid-Ansatz
In der Praxis nutzen die meisten erfahrenen Entwickler beides:
Phase 1: Vibe-Code fuer einen Prototyp (30 Minuten)
→ "Bau mir ein Dashboard, das API-Nutzungsstatistiken zeigt"
→ Einen funktionierenden Prototyp erhalten, sehen ob das Konzept funktioniert
Phase 2: Spezifikation fuer die Produktionsversion (2 Stunden)
→ Detaillierte Anforderungen basierend auf dem Gelernten schreiben
→ Datenmodelle, API-Vertraege, Fehlerbehandlung festlegen
→ Sicherheitsanforderungen und Testkriterien definieren
Phase 3: KI baut nach Spezifikation (1 Stunde)
→ Spezifikation + Prototyp als Referenz bereitstellen
→ KI generiert produktionsreifen Code
→ Sie ueberpruefen, testen und iterieren an spezifischen Problemen
Faustregel: Vibe-Code zum Erkunden. Spezifikation zum Bauen. Niemals Vibe-Code in die Produktion bringen ohne Ueberprueefung.
Haeufige Fehler
Fallstricke bei der Wahl zwischen den Ansaetzen:
| Fehler | Warum es ein Problem ist | Loesung |
|---|---|---|
| Vibe Coding fuer ein Sicherheits-Feature | KI trifft unsichere Standardentscheidungen | Sicherheitsanforderungen immer spezifizieren |
| Ueber-Spezifizierung eines Prototyps | Verschwendet Zeit fuer Wegwerf-Code | Lassen Sie die KI Sie ueberraschen |
| Kein Review von Vibe-Code-Ausgabe | Versteckte Bugs, schlechte Muster | Immer vor dem Commit ueberpruefen |
| Spezifikation ohne Beispiele | KI interpretiert Anforderungen falsch | Input/Output-Beispiele einfuegen |
| Spezifikation nie iterieren | Erste Spezifikation ist selten perfekt | Spezifikation basierend auf KI-Ausgabe aktualisieren |
Der groesste Fehler: Anzunehmen, dass KI-generierter Code korrekt ist, weil er kompiliert und laeuft. Immer ueberpruefen, besonders sicherheitsrelevanten Code.
---quiz question: Was ist "Vibe Coding"? options:
- { text: "Eine strikte Methodik mit detaillierten Spezifikationen", correct: false }
- { text: "Der KI eine lose Beschreibung geben und basierend auf dem Ergebnis iterieren", correct: true }
- { text: "Beim Coden Musik hoeren fuer Inspiration", correct: false }
- { text: "Eine Art Pair-Programming mit einem anderen Menschen", correct: false } feedback: Vibe Coding bedeutet, in einfacher Sprache zu beschreiben, was man will, ohne detaillierte Spezifikationen, die KI alle Entscheidungen treffen zu lassen und basierend auf dem Ergebnis zu iterieren. Es ist schnell, aber am besten fuer Aufgaben mit niedrigem Risiko.
---quiz question: Wann sollten Sie immer spezifikationsgetriebene Entwicklung statt Vibe Coding verwenden? options:
- { text: "Bei persoenlichen Nebenprojekten", correct: false }
- { text: "Beim Bau von Produktionssystemen mit Sicherheitsrelevanz", correct: true }
- { text: "Wenn man zum ersten Mal eine neue Programmiersprache verwendet", correct: false } feedback: Produktionssysteme -- besonders solche mit Sicherheits-, Compliance-, Geld- oder sensiblen Datenbezug -- erfordern detaillierte Spezifikationen. Vibe Coding wuerde hier inkonsistenten, unsicheren, unwartbaren Code erzeugen.
---quiz question: Was ist der "Hybrid-Ansatz" in der KI-gestuetzten Entwicklung? options:
- { text: "Zwei verschiedene KI-Modelle gleichzeitig verwenden", correct: false }
- { text: "Einen Prototyp per Vibe Coding erstellen, dann eine Spezifikation fuer die Produktionsversion schreiben", correct: true }
- { text: "Die Haelfte des Codes manuell und die andere Haelfte mit KI schreiben", correct: false } feedback: Der Hybrid-Ansatz nutzt Vibe Coding fuer schnelles Prototyping und Erkundung und wechselt dann zur spezifikationsgetriebenen Entwicklung fuer die Produktionsimplementierung -- die Geschwindigkeit des Vibe Codings mit der Qualitaet der spezifikationsgetriebenen Arbeit kombinierend.