– Kunstig intelligens er veldig god på å lage mye data, men kan gi oss AI-indusert teknisk gjeld, advarte Jennie Kandahl i et foredrag på Dataforeningens Odin 2024-konferanse.
Kandahl jobber i Bouvet og har lang erfaring som testleder, tester og testutvikler. Hun og kollega Wessel Braakman la på konferansen frem sine erfaringer fra innføring av GitHub Copilot. Målgruppen var de som driver med programvaretesting.
Vi har tidligere skrevet om at AI-kodeassistenter ofte kan lage kode av dårlig kvalitet, og Kandahl og Braakman trakk i sitt foredrag frem en undersøkelse vi har skrevet om fra GitClear som viser at mengden kode som fjernes eller oppdateres kort tid etter at den er skrevet, har økt kraftig.
– Nå er vi i stand til å generere teknisk gjeld enda raskere enn før, sa Kandahl.
De to advarte om at dette kan være et problem for alle som er opptatt av kvalitet og kvalitet på lang sikt, og at det går mye tid og penger på å vurdere kodeforslag som er generert av AI.
"Google-hjerne"
Foredraget til de to Bouvet-utviklerne handlet imidlertid ikke om at vi ikke skal bruke AI til å skrive kode for oss – men heller om å gi råd om hvordan man skal bruke det riktig.
Wessel fortalte at han og hans team selv bruker AI til mye forskjellig, både til å skrive kode og tester for koden.
Dette har fungert bra til veldig mye for dem, selv om det kan være juridiske utfordringer ved at AI-en kan foreslå kode basert på lisensiert kode i treningsdataene.
Erfaringen etter å ha innført Copilot er også at det fungerer best for enkle problemer, men at AI-en sliter ved komplekse problemer og problemer som er domeneavhengig.
Wessel advarte imidlertid mot det han kaller å få en "google-hjerne".
– AI-en begynner å tenke for oss, og vi glemmer å skrive kode selv. Vi stoler mindre og mindre på oss selv, men spør AI-en hele tiden.
«AI-en begynner å tenke for oss, og vi glemmer å skrive kode selv.»
AI bra til å skrive tester
Noe av det Copilot egner seg aller best til, er enkle og repeterende oppgaver. Som eksempler ble det nevnt blant annet prototyping, datagenerering, skriving av enhetstester, og til å foreslå testcaser.
– Vi brukte automatikken til å spørre om den kunne foreslå flere tester. Da kom Copilot med tester vi ikke hadde tenkt på. Så Copilot kan være fint til å øke testdekningen, sa Braakman.
Hans anbefaling til andre som vurderer å innføre kodeassistenter som Copilot var å blant annet fokusere på å redusere risiko.
– En ting som er skummelt med å bruke AI, er at den vil ha tilgang til kodebasen. Det første vi gjør er derfor alltid å se på de ulike repoene i prosjektet, og gi det en "label" basert på hvilke data som er i repoene.
Så får Copilot tilgang kun til de repoene som ikke har sensitive data.
Utviklerne har ansvaret
Til slutt minnet de to om at det ikke er AI sitt ansvar eller skyld at kodekvaliteten blir dårligere. Det ansvaret ligger – ikke overraskende – alltid hos utviklerne selv.
Ved innføring av AI er det viktig at det er seniorutviklere og tekniske ledere som står for innføringen, samt at alle er klar over begrensningene til AI-løsningene, og at man gir nødvendig opplæring.
Alle må få innprentet at de aldri skal stole 100 % på det AI-en leverer fra seg, viktigheten av å kontrollere koden og teste den grundig.
– Det er helt essensielt at du har gode reviewprosesser og kodestandarder. All kode som er skrevet av Copilot må gås gjennom veldig nøye og bør være godt testet, sa Kandahl.
Hun oppfordret til å ha fokus på kodekvalitet og teknisk gjeld.
– Er Copilot en trussel mot kodekvaliteten? Ja, hvis det brukes på feil måte. Copilot og kunstig intelligens er ikke magisk og erstatter ikke mennesker, det er kun et støtteverktøy, sa Kandahl.