De meeste developers gebruiken AI verkeerd. Op een van drie manieren. Herken je jezelf? Geen stress. Iedereen begint hier.
De drie modellen die niet werken
De autocomplete-val
Je schrijft alles zelf en laat AI je zinnen afmaken. Variabelnamen voorstellen, functiebodies aanvullen, imports toevoegen. Misschien haal je 20 tot 30% meer doorvoer. Maar eigenlijk is je IDE gewoon iets slimmer geworden. Meer niet.
De Stack Overflow-val
Je plakt problemen in ChatGPT en kopieert oplossingen terug. Sneller dan zoeken, absoluut. Maar de antwoorden zijn generiek. Ze weten niks van je database-schema, je naamgeving of de library-versies die je echt gebruikt. Twee uur later zit je nog steeds een oplossing te integreren die niks wist van jouw project.
De ongestuurde generator-val
Je laat AI complete features bouwen zonder beperkingen. Het kiest zijn eigen architectuur, verzint patronen, en maakt code die technisch werkt maar nergens bij past. Nu heb je zes verschillende patronen voor hetzelfde. Gefeliciteerd, je hebt technical debt geautomatiseerd.
Het model dat wel werkt
Simpel. Geef AI je beslissingen. Laat het daarna z'n werk doen.
| Beslissing | Wie beslist | Waarom |
|---|---|---|
| Domeinentiteiten en relaties | Jij | Vereist begrip van het business-domein |
| API-contracten en shapes | Jij | Bepaalt de systeemgrenzen |
| Database-schema | Jij | Heeft impact op alles downstream |
| Security model | Jij | Fouten lekken data |
| Error handling-strategie | Jij | Beinvloedt de gebruikerservaring |
| Variabelnamen, imports | AI | Lage impact, makkelijk te fixen |
| Test-boilerplate | AI | Volgt je bestaande patronen |
| Documentatieteksten | AI | Mechanische vertaling |
| CRUD-operaties | AI | Puur patroonherhaling |
De investering van vijf minuten die vijf uur bespaart
Zo werkt het partnerschap in de praktijk. Je schrijft een Pydantic-schema. 5 tot 10 minuten echt nadenken over je domein:
class TaskCreate(BaseModel):
project_id: UUID
assignee_id: UUID
due_date: datetime
story_points: int = Field(default=3, ge=1, le=21)
priority: TaskPriority
description: str = Field(..., min_length=3, max_length=500) Vanuit dat ene schema genereert AI de service layer (30 seconden), route handlers (30 seconden), database-migratie (20 seconden), test suite (45 seconden) en TypeScript types (20 seconden). Vijf minuten nadenken. Vijf minuten AI-uitvoering. Complete feature die elke conventie in je project volgt.
De compressie-tijdlijn
| Periode | Compressie | Wat er gebeurt |
|---|---|---|
| Week 1 | 2x | Het partnershipmodel leren |
| Maand 1 | 4x | Patronen gedocumenteerd, AI volgt ze |
| Maand 3 | 8x | Uitgebreide patroonbibliotheek opgebouwd |
| Maand 6 | 10x | Elke nieuwe feature past in bestaande patronen |
Vier manieren om het te verpesten
- Te weinig context: AI genereert verkeerde patronen? Update je docs. Niet je prompts.
- Blind vertrouwen: merge nooit code die je niet gereviewd hebt. AI schrijft zelfverzekerde onzin net zo vloeiend als correcte code.
- Micromanagen: als je variabelnamen gaat dicteren aan AI, doe je het fout. Focus op wat en waarom.
- Geen quality gates: type checking, linting en tests vangen AI-fouten automatisch. Zonder die gates gaan fouten recht naar productie.