Prompt-to-app: hoe ver kom je met een beschrijving?

De volgorde is omgedraaid. Waar je vroeger begon met een gegevensmodel en schermen, begin je nu met een beschrijving van wat de applicatie moet doen. Dat werkt verrassend ver, en het loopt op voorspelbare plekken vast. Dit is waar de grens ligt.

Werkt goed voor
Eerste werkende versie
Loopt vast op
Integraties en randgevallen
Blijft mensenwerk
Wat je wilt bouwen
01/04

Wat er veranderd is

Codegeneratie is in korte tijd van autocomplete naar iets anders gegroeid. Een agent leest je hele project, begrijpt hoe bestanden samenhangen, en kan een functie toevoegen die op vijf plekken raakt zonder dat je die plekken aanwijst. In combinatie met modellen die een volledige codebase in één keer kunnen overzien, verschuift het werk van typen naar beschrijven en beoordelen.

In de praktijk betekent dat: je beschrijft wat de applicatie moet doen, welke schermen erin zitten, hoe gebruikers inloggen en hoe de gegevens eruitzien, en je krijgt een werkend project terug. Voor een eerste versie is dat een reële werkwijze geworden, niet een demo.

Wat níét is veranderd, is dat iemand moet weten wat er gebouwd moet worden. De beschrijving is het werk geworden, en een vage beschrijving levert een vage applicatie op, alleen sneller dan vroeger.

02/04

Waar het goed in is

Het eerste werkende geheel. Een applicatie met inloggen, een paar schermen, een database eronder en een deugdelijke structuur staat er in een fractie van de tijd die het vroeger kostte. Dat is precies de fase waarin je wilt kunnen kijken of het idee klopt.

Herhaalbaar werk. Formulieren, overzichten, filters, exports: patronen die in elke applicatie terugkomen en waar weinig eer aan te behalen valt. Dat is waar de tijdwinst het grootst is.

Vertalen tussen technieken. Een bestaand scherm omzetten naar een ander framework, of een API-koppeling schrijven op basis van documentatie, gaat aanzienlijk sneller dan met de hand.

03/04

Waar het vastloopt

Integraties met systemen die zich niet aan hun eigen documentatie houden. Dat is in zakelijke omgevingen eerder regel dan uitzondering, en het is precies het soort probleem dat je alleen oplost door te kijken wat er werkelijk over de lijn gaat.

Randgevallen die niemand heeft opgeschreven. Wat gebeurt er als twee mensen tegelijk hetzelfde record bewerken, als een betaling half doorkomt, als iemand een bestand van 400 megabyte uploadt. Een gegenereerde applicatie kiest daar iets, en dat iets is vaak niet wat je had gewild.

Alles wat met bestaande gegevens te maken heeft. Migreren, opschonen, aansluiten op een administratie die tien jaar gegroeid is: daar zit de complexiteit in het begrijpen van de werkelijkheid, niet in het schrijven van code.

04/04

Wat dit betekent voor hoe je begint

De beschrijving is het belangrijkste document geworden. Wie zijn de gebruikers, wat moeten ze kunnen, wat gebeurt er als het misgaat, en met welke systemen praat het. Hoe scherper dat staat, hoe bruikbaarder wat eruit komt.

Reken erop dat de eerste versie een startpunt is en geen eindproduct. Dat was altijd al zo, alleen kwam je er vroeger later achter. Het voordeel nu is dat je binnen een dag kunt zien of de richting klopt, en dat is een goedkoper moment om van koers te veranderen.

Beoordelen wordt de kernvaardigheid. Niet of de code draait, want dat doet hij meestal, maar of hij doet wat er bedoeld is en of de keuzes die zijn gemaakt houdbaar zijn als er honderd gebruikers op zitten.

Veelgestelde vragen

Kun je hiermee een productieapplicatie bouwen?
Deels. Het skelet, de schermen en veel van het routinewerk komen er goed uit. Wat aandacht van een ontwikkelaar vraagt, is alles wat met bestaande systemen, gegevensintegriteit en randgevallen te maken heeft. In de praktijk levert de combinatie het meeste op: genereren wat zich laat genereren, en met de hand doen wat dat niet doet.
Hebben we dan nog ontwikkelaars nodig?
Ja, maar het werk verschuift. Minder tijd in het schrijven van herhaalbare code, meer in het bepalen wat er moet komen, het beoordelen van wat eruit komt en het oplossen van de dingen die generatie niet aankan. Dat laatste is precies het lastigste deel van softwareontwikkeling, en dat is niet weggegaan.
Hoe voorkom je dat de code onhoudbaar wordt?
Door dezelfde eisen te stellen als aan met de hand geschreven code: een begrijpelijke structuur, tests op de dingen die ertoe doen, en geen bibliotheken die niemand heeft gekozen. Gegenereerde code die niemand heeft gelezen is technische schuld, ongeacht hoe snel hij er stond.
Wat kost het om zo te werken?
Dat hangt af van wat je bouwt, net als vroeger. Wat verandert is de verdeling: minder uren aan het eerste werkende geheel, en relatief meer aan integratie, randgevallen en beoordeling. Voor een eenvoudige applicatie is de winst groot; voor iets dat diep in bestaande systemen grijpt, valt die tegen.
Is dit hetzelfde als no-code?
Nee. Bij no-code werk je binnen de grenzen van een platform en lever je flexibiliteit in voor snelheid. Hier krijg je gewone code in een gewoon project, die je kunt lezen, aanpassen en meenemen. Het verschil merk je op het moment dat je iets wilt wat het platform niet had voorzien.

Benieuwd hoe ver jouw idee komt in een dag?

Vertel wat je voor ogen hebt. Dan zeggen we eerlijk wat er in een dag te bouwen valt en wat niet.