Kod raskere med generativ AI, men pass på risikoen når du gjør det

0
20
Yaroslav Kushta/Getty Images

Utviklere kan nå henvende seg til generativ kunstig intelligens (GenAI) for å kode raskere og mer effektivt, men de bør gjøre det med forsiktighet og ikke mindre oppmerksomhet enn før. 

Selv om bruken av AI i programvareutvikling kanskje ikke er ny – den har eksistert siden minst 2019 – gir GenAI betydelige forbedringer i genereringen av naturlig språk, bilder og – i det siste – videoer og andre eiendeler, inkludert koder, sa Diego Lo Giudice, Forrester visepresident og hovedanalytiker.

Også: Hvorfor fremtiden må være BYO AI: Modelllåsing avskrekker brukere og kveler innovasjon

Tidligere iterasjoner av AI ble mest brukt i kodetesting, med maskinlæring utnyttet for å optimalisere modeller av en teststrategi, sa Giudice til ZDNET. Brukt på tvers av alle disse brukstilfellene, kan GenAI gå utover å støtte beslutningstaking og forbedre kodegenerering. 

I følge Giudice tilbyr GenAI tilgang til en ekspert, peer-programmerer eller -spesialist (som en tester og forretningsanalytiker) langs utviklingslivssyklusen som kan spørres interaktivt for å finne informasjon raskt. GenAI kan også foreslå løsninger og testtilfeller. 

"For første gang ser vi betydelige produktivitetsgevinster som tradisjonell AI og andre teknologier ikke har gitt oss," sa han. 

AI kan benyttes over hele livssyklusen for programvareutvikling, med en dedikert “TuringBot” på hvert trinn for å forbedre tekniske stabler og plattformer, bemerket han. 

TuringBots, et begrep laget av Forrester, er definert som AI-drevet programvare som hjelper utviklere med å bygge, teste og distribuere koder. Forskningsfirmaet tror TuringBots vil drive en ny generasjon programvareutvikling, der de kan bistå på alle stadier av utviklingslivssyklusen, inkludert å slå opp teknisk dokumentasjon og autofullføringskoder. 

"Analyser/planlegg TuringBots," kan for eksempel lette analyse- og planleggingsfasen av programvareutvikling, sa Giudice, og pekte på OpenAIs ChatGPT og Atlassian Intelligence som eksempler på slike AI-produkter. Andre, som Google Clouds Gemina Advanced, kan generere design av mikrotjenester og APIer med kodeimplementering, mens Microsoft Sketch2Code kan generere fra håndskrevet skissert brukergrensesnitt-arbeidskode, sa han. 

Også: Implementere AI i programvareutvikling? Her er alt du trenger å vite

Han la til at "koder TuringBots" er for tiden den mest populære brukssaken for GenAI i programvareutvikling, der de kan generere koder fra ledetekster så vel som fra kodekontekst og kommentarer via autofullføring for populære IDE-er (integrerte utviklingsmiljøer). Disse inkluderer vanlige språk som JavaScript, C++, Phyton og Rust. 

Et stort trekk ved generative modeller er at de kan skrive koder på mange språk, slik at utviklere kan legge inn en melding og generere og refaktorere eller feilsøke linjer med koder, sa Michael Bachman, Boomis leder for arkitektur og AI-strategi. "I hovedsak er alle mennesker som samhandler med GenAI kvasi- og seniorutviklere," sa han. 

Programvareleverandøren integrerer GenAI i noen av produktene sine, inkludert Boomi AI, som oversetter naturlige språkforespørsler til handling. Den kan brukes til å designe integrasjonsprosesser, APIer og datamodeller for å koble sammen applikasjoner, data og prosesser, ifølge Boomi. 

Selskapet bruker GenAI for å støtte sine egne programvareutviklere, som følger nøye med på kodene som kjører plattformen.

Også: Kan AI være en lagspiller innen samarbeidende programvareutvikling?

"Og det er nøkkelen," sa Bachman. "Hvis du bruker GenAI som den primære kilden for å bygge hele applikasjonen din, kommer du sannsynligvis til å bli skuffet. Gode ​​utviklere bruker GenAI som et startpunkt eller for å teste feilscenarier grundig, før de setter kode i produksjon. Dette er hvordan vi håndterer det internt."

Teamet hans jobber også med å bygge funksjoner for å møte kundene sine' "praktiske AI-mål." For eksempel lager Boomi et gjenfinningssystem fordi mange av kundene ønsker å erstatte nøkkelordsøk med muligheten til å slå opp innhold, for eksempel kataloger på nettsidene deres, på et naturlig språk.

GenAI kan også brukes til å utbedre sikkerhet, sa Giudice, der den kan se etter sårbarheter i AI-genererte koder og gi forslag for å hjelpe utviklere med å fikse visse sårbarheter. 

Sammenlignet med tradisjonell koding, en utviklingsstrategi uten eller lav kode kan tilby hastighet, innebygd kvalitet og tilpasningsevne, sa John Bratincevic, hovedanalytiker hos Forrester. 

Også: Utover programmering: AI gyter en ny generasjon jobbroller

Den sørger også for en integrert verktøykjede for livssyklus for programvareutvikling og tilgang til en utvidet talentpool som inkluderer ikke-kodere og “borgerutviklere” utenfor IT-fellesskapet, sa Bratincevic. 

Organisasjoner kan imidlertid møte utfordringer knyttet til styringen av storskala implementering, spesielt med administrerende innbyggerutviklere som kan telle i tusenvis, advarte han . Prissetting kan også utgjøre en barriere ettersom den vanligvis er basert på antall sluttbrukere, og dette kan begrense bruken, sa han. 

Og selv om GenAI eller AI-infunderte programvareassistenter kan gjøre det mulig for yngre profesjonelle å fylle talenthull, inkludert i cybersikkerhet, sa Giudice at en ekspertgjennomgang fortsatt er nødvendig for alle disse oppgavene. 

Bratincevic var enig, understreker behovet for utviklere og andre roller innenfor programvareutviklingslivssyklusen for å gjennomgå alt plattformen genererer eller automatisk konfigurerer gjennom AI. 

"Vi er ikke ennå, og vil sannsynligvis aldri noensinne være på det tidspunktet å stole blindt på AI for programvareutvikling," sa han.

For det første er det sikkerhetskrav å vurdere, ifølge Scott Shaw, Asia-Pacific CTO for Thoughtworks. Teknologikonsulenten tester jevnlig nye verktøy for å forbedre effektiviteten, enten det er i IDE eller for å støtte hvordan utviklere jobber. Selskapet gjør det der det er hensiktsmessig for kundene og kun med deres samtykke, sa Shaw i et videointervju, og la merke til at noen virksomheter fortsatt er nervøse for bruken av GenAI. 

Også: På vei mot generativ AI-adopsjon? Hvorfor skepsis er din beste beskyttelse

"Vår erfaring er at [GenAI-drevne] programvarekodingsverktøy [for øyeblikket] ikke er like sikkerhetsbevisste og [tilpasset] sikkerhetskodingspraksis, " han sa. For eksempel kan utviklere som jobber for organisasjoner i et regulert eller datasensitivt miljø måtte følge ytterligere sikkerhetspraksis og kontroller som en del av programvareleveringsprosessene. 

Å bruke en kodeassistent kan doble produktiviteten, men utviklere må spørre om de kan teste koden tilstrekkelig og oppfylle kvalitetskravene langs rørledningen, bemerket han. 

Det kutter et tveegget sverd : Organisasjoner må se på hvordan GenAI kan utvide kodingspraksisen deres slik at produktene de utvikler er sikrere, og – samtidig – hvordan AI gir ekstra sikkerhetsrisikoer med nye angrepsvektorer og sårbarheter. 

Fordi det leverer betydelig skala, forsterker GenAI alt en organisasjon gjør, inkludert de tilhørende risikoene, bemerket Shaw. Mange flere koder kan genereres med den, noe som også betyr at antallet potensielle risikoer vil øke eksponentielt. 

Kjenn dine AI-modeller

Og mens lavkodeplattformer kan være et godt grunnlag for GenAI Turingbots for å hjelpe programvareutvikling, bemerket Bratincevic at organisasjoner trenger å vite hvilke store språkmodeller (LLM) som brukes og sikre at disse stemmer overens med bedriftens retningslinjer. 

Han sa at GenAI-spillere “varierer vilt” i dette aspektet, og oppfordret bedrifter til å sjekke versjonen og lisensavtalen hvis de bruker offentlige LLM-er som OpenAIs ChatGPT. 

Også: Hei! Microsoft Copilot mislyktes i hver eneste av kodetestene mine

Han la til at GenAI-drevne funksjoner for å generere koder eller komponentkonfigurasjoner fra naturlig språk ennå ikke har modnet. De kan se økt bruk blant innbyggerutviklere, men vil neppe imponere profesjonelle utviklere. 

Bratincevic sa: “For øyeblikket er en velprøvd og godt integrert lavkodeplattform pluss GenAI en mer fornuftig tilnærming enn en uprøvd eller lett plattform som snakker et godt spill på AI.”

Mens LLM-ene utfører det tunge løftet av kodeskriving, mennesket må fortsatt vite hva som kreves og gi relevant kontekst, ekspertise og feilsøking for å sikre at utdataene er nøyaktige, sa Bachman. 

Utviklere må også være oppmerksomme på å dele proprietære data og intellektuell eiendom (IP), spesielt med åpen kildekode-verktøy, sa han. De bør unngå å bruke privat IP som koder og økonomiske tall for å sikre at de ikke trener sine GenAI-modeller ved å bruke en annen organisasjons IP eller omvendt. "Og hvis du velger å bruke en åpen kildekode LLM, sørg for at den er godt testet før du setter den i produksjon," la han til. 

Også: GitHub gir ut et AI-drevet verktøy som tar sikte på en “radikalt ny måte å bygge programvare på”

“Jeg vil feile på siden av å være ekstremt forsiktig med modellene som GenAI-verktøy er trent på. Hvis du vil at disse modellene skal være verdifulle, må du sette opp riktige rørledninger. Hvis du ikke gjør det, kan GenAI forårsake mange flere problemer," han advarte. 

Det er tidlige dager og teknologien fortsetter å utvikle seg; dens innvirkning på hvordan roller – inkludert programvareutviklere – vil endre seg er langt fra sikkert.

For eksempel kan AI-drevne kodeassistenter endre hvordan ferdigheter verdsettes. Vil utviklere bli ansett som bedre fordi de er mer erfarne eller fordi de kan huske alle kodesekvensene, sa Shaw. 

Foreløpig mener han at det største potensialet er GenAIs evne til å oppsummere informasjon , som tilbyr en god kunnskapsbase for utviklere for bedre å forstå virksomheten. De kan deretter oversette denne kunnskapen til spesifikke instruksjoner, slik at systemene kan utføre oppgavene og bygge produktene og funksjonene kundene ønsker.