LinkedIn er fuld af absurde ideer, såsom at ”Menneskeskabt kode er død” eller ”Fremtidens krav skrives af maskiner”. Øregejl får fuldt smadder som en del af den helt store AI-guldfeber. Bag støjen fra de glade guldgravere er der dog noget vigtig substans, som er værd at beskæftige sig med.
Artiklen her handler om de redskaber, som vi bruger til at skabe software. Kunstig intelligens viser lige nu et potentiale til at forbedre disse redskaber i en størrelse orden, som vil påvirke samfundet økonomisk og socialt. Nystartede virksomheder som Bolt, Lovable, og Windsurf har sat nye rekorder for vækst med deres AI-assisterede udviklingsværktøjer. Det bliver vi nødt til at være nysgerrige på. Er det guldgraverne, som trækker prisen op på skovle, eller er der faktisk guld derude?
Hvis der er noget, som er svært at forudse, så er det fremtiden. Vi ved dog fra tidligere teknologiske bølger som internet- og mobilbølgen, at udbredelse er en indikator for de økonomiske og sociale forandringer. Lad os derfor kigge på tre forskellige niveauer for udbredelse af AI-assisteret kodning, og se på hvordan det potentielt kan komme til at påvirke vores softwareproduktudviklingspraksis i Danmark.
Niveau 1: Bedre IDE (udviklingsmiljø) for udviklere
Selvom det lyder relativt støvet for den udenforstående iagttager, så vil selv 20-30% produktivitetsforbedringer hos den enkelte softwareudvikler føre til store forandringer. I de sidste 30 år har manglen på softwareudviklere i Danmark været en flaskehals i vores softwareudviklingspraksis. Udviklingsmiljøerne og uddannelserne er naturligvis bedre, men vi har aldrig fuldt med efterspørgslen. Vi har derfor haft travlt med at sende opgaver til Indien, Vietnam og andre lande, hvor kapaciteten er højere og prisen lavere.
Øger vi produktiviteten eller udviklingshastigheden med 20-30%, eliminerer vi mange af de negative konsekvenser af udlicitering til udlandet, men nye udfordringer kommer også til syne:
1) Større spredning på udviklerkompetencer: Auto-genereret kode er godt, hvis det opfylder vores krav om bæredygtighed. Det vil sige, at det skal kunne vedligeholdes og videreudvikles. Auto-generet kode er skidt, hvis det fører til bloatware og en arkitektur, som kører os længere og længere ned i sandet. Hvis du er en ørn, har du ikke lyst til at finde et gigantisk vibe-æg i din kode. Alt fra softwareuddannelse til softwareværktøjerne skal bygges om for at sikre produktivitetsforbedringerne skubber os i den rigtige retning.
2) Mangel på god produktledelse og -design. Det kan meget nemt blive den nye flaskehals, hvis vi får frigivet de 20-30% mere kapacitet. Hvis vi ikke kan specificere gode løsninger, så kan vi heller ikke udvikle dem. MIMU – Møg Ind, Møg Ud. Vi kan naturligvis håbe på tilsvarende produktivitets forbedringer her, men de er sværere at få øje på.
Lykkes vi med at løse disse to opgaver på fornuftig vis, vil vi kunne skabe bæredygtige digitale forandringer på tværs af det danske samfund. Når man står midt i støjen fra alle guldgraverne, er det godt at hive Amaras lov frem: “Vi har en tendens til at overvurdere effekten af en teknologi på kort sigt og undervurdere dens effekt på lang sigt.”
Opstartsvirksomheden Windsurf illustrerer tilgangen i scenarie 1. De fokuserer på netop IDE’et og blev opkøbt af OpenAI for $3 milliarder for 2 uger siden. Men positioneringen som IDE kan være første skridt på en længere rejse, hvilket bringer os til niveau 2.
Niveau 2: Nye måder at samarbejde på
En anden mulighed er, at AI-assisteret kodning og ”Vibe coding”, som den prompt-genereret kodning kaldes på engelsk, flytter arbejdsopgaver mellem faggrupper eller skaber helt nye roller. Virksomheder som Lovable og Bolt forsøger at åbne programmering op for en bredere gruppe mennesker.
Opgaver, som tidligere lå som kedelige standardopgaver hos udviklerne, kan potentielt flyttes til andre faggrupper som designere eller produktchefer eller en ny gruppe af junior udviklere. De erfarne udviklerne kan på den måde fokusere på de 40-50% af opgaverne, som enten er teknisk komplicerede, har sikkerhedsmæssige konsekvenser, eller påvirker ydeevnen af den samlede løsning. Resultat er en ny arbejdsdeling og højere motivation på tværs af faggrupper.
I sidste ende vil det kræve en helt ny måde at integrere alle værktøjerne på - fra udforskning (f.eks. Dovetail, Figma) over udvikling af brugerhistorier (f.eks. Jira, Miro) til udvikling af kode (Github, IDE, etc.) og feedback på tværs af praksis (f.eks. Slack, Mixpanel).
Resultatet på dette niveau afhænger af hvor meget prompt-genereret kodning kan hjælpe os med at lave kvalitetssoftware til rimelige penge. Udover problematikken med hallucinationer og kvaliteten af den auto-generede kode skal vi også have løst omkostningsprofilen ved brug af de store sprogmodeller. Det er fortsat dyrt i brug af serverkapacitet og er ikke bæredygtigt på den lange bane. Det bliver spændende at følge forbedringer i de underliggende metrikker over de næste 12-24 måneder.
Det bringer os til det sidste niveau.
Niveau 3: Størstedelen af alt kode generes automatisk
Her er vi ude på overdrevet af guldfeberen. Her bliver software-udviklere til arkitekter og supervisorer, mens AI håndterer hovedparten af den faktiske kodeskrivning. Ligeledes for produktledelse og design: Maskinerne laver alt arbejdet.
Dette er solskinsscenariet, hvor alle de tekniske og økonomiske udfordringer med den nuværende teknologi løses. Scenariet er også forudsætningen for at vi kan komme frem til Kunstig Generel Intelligens, altså det teoretiske koncept i forskning i kunstig intelligens, hvor computere kan udføre intellektuelle opgaver på samme niveau som mennesker.
Selvom Elon Musk og en masse virale indlæg på LinkedIn gerne vil have os til at tro anderledes, så er vi ikke på vej mod dette scenarie indenfor en overskuelig fremtid.
Eksperimentér med kunstig intelligens ….med omtanke!
Analysen af de tre niveauer afslører mine anbefalinger til softwareproduktvirksomheder og jer, som arbejder med softwareprodukter. Personligt vil jeg gå i gang med niveau 1 og eksperimentere med AI-udviklingsværktøjer. Udfordre jer selv med AI-assisterede udviklingsværktøjer i jeres teams. Lær, hvad der virker og hav en åben snak på tværs af faggrupper. Prøv lidt forskellige redskaber og forstå deres begrænsninger. Specielt det sidste er vigtigt, så I ikke genererer en masse ikke-bæredygtig kode baseret på møg krav.
Niveau 2 er lidt længere ude, men vi kan godt være nysgerrige på den organisatoriske forandring allerede i dag. Næste uge bringer jeg en artikel om hvordan kunstig intelligens kan bruges i en produktledelsespraksis. En af anbefalingerne er at eksperimentere med ”Vipe”-værktøjer til at lave prototyper. Husk et ekstra fokuspunkt i jeres retrospektive gennemgang og begynd snakken på tværs af faggrupper om I får noget ud af de nye muligheder.
Niveau 3 vil jeg totalt ignorere og flytte fokus til en sund produktledelsespraksis nu. Når kodning forhåbentligt bliver lettere, bliver evnen til at definere det rigtige produkt endnu vigtigere. Bliv klogere på de tre uundgåelige U’er i produktledelse. Jeg har fået muligheden for at tale til Lund&Bendsens faglige fredag om præcist det emne. Det glæder jeg mig til. Registrering er åben her.
Hvis du ikke selv har prøvet vibe-kodning, så er der her et eksempel på en webapplikation, som jeg har lavet sammen med min datter, som blev student i går.
