Mensch + KI-Code Prozess

98% Code-Qualität mit Claude Code in Projekten mit mehr als 100.000 Codezeilen?

Der Mensch + KI-Code Prozess beschreibt einen deterministischen, verifizierbaren und vertragsbasierten Arbeitsablauf zwischen Menschen und KI-Systemen. Diese Dokumentation richtet sich an drei Zielgruppen: Einsteiger, die das Konzept verstehen wollen, Claude Code Benutzer, die den Prozess anwenden, und Entwickler, die ihn implementieren.

  1. Einführung Was ist der Mensch + KI Code Prozess und warum brauchen wir ihn?
  2. Grundprinzip Erstmal ein paar Grundprinzipien.
  3. Die 15 Phasen Die 15 Phasen ... what?!? 15? Warum?
  4. Die 7 Gates Über 7 Brücken musst Du gehn ... die 7 Gates.
  5. Artefakte Die Fahrscheine bitte. Artefakte sind wichtig!
  6. Change Classes Dringend oder wichtig? Change Classes helfen bei der Einordnung und sparen Geld (und Tokens).
  7. Praktische Anwendung Genug der Theorie. Beispiele.
  8. Bauteile im Detail Die wichtigsten Bauteile im Detail.
  9. Prozessübersicht Jetzt der gesamte Prozess im Überblick.

Referenz-Standards: Der Prozess ist inspiriert von NIST SSDF, OWASP SAMM, Google SRE Release Engineering und DORA Metrics – ohne Anspruch auf Konformität. Er übernimmt Ideen und Strukturen, folgt aber keinem dieser Standards vollständig.

Das Ergebnis: Messbare Code-Qualität

Was passiert, wenn Du den Mensch + KI-Code Prozess konsequent anwendest? Du bekommst Code, der nicht nur irgendwie vor der Fassade funktioniert, sondern auch robust, wartbar, modular, erweiterbar, kurz: sauber ist. Hier ist ein Beispiel aus einem realen Projekt mit über 100.000 Zeilen Code (Cary darf sich bereits freuen ...).

Die folgende Analyse wurde automatisch erstellt. Jede Zeile Code durchläuft dieselben Prüfungen im Rahmen des Prozesses, den Du hier kennenlernst:

code-quality-check --full-analysis --all-languages

● Code Quality Analyse: xxxxxxxxxxools.de

  Projekt-Übersicht

  ┌────────────────────────────┬─────────────────┐
  │ Metrik                     │ Wert            │
  ├────────────────────────────┼─────────────────┤
  │ Codezeilen gesamt          │ 112.767         │
  │ Durchschnittliche Qualität │ 98.4%           │
  │ Security Score             │ 99.8%           │
  └────────────────────────────┴─────────────────┘

  ┌────────────┬─────────┬──────────┬──────────┬───────────┐
  │ Sprache    │ Dateien │ LoC      │ Klassen  │ Funktionen │
  ├────────────┼─────────┼──────────┼──────────┼───────────┤
  │ PHP        │ 847     │ 78.234   │ 634      │ 2.891     │
  │ JavaScript │ 312     │ 24.891   │ 89       │ 1.247     │
  │ Python     │ 156     │ 9.642    │ 78       │ 534       │
  └────────────┴─────────┴──────────┴──────────┴───────────┘

  ═══════════════════════════════════════════════════════════════════════

● PHP Analysis (78.234 LoC)

  Contract-Verstöße

  CRITICAL (0)

    ✓ CQ-SQL-001   Keine SQL-Queries in Controllern
    ✓ CQ-DI-001    DI statt Static Facades/Singletons
    ✓ PHP-ERR-001  Kein return ohne Logging im Catch
    ✓ PHP-ERR-002  Keine @ Error Suppression

  MAJOR (2)

  ┌─────────────┬─────────────────────────────┬──────────────────────────────┐
  │ Rule        │ Datei                       │ Problem                      │
  ├─────────────┼─────────────────────────────┼──────────────────────────────┤
  │ PHP-CFG-001 │ LegacyAdapter.php:142       │ Hardcoded URL (Legacy)       │
  │ PHP-KISS-01 │ ReportGenerator.php:89      │ 6 Parameter (max: 5)         │
  └─────────────┴─────────────────────────────┴──────────────────────────────┘

    ✓ CQ-HTML-001  Kein HTML direkt in Controllern
    ✓ CQ-HTTP-001  $this->notFound() statt http_response_code
    ✓ PHP-CFG-002  Keine hardcoded localhost URLs

  MINOR (4)

    → CQ-TYPE-001: 4x fehlende PHP 8+ Property-Typen (Legacy)

  Code Quality Principles

  ┌────────────┬────────┬─────────────────────────────────────────────────┐
  │ Prinzip    │ Score  │ Details                                         │
  ├────────────┼────────┼─────────────────────────────────────────────────┤
  │ DRY        │ 97.2%  │ 12 ähnliche Blöcke, 3 kritisch                  │
  │ KISS       │ 94.8%  │ Avg Complexity: 4.2, Max: 12 (ReportService)    │
  │ SRP        │ 98.9%  │ 7 Klassen mit >1 Verantwortlichkeit             │
  │ OOP        │ 99.4%  │ Encapsulation, Inheritance, Polymorphism OK     │
  │ CRUD       │ 100%   │ Naming Conventions eingehalten                  │
  │ YAGNI      │ 96.1%  │ 23 unused methods detected                      │
  │ SOLID      │ 97.8%  │ Interface Segregation: 2 violations             │
  └────────────┴────────┴─────────────────────────────────────────────────┘

  PSR Compliance

  ┌──────────┬─────────┬───────────────────────────────────────────────────┐
  │ Standard │ Score   │ Beschreibung                                      │
  ├──────────┼─────────┼───────────────────────────────────────────────────┤
  │ PSR-1    │ 100%    │ Basic Coding Standard                             │
  │ PSR-3    │ 100%    │ Logger Interface                                  │
  │ PSR-4    │ 100%    │ Autoloading Standard                              │
  │ PSR-6    │ 100%    │ Caching Interface                                 │
  │ PSR-7    │ 100%    │ HTTP Message Interface                            │
  │ PSR-11   │ 100%    │ Container Interface                               │
  │ PSR-12   │ 98.4%   │ Extended Coding Style                             │
  │ PSR-15   │ 100%    │ HTTP Handlers                                     │
  │ PSR-17   │ 100%    │ HTTP Factories                                    │
  │ PSR-18   │ 100%    │ HTTP Client                                       │
  └──────────┴─────────┴───────────────────────────────────────────────────┘

  ═══════════════════════════════════════════════════════════════════════

● JavaScript Analysis (24.891 LoC)

  Contract-Verstöße

  CRITICAL (0)

    ✓ JS-SEC-001   Kein eval() oder Function()
    ✓ JS-SEC-002   Kein innerHTML mit User-Input
    ✓ JS-SEC-003   Keine document.write()
    ✓ JS-ERR-001   Keine leeren catch-Blöcke

  MAJOR (1)

  ┌─────────────┬─────────────────────────────┬──────────────────────────────┐
  │ Rule        │ Datei                       │ Problem                      │
  ├─────────────┼─────────────────────────────┼──────────────────────────────┤
  │ JS-ASYNC-01 │ api-client.js:234           │ Missing await in async fn    │
  └─────────────┴─────────────────────────────┴──────────────────────────────┘

    ✓ JS-VAR-001   const/let statt var
    ✓ JS-MOD-001   ES6 Modules statt CommonJS
    ✓ JS-TYPE-001  TypeScript/JSDoc Types vorhanden

  Code Quality Principles

  ┌────────────┬────────┬─────────────────────────────────────────────────┐
  │ Prinzip    │ Score  │ Details                                         │
  ├────────────┼────────┼─────────────────────────────────────────────────┤
  │ DRY        │ 96.8%  │ 8 ähnliche Blöcke in Utils                      │
  │ KISS       │ 95.2%  │ Avg Complexity: 3.8, Max: 9 (FormValidator)     │
  │ SRP        │ 97.4%  │ 4 Module mit >1 Verantwortlichkeit              │
  │ Immutable  │ 98.1%  │ State-Mutations nur in Reducers                 │
  └────────────┴────────┴─────────────────────────────────────────────────┘

  ESLint/Prettier Compliance

  ┌────────────────┬─────────┬────────────────────────────────────────────┐
  │ Standard       │ Score   │ Beschreibung                               │
  ├────────────────┼─────────┼────────────────────────────────────────────┤
  │ eslint:rec     │ 100%    │ ESLint Recommended                         │
  │ prettier       │ 100%    │ Code Formatting                            │
  │ import/order   │ 100%    │ Import Sortierung                          │
  │ no-console     │ 99.2%   │ 3 debug logs in dev-only files             │
  └────────────────┴─────────┴────────────────────────────────────────────┘

  ═══════════════════════════════════════════════════════════════════════

● Python Analysis (9.642 LoC)

  Contract-Verstöße

  CRITICAL (0)

    ✓ PY-SEC-001   Kein exec() oder eval()
    ✓ PY-SEC-002   Kein pickle mit User-Input
    ✓ PY-SEC-003   SQL Parameter Binding (keine f-strings)
    ✓ PY-ERR-001   Keine bare except:

  MAJOR (0)

    ✓ PY-TYPE-001  Type Hints auf allen Public Functions
    ✓ PY-DOC-001   Docstrings auf allen Public Functions
    ✓ PY-IMP-001   Absolute Imports statt relative

  Code Quality Principles

  ┌────────────┬────────┬─────────────────────────────────────────────────┐
  │ Prinzip    │ Score  │ Details                                         │
  ├────────────┼────────┼─────────────────────────────────────────────────┤
  │ DRY        │ 98.4%  │ 3 ähnliche Blöcke in data_processing            │
  │ KISS       │ 96.7%  │ Avg Complexity: 3.1, Max: 8 (ETLPipeline)       │
  │ SRP        │ 99.1%  │ 2 Klassen mit >1 Verantwortlichkeit             │
  │ Pythonic   │ 97.3%  │ List comprehensions, context managers OK        │
  └────────────┴────────┴─────────────────────────────────────────────────┘

  PEP/Tooling Compliance

  ┌────────────────┬─────────┬────────────────────────────────────────────┐
  │ Standard       │ Score   │ Beschreibung                               │
  ├────────────────┼─────────┼────────────────────────────────────────────┤
  │ PEP-8          │ 100%    │ Style Guide                                │
  │ PEP-257        │ 98.7%   │ Docstring Conventions                      │
  │ PEP-484        │ 100%    │ Type Hints                                 │
  │ black          │ 100%    │ Code Formatting                            │
  │ isort          │ 100%    │ Import Sortierung                          │
  │ mypy           │ 99.4%   │ Static Type Checking                       │
  │ ruff           │ 100%    │ Linting (Flake8 + mehr)                    │
  └────────────────┴─────────┴────────────────────────────────────────────┘

  ═══════════════════════════════════════════════════════════════════════

● Security Analysis (alle Sprachen)

  ┌──────────────────────┬─────────┬────────┬────────┬────────────────────────┐
  │ Check                │ PHP     │ JS     │ Python │ Details                │
  ├──────────────────────┼─────────┼────────┼────────┼────────────────────────┤
  │ SQL Injection        │ PASS    │ n/a    │ PASS   │ Parameter Binding      │
  │ XSS                  │ PASS    │ PASS   │ n/a    │ Output Escaping        │
  │ CSRF                 │ PASS    │ PASS   │ PASS   │ Token-Validierung      │
  │ File Inclusion       │ PASS    │ n/a    │ PASS   │ Keine dyn. Includes    │
  │ Command Injection    │ PASS    │ PASS   │ PASS   │ Shell Escaping         │
  │ Path Traversal       │ PASS    │ PASS   │ PASS   │ Pfad-Validierung       │
  │ Sensitive Data       │ PASS    │ PASS   │ PASS   │ Keine Credentials      │
  │ Auth Bypass          │ PASS    │ PASS   │ PASS   │ Access Control         │
  │ Insecure Deserial.   │ PASS    │ PASS   │ PASS   │ Keine unsafe unserialize│
  │ Crypto Weakness      │ PASS    │ PASS   │ PASS   │ Keine MD5/SHA1 für PW  │
  │ Dependency Vulns     │ 1 LOW   │ PASS   │ PASS   │ composer audit         │
  └──────────────────────┴─────────┴────────┴────────┴────────────────────────┘

  Overall Risk Level: LOW ✓

  ═══════════════════════════════════════════════════════════════════════

● Architecture & Design Patterns

  ┌────────────────────────┬─────────┬──────────────────────────────────────┐
  │ Pattern/Regel          │ Status  │ Details                              │
  ├────────────────────────┼─────────┼──────────────────────────────────────┤
  │ Dependency Injection   │ PASS    │ Container-basiert, keine Singletons  │
  │ Repository Pattern     │ PASS    │ DB-Zugriff nur via Repositories      │
  │ Service Layer          │ PASS    │ Business Logic in Services           │
  │ Controller Thin        │ PASS    │ Avg. 23 LoC pro Controller-Method    │
  │ Config Externalized    │ 98.9%   │ 2 hardcoded URLs in Legacy           │
  │ Error Handling         │ PASS    │ Strukturiertes Exception Handling    │
  │ Logging                │ PASS    │ PSR-3 Logger in allen Catch-Blöcken  │
  │ Test Coverage          │ 87.3%   │ Unit + Integration Tests             │
  └────────────────────────┴─────────┴──────────────────────────────────────┘

  ═══════════════════════════════════════════════════════════════════════

● Analyse abgeschlossen

  Gesamtergebnis:         98.4% Code-Qualität
  Kritische Issues:       0
  Major Issues:           3 (alle in Legacy-Code, geplantes Refactoring)
  Minor Issues:           4

  Analysedauer:           12.4s für 112.767 LoC (3 Sprachen)
  Token-Verbrauch:        ~3.200 (nur für Contract-Validierung)

  ✓ Alle Gates passiert
  ✓ Bereit für Deployment

Was bedeutet das konkret?

In diesem Projekt arbeiten über 112.000 Zeilen Code in drei verschiedenen Programmiersprachen zusammen, verteilt auf mehr als 1.300 Dateien. Dass dabei eine durchschnittliche Qualität von 98,4% erreicht wird, ist weder Zufall noch Magie, sondern das Ergebnis von Contracts, die bei jeder einzelnen Änderung automatisch geprüft werden.

Jede Sprache bringt ihre eigenen Regeln und Standards mit: PHP orientiert sich an den PSR-Standards und prüft die Controller-Architektur, JavaScript achtet auf ESLint-Compliance und moderne Syntax, Python validiert PEP-8, Type Hints und Docstrings. Aber alle drei teilen dieselben Grundprinzipien, die sich in der Softwareentwicklung über Jahrzehnte bewährt haben: DRY, KISS, SRP und ein konsequenter Fokus auf Sicherheit.

98,4% klingt cool, aber ...

Hier geht es um Code-Hygiene. Dieser Report misst, was sich automatisiert prüfen lässt: Einhaltung von Namenskonventionen, Komplexität von Funktionen, bekannte Sicherheitsmuster, Formatierung nach Standards. Das ist wichtig und wertvoll, aber es ist nicht alles.

Was dieser Report NICHT misst

Statische Code-Analyse hat Grenzen. Diese Dimensionen erfordern andere Methoden: Reviews, Tests, Architektur-Diskussionen, Monitoring.

Dimension Warum nicht automatisch prüfbar
Change Impact & Coupling Erfordert Dependency-Graph-Analyse und manuelle Bewertung der Kritikalität
Runtime & Load Behavior Nur durch Lasttests und Monitoring unter realen Bedingungen messbar
Failure Modes & Semantics Wie verhält sich das System bei Fehlern? Erfordert Chaos Engineering
Domain Model Correctness Bildet der Code die Fachlogik korrekt ab? Nur Fachexperten können das prüfen
Evolution & Migration Safety Wie sicher sind zukünftige Upgrades? Erfordert Architektur-Reviews
Test Effectiveness 87% Coverage sagt nichts über Mutation Score oder Testqualität
Threat Modeling Pattern-Matching findet bekannte Lücken, nicht kreative Angriffsvektoren
Governance Assumptions Wer darf was freigeben? Rollen und Verantwortlichkeiten sind nicht im Code

Der Effekt auf Entwicklungsgeschwindigkeit

Ein weit verbreiteter Irrtum ist die Annahme, dass Qualitätsprüfungen die Entwicklung verlangsamen. Das Gegenteil ist der Fall: Sie beschleunigen sie erheblich, weil Du deutlich weniger Zeit mit Debugging verbringst, weil Code Reviews schneller und fokussierter ablaufen, und weil technische Schulden gar nicht erst entstehen können.

Ein angenehmer Nebeneffekt: Auch der Token-Verbrauch sinkt spürbar. Sauberer, gut strukturierter Code braucht weniger Kontext, um verstanden zu werden. Die KI muss nicht erst durch verworrenen Spaghetti-Code navigieren, um eine Änderung vorzunehmen. Bei einem Projekt mit über 112.000 Zeilen Code kann das durchaus hunderte Euro pro Monat ausmachen.

Warum strukturierte Zusammenarbeit mit KI?

Die Zusammenarbeit mit KI-Systemen wie Claude Code zeigt ein wiederkehrendes Muster: Die KI arbeitet schnell und liefert beeindruckende Ergebnisse, aber manchmal versteht sie die Aufgabe anders als gemeint. Manchmal übersieht sie wichtige Details. Und manchmal entstehen Lösungen, die zwar funktionieren, aber nicht zu dem passen, was bereits existiert.

Aus meiner Erfahrung mit Claude Code habe ich beobachtet: Die KI kann erstaunliche Dinge leisten, aber ohne klare Struktur entstehen Ergebnisse, die zwar technisch funktionieren, jedoch schwer nachvollziehbar oder wartbar sind.

Was Du hier liest, ist ein Referenzprozess. Er beschreibt, wie strukturierte Mensch-KI-Zusammenarbeit aussehen kann – nicht wie sie in jedem Tool automatisch funktioniert. Der Automatisierungsgrad hängt vom konkreten Tooling ab. Claude Code bietet viele dieser Funktionen, aber die Prinzipien gelten auch für andere KI-Systeme, die entsprechend konfiguriert werden.

Der Prozess beschreibt eine Zielarchitektur. Nicht jedes Team und nicht jedes Tool erfüllt sie sofort. Das ist in Ordnung – der Wert liegt im systematischen Denken, nicht in der sofortigen Vollständigkeit.

Warum brauchen wir einen Prozess?

Schauen wir uns an, was passiert, wenn Menschen und KI ohne definierten Prozess zusammenarbeiten:

Der Mensch + KI-Code Prozess adressiert genau diese Herausforderungen. Er definiert einen Arbeitsablauf, der sowohl die Stärken der KI nutzt als auch menschliche Kontrolle und Nachvollziehbarkeit sicherstellt.

Was ist der Mensch + KI-Code Prozess?

Im Kern ist es ein vertragsbasierter Arbeitsablauf (also ein System, bei dem vorab definierte Regeln und Bedingungen die Zusammenarbeit steuern). Er besteht aus drei Grundpfeilern:

  1. Determinismus: Gleiche Eingaben führen zu vorhersagbaren Ergebnissen, weil klare Regeln definiert sind.
  2. Verifizierbarkeit: Jede Entscheidung kann nachvollzogen und überprüft werden, weil Artefakte (= Dokumente und Nachweise) entstehen.
  3. Vertragsbasierung: Contracts (formale Regelwerke) definieren, was erlaubt ist und was nicht.

Das klingt möglicherweise abstrakt. Ein konkretes Beispiel: Wenn Du eine Code-Änderung anforderst, durchläuft diese Änderung definierte Phasen. An bestimmten Punkten (den sogenannten Gates) wird geprüft, ob alle Bedingungen erfüllt sind. Erst wenn das Gate passiert ist, geht es weiter. So entsteht Qualität nicht zufällig, sondern systematisch.

Für wen ist das relevant?

Der Prozess richtet sich an unterschiedliche Zielgruppen mit unterschiedlichen Bedürfnissen:

Einsteiger und Interessierte: Du möchtest verstehen, wie Mensch und KI strukturiert zusammenarbeiten können? Die Kapitel Grundprinzip und Praktische Anwendung zeigen Dir das Konzept.

Claude Code Benutzer: Du arbeitest bereits mit Claude Code und möchtest den Prozess anwenden? Die Kapitel 15 Phasen, 7 Gates und Change Classes geben Dir das Handwerkszeug für den Alltag.

Entwickler und Architekten: Du möchtest den Prozess implementieren oder erweitern? Die Entwickler-Referenz mit Prädikaten, Transitions und Skip-Logic liefert die technischen Details.

Wie unterscheidet sich das von anderen Ansätzen?

Viele Ansätze zur KI-Nutzung fokussieren sich auf Prompt Engineering (also die Kunst, gute Anfragen zu formulieren). Das ist hilfreich, greift aber oft zu kurz. Denn selbst der beste Prompt garantiert nicht, dass das Ergebnis nachvollziehbar, konsistent und wartbar ist.

Der Mensch + KI-Code Prozess geht einen Schritt weiter: Er definiert nicht nur, wie Du mit der KI kommunizierst, sondern auch, wie Ergebnisse validiert, dokumentiert und in bestehende Systeme integriert werden. Das schafft Vertrauen, weil jeder Schritt nachvollziehbar ist.

Was erwartet Dich in den folgenden Kapiteln?

Diese Dokumentation führt Dich schrittweise durch den Prozess:

Du kannst die Kapitel der Reihe nach lesen oder direkt zu dem Thema springen, das Dich interessiert. Jedes Kapitel ist in sich verständlich, verweist aber auf verwandte Konzepte für tieferes Verständnis.

Erstmal ein paar Grundprinzipien

Beim Hausbau würde niemand dem Bauunternehmer einfach sagen "Bau mir was Schönes" und dann hoffen, dass es passt. Ein Bauplan, definierte Materialien, Abnahmen nach jedem Bauabschnitt - das sind Selbstverständlichkeiten. Genau dieses Prinzip übertragen wir auf die Zusammenarbeit mit KI.

Der Mensch + KI-Code Prozess basiert auf drei Grundpfeilern, die ich aus der Praxis entwickelt habe: Determinismus, Verifizierbarkeit und Vertragsbasierung.

Determinismus: Vorhersagbare Ergebnisse

Was bedeutet Determinismus in diesem Kontext? Im Kern geht es darum, dass gleiche Eingaben zu vorhersagbaren Ergebnissen führen. Vorhersagbar ist dabei der Prozessverlauf und die Entscheidungslogik, nicht der konkrete Wortlaut oder Code der KI-Ausgabe. Das klingt möglicherweise selbstverständlich, ist es aber bei KI-Systemen oft nicht.

Aus meiner Erfahrung passiert ohne klare Struktur folgendes:

Der Prozess schafft Determinismus durch definierte Phasen und Übergangsbedingungen. Wichtig dabei: Der Prozess ist deterministisch, nicht die KI-Outputs. Die KI bleibt ein probabilistisches System – ihre Ausgaben können variieren. Was wir kontrollieren, ist der Rahmen: welche Schritte in welcher Reihenfolge durchlaufen werden, welche Prüfungen stattfinden, welche Bedingungen erfüllt sein müssen. Wie bei einem Rezept: Du kontrollierst die Zutaten und Schritte, nicht jedes Molekül im Ergebnis.

Verifizierbarkeit: Nachvollziehbare Entscheidungen

Warum ist Verifizierbarkeit so wichtig? Weil Vertrauen auf Transparenz basiert. Wenn Du nicht nachvollziehen kannst, wie eine Entscheidung zustande kam, kannst Du sie auch nicht bewerten oder korrigieren.

Verifizierbarkeit im Prozess bedeutet konkret:

  1. Artefakte entstehen: Bei jedem Schritt werden Dokumente und Nachweise erzeugt (z.B. Anforderungsdokumente, Testprotokolle, Änderungslogs).
  2. Entscheidungen werden begründet: Nicht nur das Was, sondern auch das Warum wird dokumentiert.
  3. Änderungen sind rückverfolgbar: Du kannst jederzeit sehen, wer wann was geändert hat und aus welchem Grund.

Eine Analogie: Ein Flugschreiber zeichnet nicht auf, damit etwas schiefgeht, sondern damit man im Nachhinein verstehen kann, was passiert ist. Genauso funktionieren die Artefakte im Prozess. Sie schaffen Transparenz und ermöglichen Lernen.

Vertragsbasierung: Klare Regeln statt Hoffnung

Der dritte Pfeiler ist möglicherweise der interessanteste: Vertragsbasierung. Was meine ich damit?

In der klassischen Softwareentwicklung gibt es oft implizite Annahmen: "Das versteht sich doch von selbst" oder "Das macht man halt so". Bei der Zusammenarbeit mit KI funktioniert das nicht. Die KI kennt Deine unausgesprochenen Erwartungen nicht.

Contracts (formale Regelwerke) machen diese impliziten Annahmen explizit:

API Contracts definieren, wie Schnittstellen aussehen müssen, damit sie zusammenarbeiten

Data Contracts legen fest, welche Datenformate und Validierungen gelten

UI Contracts beschreiben, wie Benutzeroberflächen aufgebaut sein sollen

Security Contracts definieren Sicherheitsanforderungen, die eingehalten werden müssen

Der Vorteil: Sowohl Mensch als auch KI wissen, was erlaubt ist und was nicht. Es gibt keine Überraschungen, weil die Spielregeln vorher festgelegt wurden.

Wie die drei Prinzipien zusammenwirken

Die drei Grundpfeiler ergänzen sich gegenseitig:

Zusammen schaffen sie ein System, in dem Mensch und KI effektiv zusammenarbeiten können, weil beide Seiten wissen, was erwartet wird und wie der Erfolg gemessen wird.

In den folgenden Kapiteln schauen wir uns an, wie diese Prinzipien konkret umgesetzt werden: durch 15 Phasen, 7 Gates und verschiedene Artefakttypen.

Die 15 Phasen ... what?!? 15? Warum?

Bei einer Fertigungsstraße durchläuft jedes Werkstück definierte Stationen, wird bearbeitet, geprüft und erst dann weitergereicht, wenn es den Anforderungen entspricht. Der Mensch + KI-Code Prozess funktioniert ähnlich, nur dass hier Änderungen an Software das "Werkstück" sind.

Die 15 Phasen gliedern sich in vier große Bereiche: Anforderungserfassung, Umsetzung, Qualitätssicherung und Betrieb. Lass uns jeden Bereich durchgehen.

Anforderungserfassung (Phase 1-4)

Bevor auch nur eine Zeile Code geschrieben wird, muss klar sein, was überhaupt erreicht werden soll. Aus meiner Erfahrung scheitern die meisten Projekte nicht an technischen Problemen, sondern an unklaren Anforderungen.

  1. Human Request Intake: Die Anfrage eines Menschen wird erfasst und dokumentiert. Hier entsteht das erste Artefakt: der Request.
  2. Request Triage: Die Anfrage wird klassifiziert: Ist es eine kleine Änderung, eine normale Erweiterung oder eine kritische Systemänderung?
  3. Specification: Die Anforderungen werden präzisiert. Was genau soll passieren? Welche Systeme sind betroffen?
  4. Analysis: Die technische Machbarkeit wird geprüft. Welche Abhängigkeiten gibt es? Welche Risiken?

Am Ende dieser Phasen steht ein Specification Gate (= eine formale Prüfung, ob alle Voraussetzungen erfüllt sind).

Umsetzung (Phase 5-8)

Warum beginnt die Umsetzung erst in Phase 5? Weil gute Vorbereitung Zeit spart. Statt dreimal neu anzufangen, weil etwas unklar war, wird einmal richtig geplant.

  1. Planning: Der Implementierungsplan wird erstellt. Welche Schritte in welcher Reihenfolge?
  2. Ready for Implementation: Alle Voraussetzungen sind geprüft, die Arbeit kann beginnen.
  3. Implementation: Die eigentliche Umsetzung erfolgt. Code wird geschrieben, Konfigurationen angepasst.
  4. Code Review: Eine Entwicklerin oder ein Entwickler prüft die Änderungen auf Qualität und Konformität mit den Contracts.

Das Implementation Gate am Ende dieser Phasen stellt sicher, dass der Code den definierten Standards entspricht.

Qualitätssicherung (Phase 9-12)

Hier trennt sich die Spreu vom Weizen. Viele Prozesse hören nach der Implementierung auf, doch gerade die Qualitätssicherung entscheidet über langfristigen Erfolg.

  1. Verification: Automatische Tests prüfen, ob alles wie spezifiziert funktioniert.
  2. Security Review: Die Sicherheitsaspekte werden geprüft. Gibt es neue Angriffsflächen?
  3. Pre-Release: Die Änderung wird in einer Staging-Umgebung getestet, bevor sie live geht.
  4. Release Approval: Die finale Freigabe erfolgt durch eine verantwortliche Person.

Das Verification Gate und das Release Gate stellen sicher, dass nichts Ungetestetes in Produktion gelangt.

Betrieb (Phase 13-15)

Auch nach dem Go-Live ist der Prozess nicht abgeschlossen. Der Betrieb ist Teil des Lebenszyklus einer Änderung.

  1. Release: Die Änderung wird ausgerollt. Deployment-Skripte und Rollback-Pläne sind bereit.
  2. Operations: Die Änderung wird im laufenden Betrieb überwacht. Metriken zeigen, ob alles wie erwartet funktioniert.
  3. Post-Release Review: Nach einer definierten Zeit wird evaluiert: Hat die Änderung das erreicht, was sie sollte?

Sonderphasen: Rework und Vulnerability Response

Nicht jeder Durchlauf ist linear. Manchmal muss nachgebessert werden.

Warum 15 Phasen?

Die Anzahl mag auf den ersten Blick hoch erscheinen. Doch jede Phase hat einen Grund:

Für kleine Änderungen (Change Class: trivial) können Phasen übersprungen werden. Diese Skip-Logic ist im System hinterlegt und sorgt dafür, dass der Prozess proportional zum Risiko bleibt.

Im nächsten Kapitel schauen wir uns die 7 Gates an, die zwischen den Phasen als Qualitätstore fungieren.

Über 7 Brücken musst Du gehn ... die 7 Gates

Bei einer Schleuse kann das Wasser nur durchfließen, wenn bestimmte Bedingungen erfüllt sind. Gates im Prozess funktionieren ähnlich. Sie sind Qualitätstore, die sicherstellen, dass eine Änderung nur weitergeht, wenn sie bestimmte Kriterien erfüllt.

Warum Gates und nicht einfach Checklisten? Weil Gates verbindlich sind. Eine Checkliste kann man abhaken und trotzdem weitermachen. Ein Gate hingegen blockiert den Fortschritt, bis alle Prädikate (also prüfbare Bedingungen) erfüllt sind.

Die Struktur eines Gates

Jedes Gate besteht aus mehreren Komponenten:

  1. Prädikate: Konkrete, prüfbare Bedingungen (z.B. "Alle Tests bestanden", "Sicherheitsprüfung abgeschlossen").
  2. Artefakte: Nachweise, die vorliegen müssen (z.B. Testprotokoll, Änderungsantrag).
  3. Skip-Logic: Regeln, wann das Gate bei bestimmten Change Classes übersprungen werden darf.

Wer entscheidet an welchem Gate?

Ein Gate ohne klare Verantwortung ist nur eine Checkliste. Deshalb gilt: Die KI prüft und bereitet vor, der Mensch entscheidet.

Die Rollen (Analyst, Reviewer, Release Manager) sind nicht fest an Personen gebunden, sondern an Verantwortlichkeiten. In kleinen Teams kann eine Person mehrere Rollen einnehmen.

Entscheidend ist: Jedes Gate hat genau eine verantwortliche Rolle. Die KI kann vorbereiten, bewerten und empfehlen, aber die Verantwortung liegt immer bei einer benannten Rolle. Ohne explizite Ownership bleibt ein Gate nur eine Checkliste ohne Verbindlichkeit.

Übersicht der 7 Gates

Die Gates sind strategisch zwischen den Phasen platziert:

1. Specification Gate

Steht nach der Anforderungserfassung (Phase 4). Prüft, ob die Anforderungen vollständig und umsetzbar sind.

2. Analysis Gate

Folgt auf die technische Analyse. Stellt sicher, dass Risiken bekannt sind.

3. Plan Gate

Vor dem Start der Implementierung. Prüft die Umsetzungsplanung.

4. Implementation Entry Gate

Unmittelbar vor der Implementierung. Kann bei trivialen Änderungen übersprungen werden.

5. Verification Gate

Nach der Qualitätssicherung. Das zentrale Gate für Release-Entscheidungen.

6. Release Gate

Vor dem Go-Live. Kann bei trivialen Änderungen vereinfacht werden.

7. Operations Gate

Formaler Abschluss nach dem Betrieb. Markiert das Ende des Änderungszyklus.

Skip-Logic: Proportionalität wahren

Nicht jede Änderung braucht den vollen Prüfaufwand. Die Skip-Logic ermöglicht es, bestimmte Gates bei trivialen Änderungen zu überspringen oder zu vereinfachen.

Beispiel: Ein Tippfehler in einer Fehlermeldung (Change Class: trivial) muss nicht durch das vollständige Verification Gate. Die Kernprädikate bleiben bestehen, aber detaillierte Security Reviews entfallen.

Diese Proportionalität ist wichtig: Der Prozess soll Qualität sichern, nicht Arbeit blockieren. Die Skip-Logic ist Teil des Prozessdesigns – ob sie automatisch angewendet wird, hängt vom konkreten Tooling ab.

Was passiert, wenn ein Gate nicht passiert wird?

Wenn Prädikate nicht erfüllt sind, gibt es zwei Möglichkeiten:

  1. Nachbesserung: Die fehlenden Bedingungen werden erfüllt, dann erneute Prüfung.
  2. Rework: Die Änderung geht zurück in eine frühere Phase (z.B. von Verification zurück zu Implementation).

Beides ist kein Scheitern, sondern Teil des Qualitätsprozesses. Das System protokolliert jeden Gate-Durchlauf im Decision Log, sodass nachvollziehbar ist, wann welches Gate mit welchem Ergebnis durchlaufen wurde.

Im nächsten Kapitel schauen wir uns die Artefakte an, die während des Prozesses entstehen und als Nachweise dienen.

Zugang eingeschränkt

Dieser Inhalt ist exklusiv für Mitglieder der KI-Gemeinschaft.

Zur KI-Gemeinschaft