In diesem Vortrag der AI Engineer Konferenz argumentiert der Software-Entwickler und Ausbilder Matt Pocock, dass Software-Grundlagen in der Ära fortschrittlicher KI-Codierungswerkzeuge (wie Claude Code) wichtiger sind denn je. Blindes "Specs-to-Code"-Vorgehen führt zu exponentieller Code-Verschlechterung, Software-Entropie und unwartbarem Spaghetti-Code. Um das volle Potenzial von KI-Agenten zu nutzen, müssen Entwickler bewährte Software-Prinzipien wie Domain-Driven Design (ubiquitäre Sprache), Test-Driven Development (TDD) und tiefe Module (nach John Ousterhout) anwenden. Pocock stellt praxisnahe, von ihm entwickelte LLM-Skills vor, darunter grill-me zur erzwungenen Alignment-Planung und strukturierte Glossare, um den Menschen als strategischen Architekten zu etablieren, während die KI als taktischer Ausführer dient.
Wichtigste Punkte & Zeitstempel
0:07 Der Mythos von "Specs to Code": Das blosse Generieren von Code aus textuellen Spezifikationen ohne manuelle Code-Prüfung ("Vibe Coding") führt bei jedem Kompilierungsdurchlauf zu exponentiell schlechterem Code und unkontrolliertem Spaghetti-Code.
2:21 Software-Fundamentale und Komplexität: Unter Berufung auf John Ousterhouts A Philosophy of Software Design wird Komplexität als Struktur definiert, die ein System schwer veränderbar macht. Ohne Systemdesign führt Software-Entropie unweigerlich zu Systemkollbrüchen.
4:25 Alignment des Design-Konzepts (grill-me): Um Kommunikationslücken zwischen Mensch und KI zu schliessen, entwickelte Pocock den Skill grill-me (basiert auf Frederick P. Brooks), bei dem das LLM den Entwickler unerbittlich interviewt, um ein gemeinsames Designkonzept und eine valide Entscheidungsbaumstruktur zu erarbeiten.
7:26 Ubiquitäre Sprache (Domain-Driven Design): Die Einführung einer konsistenten, domänenspezifischen Sprache in Markdown-Dateien reduziert die Verbosität des LLMs, verbessert die Planung und sorgt dafür, dass Code und KI-Instanzen dieselbe Terminologie verwenden.
9:51 Feedback-Schleifen und TDD: Die Programmiergeschwindigkeit darf die Feedback-Rate (statische Typisierung, Browser-Previews, automatisierte Tests) nicht übersteigen ("outrunning your headlights"). Test-Driven Development (TDD) zwingt das LLM zu kleinen, kontrollierten und verifizierbaren Schritten.
12:11 Tiefe vs. Flache Module: Anstelle von flachen Modulen mit komplexen Schnittstellen sollten tiefe Module (viele Funktionalitäten hinter einfachen Interfaces verborgen) eingesetzt werden, da diese die Code-Erkundung und Testbarkeit für KI-Agenten drastisch erleichtern.
15:04 Strategische Programmierung: Der Mensch übernimmt die Rolle des strategischen Planers (Architekten), während die KI als taktischer Programmierer auf Feldebene agiert ("Design the interface, delegate the implementation"). Systemdesign muss täglich aktiv gepflegt werden (nach Kent Beck).
Glossar
LLM (Large Language Model): Ein auf massiven Text- und Codedaten trainiertes KI-System, das in der Lage ist, menschenähnlichen Programmcode und Textinhalte zu generieren.
Claude Code: Ein KI-gestütztes Software-Entwicklungswerkzeug bzw. Agenten-Framework, das direkt im Terminal Code-Änderungen und -Analysen durchführt.
TDD (Test-Driven Development / Testgetriebene Entwicklung): Eine Softwareentwicklungsmethodik, bei der automatisierte Tests vor dem eigentlichen Funktionscode geschrieben und iterativ grün gemacht werden.
Domain-Driven Design (DDD): Ein Architektur- und Designansatz in der Softwaretechnik, bei dem die Fachlichkeit und die Begrifflichkeiten des jeweiligen Geschäftsbereichs (Domain) ins Zentrum der Modellierung gestellt werden.
Software-Entropie: Ein inhrentes Prinzip in der Informatik, wonach Softwaresysteme bei ständigen Modifikationen ohne gezielte Gegenmaßnahmen (Refactoring und Design-Pflege) unweigerlich chaotischer und unartbarer werden.
Tiefe Module (Deep Modules): Architekturkomponenten, die eine große Menge an interner Funktionalität hinter einer sehr einfachen, kompakten Schnittstelle (Interface) verbergen.
Specs-to-Code: Ein Entwicklungsansatz, bei dem Software-Applikationen rein über hochstufige Spezifikationen und automatische Codegeneratoren erzeugt werden, ohne dass der Quellcode manuell überwacht oder angepasst wird.
Vibe Coding: Eine umgangssprachliche, kritische Bezeichnung für eine Arbeitsweise, bei der Programmierer Code ausschliesslich nach intuitivem Gefühl durch KI generieren lassen, ohne die Details der implementierten Logik zu verstehen oder zu überprüfen.