Hva skal en utvikler gjøre når AI kan skrive kode?

Om du som leder eller teknolog i starten av 2023 ikke har endevendt hodet for å finne ut hvordan AI kan forbedre, effektivisere, erstatte eller være basis for din eksisterende forretningsidé, har du antakelig levd under en stein. Mange håper nok innerst inne at dette er en storm som kommer til å blåse over, og vil stå sterke i denne troen så lenge man kan. Dessverre for dem er det flere og flere som i mellomtiden blir stadig flinkere på å lære seg hvordan man kan benytte verktøy som ChatGPT og dens videreutviklinger i sitt daglige virke.

Det dukker for tiden opp nye startups som bygger på AI-teknologi nær sagt hver dag. Hvorvidt deres forretningsidéer er gode eller ikke lar jeg tiden avgjøre, men for meg er det åpenbart at teknologibedrifter som ikke har en eller annen form for AI i sitt verktøybelte innen kort tid kommer til å være like utdaterte som de som fortsatt benytter skrivemaskiner. For vårt bruk ser jeg i hvert fall den åpenbare plassen i en forlengelse av der GitHubs Copilot opererer. Hvis noen skulle ha blitt bedt om å implementere FizzBuzz på et intervju og hadde brukt mer enn ti sekunder – for eksempel «Create a fizzbuzz implementation in typescript» i ChatGPT, eller «function fizzbuzz», tab, tab, tab, til ferdig med Copilot – viser de at de kaster bort alles tid. Det samme gjelder alle andre skoleeksepler på algoritmer og kodeoppgaver.

Så vi vet nå at ChatGPT kan hjelpe oss med trivielle programmeringsjobber, av den typen der de fleste erfarne utviklere på forhånd vet hvordan løsningen kommer til å se ut. Heldigvis er de prosjektene vi løser ganske mye mer komplekse enn som så. Det man imidlertid kan se, er at en del av dem kan ligne hverandre på et overfladisk nivå når det gjelder modellering og funksjonelle krav. Skal du ha et system for å administrere brukere, grupper av brukere, lokasjoner og varer som flyter mellom stedene? Trenger du et system som skal sammenstille informasjon fra tre forskjellige eksterne kilder, transformere dataene og presentere det i et API? Dette høres ut som noe noen har laget før. Hvorfor skal man da lage det på nytt, om man kan beskrive det på et overordnet plan og la en AI-tjeneste skrive koden for deg? Om få år, for ikke å si måneder, ser jeg for meg at man kan smelle inn en beskrivelse av systemet du ønsker med et par setninger, og sekunder senere har man første prototype, skrevet i de språk og rammeverk du har valgt, kjørende i skytjenesten du foretrekker. Om ting ikke blir rett i første runde kan man gi inn noen vennlige pek i riktig retning og prøve på nytt.

Mange deler av dette puslespillet har eksistert en stund. Jeg husker første gang jeg så en demonstrasjon av Spring Roo, et CLI-verktøy bygget på Java og Spring der man kunne oppgi navn, felt og relasjoner på entitetene i modellen man ønsker seg, og den vil scaffolde opp et helt system for deg basert på disse. Den gang var det imponerende og et greit startpunkt for et mindre prosjekt, men også begrenset i hva den var i stand til å lage for deg. Trengte du noe mer enn hva det snevre designet og relasjonsmodellene tillot, måtte du fint lage det selv. Denne typen verktøy vil før eller siden ta i bruk AI-verktøyenes egenskaper til å utlede større sammenhenger og tekst basert på brukerens input. Om man for eksempel ber et slikt verktøy om en digital markedsplass der folk kan kjøpe og selge en eller annen vare eller tjeneste, vil den ha sett nok slike systemer til å lage noe som både minner om allerede eksisterende tjenester. Samtidig vil det tilpasse løsningen for din personlige twist eller målgruppe. Selv om dette kun er en fantasi i dag, er det vår jobb å holde oss oppdatert på hvilke muligheter vi har i dag og i morgen.

Alt dette regner jeg med er kjent, spesielt om du allerede har endevendt hodet i håp om å finne et snev av håp for egen forretning de neste årene. Jeg skal ikke påberope meg dyptgående ekspertise, men mitt håp, nei, min spådom, er at jobben som utvikler vil ta en vending mot mer morsomme og interessante oppgaver om vi først åpner armene for disse nye verktøyene. Det er mye AI-er er gode på, men det er en del områder der mennesker fortsatt er overlegne: Fantasi, overraskelse og interesse er noe av dem. ChatGPT kan fortelle deg i detalj om alle deler av kroppen du kan navnet på, men om du ber den fortelle noe som den synes er spennende eller overraskende om kroppen, vil den ikke ha peiling. For hva er egentlig et morsomt funfact som folk flest ikke vet, og hva er allmenn kunnskap? En AI klarer ikke å skille på dette, fordi for den er (foreløpig) et faktum kun et faktum. Med mindre det kun er noe den har diktet opp, noe den også har en stygg tendens til å gjøre forholdsvis ukritisk.

Og om man lener seg på denne tendensen om å finne på usanne ting og ber den om å dikte opp et utsagn som virker plausibelt men ikke er det, kan den i beste fall fortelle deg ting som at «Pi er nøyaktig 3.14», som hverken er spesielt oppdiktet eller plausibelt. Det er bare unøyaktig og feil, og åpenbart sådan. Så de tidligere nevnte grunnleggende menneskelige egenskapene som fantasi, interesse og overraskelse er ikke dagens tekstgeneratorer spesielt flinke på.

Så hva betyr dette for oss? Når jeg ser på nye prosjekter, pleier jeg å glede meg til de områdene der vi beveger oss i mer ukjent farvann. Der utviklere, designere og brukere kanskje må teste ulike innfallsvinkler, hvor vi utforsker mulighetsrommet for hva vi får til med de tilgjengelige dataene, hvor vi eksperimenterer med kreative løsninger, uprøvde verktøy og hvor man gjennom prosessen finner ut nye ting. Gjennom dette får vi anledning til å skape noe helt nytt, og sammen tenke tanker ingen har tenkt før. Det er bare synd at mange prosjekter avsluttes før man kommer til, eller ikke på langt nær gjennom denne fasen.  

Man drømmer seg gjerne dit i oppstarten, men tid, penger og prioriteringer går en annen vei mens man jobber seg gjennom enda et system der man skal hente ut noe data fra en database, filtrere basert på personalisering, legge på litt sminke, og til slutt presentere det for brukeren. Tenk hvor gøy det er om man kan slippe å ta hele denne omveien, men heller bruke energien på de vanskelige problemene? Skissere opp noen modeller, interaksjoner, designprototyper, mate dette til et AI-verktøy og til første demo vise frem et produksjonsklart system som løser kundens umiddelbare behov. Et system skrevet med dokumentert, lesbar, testbar, vedlikeholdbar kode, klar for videre utvikling. Et godt fundament for å angripe det spennende og ukjente.

Det er dette som gjør at jeg ser optimistisk på fremtiden til utviklere. Det store flertallet av de jeg har jobbet med er smarte, kreative folk som drives av å tøye grensene av hva som er teknisk mulig. Opp gjennom tidene har vi videreutviklet verktøyene, fra hullkort med CPU-instruksjoner til høynivå programmeringsspråk, fra å lese enkeltbits på magnetbånd, til globalt tilgjengelige sanntidsdatabaser. Det er sånn sett kanskje bare den naturlige løsningen at fremtiden blir enda mer høynivå enn i dag. Med den samlede kunnskapen fra tusenvis av prosjekter, millioner av kodelinjer, vil vi forhåpentlig vis i fremtiden kunne fokusere energi og hjernekapasitet på å heller finne de unike og nyskapende innfallsvinklene.

For i motsetning til en kunstig intelligens, ER jeg faktisk interessert. Jeg ER nysgjerrig på hva jeg kan få til og hvordan man løser et problem ingen har løst før meg. Det er jo det som er det morsomme med jobben jeg har valgt meg. Og nettopp det at dette kan bli fremtiden min, gjør at jeg ser optimistisk på det å benytte AI i fremtiden. Ikke for å utkonkurrere meg, men for å gjøre det jeg kunne ha gjort, men ikke gidder. Jeg skriver ikke lenger på skrivemaskin, og har apparater som tar seg av oppvask og varmestyring. Og jeg lar ChatGPT skrive fizzbuzz for meg.

Skrevet av
Ola Morseth-Nordbryhn

Andre artikler