AI-native ontwikkelmethodologie: bidirectionele contextcirculatie die verder gaat dan toolgebruik

AI en de ontwikkelaar
De manier waarop ontwikkelaars naar AI kijken, is complex. Door AI is een ongekende toename van productiviteit en informatieverwerving mogelijk geworden, maar tegelijkertijd verandert de rol van de ontwikkelaar fundamenteel. Sommigen voorspellen dat AI zich zal ontwikkelen tot AGI en het merendeel van de ontwikkelaars zal vervangen, terwijl anderen AI afdoen als een overschat hulpmiddel en beweren dat de essentiële waarde van de ontwikkelaar onveranderd blijft. Hoewel deze houdingen schijnbaar tegengesteld zijn, vertonen ze verrassend veel overeenkomst doordat ze AI beoordelen aan de hand van bestaande denkwijzen.
Het belangrijkste punt is echter niet het oordelen of evalueren van AI. De werkelijke kern ligt in de vraag hoe de denkwijze van de ontwikkeling moet veranderen wanneer AI als uitgangspunt wordt genomen, en hoe de rollen van ontwikkelaars en organisaties in het licht van die verandering opnieuw moeten worden vormgegeven. Hiertoe heeft dit document de methodologie voor AI-ontwikkeling samengevat in een analyse van drie fasen.
AI-afhankelijke ontwikkeling
AI-afhankelijke ontwikkeling is de fase waarin AI als instantie van oordeelsvorming wordt beschouwd en de resultaten ervan zonder kritische toetsing worden aanvaard. De ontwikkelaar in deze fase ziet AI als een entiteit die de eigen ideeën ordent en implementeert, en gaat zelfs zover AI te accepteren als een vervanger aan wie oordeel en verantwoordelijkheid kunnen worden gedelegeerd.
Deze benadering lijkt oppervlakkig de productiviteit explosief te verhogen. In werkelijkheid stapelt zich echter snel code op die niet kan worden verklaard en waarvoor niet kan worden ingestaan. Wanneer zich problemen voordoen, kan niemand met zekerheid bepalen waarom de code zo is opgebouwd of welke keuzes juist zijn.
In deze fase levert AI alleen onbetrouwbare resultaten op, en blijft de ontwikkelaar beperkt tot de rol van consument van die resultaten. Het gevolg is dat zowel AI als de ontwikkelaar op een uitputtende manier worden gebruikt, terwijl er geen echte competentie wordt opgebouwd.
AI-gebruikende ontwikkeling
AI-gebruikende ontwikkeling is een fase die vooral zichtbaar is bij meer ervaren ontwikkelaars. In deze fase ziet de ontwikkelaar AI niet als vervanging van oordeelsvorming, maar als een krachtig hulpmiddel dat de productiviteit verhoogt. De ontwikkelaar in deze fase blijft verantwoordelijk voor het ontwerp en de uiteindelijke beslissingen, en delegeert repetitieve en kostbare taken, zoals codegeneratie, refactoring, debugging en het samenvatten van documentatie, aan AI. Deze benadering vermindert het aandeel van repetitief werk voor de ontwikkelaar aanzienlijk en maakt het mogelijk de productiviteit sterk te verhogen terwijl het vertrouwen behouden blijft.
Deze methode kent echter een structurele beperking: de context van het ontwerp en het oordeelsproces circuleren niet. Omdat de richting van de ontwikkeling en het beoordelingsproces beperkt blijven tot het persoonlijke denkwerk van de ontwikkelaar en niet met AI worden gedeeld, kan AI de veranderingen en groei van de ontwikkelaar niet opslaan. Als gevolg hiervan raken de ontwerpcontext en het oordeelsvermogen geïsoleerd bij de ontwikkelaar.
Hierdoor ontstaat er geen leercyclus tussen de ontwikkelaar en AI, en breidt het vermogen om AI te gebruiken zich niet uit voorbij de bestaande competenties van de ontwikkelaar. Groei blijft bij het individu, en naarmate de tijd verstrijkt, neemt het competentieverschil tussen ontwikkelaars toe. Bovendien blijkt een tekortkoming dat dergelijke competenties op organisatieniveau moeilijk kunnen worden opgebouwd of gereproduceerd.
AI-native ontwikkeling
AI-native ontwikkeling gaat verder dan de fase waarin AI wordt vertrouwd of als hulpmiddel wordt gebruikt. Het verwijst naar een structuur waarin AI wordt opgenomen in de ontwikkelingsstructuur en het oordeelsproces, en waarin AI en mensen met elkaar interacteren en samen groeien. In deze fase functioneert AI als lid van het team dat de oordeelsvorming en context van de ontwikkelaar gedeeld met hem of haar deelt en ermee interacteert.
De kern van deze structuur is dat AI en de ontwikkelaar niet eenrichtingsverkeer, maar tweerichtingsverkeer circuleren. De ontwikkelaar deelt voortdurend de bedoeling van het ontwerp en de grondslag van oordelen met AI, en AI accumuleert via dit proces het denkwerk van de ontwikkelaar en de context van de organisatie. Daardoor ontwikkelt AI zich niet alleen tot een hulpmiddel dat verzoeken verwerkt, maar ook tot een systeem dat keuzes aanreikt die op de organisatie zijn afgestemd, en dat het oordeel van de ontwikkelaar ondersteunt en corrigeert.
AI-native ontwikkeling is niet afhankelijk van de vaardigheid of de kneepjes van een specifiek individu. Ook wanneer leden van het team wisselen, kan men, zolang de AI-context behouden blijft, vragen stellen vanuit een vergelijkbaar perspectief bij dezelfde problemen en kan men op basis van eerdere keuzes en de redenen daarvoor betere beslissingen blijven nemen. Ontwikkelingscompetentie blijft niet bij het individu, maar stapelt zich op binnen de gehele organisatie en wordt reproduceerbaar.
Uiteindelijk streeft AI-native ontwikkeling niet naar een bepaalde architectuur of ontwikkelmethodologie, maar naar het ontwikkelingsproces zelf, waarin het leren en oordelen van AI en mensen voortdurend worden versterkt. Binnen deze structuur vervangen ontwikkelaar en AI elkaar niet. In plaats daarvan delen zij dezelfde probleemruimte en evolueren zij tot een relatie waarin zij samen betere oordelen en steviger structuren tot stand brengen.