GoSuda

AI-native development methodology

By gosunuts
views ...

AI och utvecklare

Utvecklares syn på AI är komplex. Å ena sidan har AI möjliggjort en enastående ökning av produktivitet och informationsinhämtning, men å andra sidan förändras utvecklarens roll i grunden. Vissa förutspår att AI kommer att utvecklas till AGI och ersätta de flesta utvecklare, medan andra avfärdar AI som ett överreklamerat verktyg och hävdar att utvecklarens grundläggande värde förblir oförändrat. Dessa inställningar kan vid en första anblick verka helt motsatta, men de är slående lika i det avseende att de bedömer AI utifrån konventionella tankemönster.

Det som är viktigt här är dock varken att bedöma eller utvärdera AI. Den verkliga kärnan ligger i hur utvecklingens tankemönster, med AI som förutsättning, bör förändras, och hur utvecklares och organisationers roller bör omstruktureras i enlighet med denna förändring. För detta ändamål har AI-utvecklingsmetodologin sammanfattats genom de tre analyssteg som följer nedan.

AI-beroende utveckling

AI-beroende utveckling är det stadium där AI görs till subjekt för bedömning och dess resultat accepteras okritiskt. Utvecklare på detta stadium uppfattar AI som en entitet som organiserar och implementerar deras idéer, och accepterar den dessutom som ett substitut som kan delegeras ansvar och beslutsfattande.

Denna metod ser ytligt sett ut att dramatiskt öka produktiviteten. I praktiken ackumuleras dock snabbt kod som varken kan förklaras eller hållas ansvarig för. Kod som skapats på detta sätt gör att ingen, när ett problem uppstår, kan fatta ett övertygat beslut om varför strukturen blev sådan eller vilka val som var korrekta.

I detta stadium producerar AI endast opålitliga resultat, och utvecklaren förblir i rollen som konsument av dessa resultat. Följaktligen används både AI och utvecklaren på ett slösaktigt sätt, utan att några faktiska färdigheter ackumuleras någonstans.

AI-användande utveckling

AI-användande utveckling är det stadium som observeras hos skickligare utvecklare. På detta stadium uppfattar utvecklaren inte AI som ett substitut för bedömning, utan som ett kraftfullt verktyg för att höja produktiviteten. Utvecklaren på detta stadium förblir subjekt för design och slutgiltigt beslutsfattande, medan repetitiva och kostsamma uppgifter såsom kodgenerering, refactoring, debugging och dokumentsammanfattning delegeras till AI. Denna metod sänker andelen repetitiva uppgifter för utvecklaren avsevärt och kan dramatiskt öka produktiviteten samtidigt som tilliten upprätthålls.

Denna metod har dock en strukturell begränsning i att designens kontext och bedömningar inte cirkulerar. Eftersom utvecklingens riktning och beslutsfattande stannar inom den enskilda utvecklarens egna tankar och inte delas med AI, kan AI inte ackumulera utvecklarens förändring och tillväxt. Som ett resultat av detta isoleras designens kontext och omdöme hos utvecklaren.

På grund av detta bildas ingen inlärningscirkulation mellan utvecklaren och AI, och förmågan att utnyttja AI expanderar inte utöver utvecklarens befintliga kompetens. Tillväxten tillhör individen, och med tiden ökar kompetensklyftan mellan utvecklare. Dessutom uppvisar denna kompetens begränsningen att den är svår att ackumulera eller reproducera på organisationsnivå.

AI-nativ utveckling

AI-nativ utveckling innebär ett stadium som går bortom att lita på eller använda AI som ett verktyg, där AI integreras i utvecklingsstrukturen och beslutsfattandeprocessen, och där AI och människor interagerar och växer tillsammans. I detta stadium fungerar AI som en deltagare som interagerar och delar utvecklarens omdöme och kontext.

Kärnan i denna struktur är att AI och utvecklaren cirkulerar i en dubbelriktad snarare än enkelriktad process. Utvecklaren delar kontinuerligt designens avsikt och grunden för sina bedömningar med AI, och genom detta ackumulerar AI utvecklarens tänkande och organisationens kontext. Som ett resultat utvecklas AI bortom att enbart vara ett verktyg som behandlar begäranden, till att föreslå alternativ som är anpassade till organisationen samt bistå och korrigera utvecklarens omdöme.

AI-nativ utveckling är inte beroende av en viss individs skicklighet eller knep. Även om medlemmarna byts ut kan de ställa frågor med ett liknande perspektiv kring samma problem så länge AI-kontexten upprätthålls, och fortsätta fatta bättre beslut baserat på tidigare val och skälen bakom dem. Utvecklingskompetensen tillhör inte individen, utan ackumuleras i hela organisationen och blir reproducerbar.

Slutligen syftar AI-nativ utveckling inte på en specifik arkitektur eller utvecklingsmetodologi, utan på själva utvecklingsprocessen där AI:s och människors omdöme och inlärning kontinuerligt stärks. Inom denna struktur ersätter varken utvecklaren eller AI varandra. Istället utvecklas de till en relation som delar samma problemutrymme och tillsammans skapar bättre bedömningar och mer robusta strukturer.