Tankeledere
Hvordan formerer AI programvareutviklingsøkosystemet?

Få teknologier måler opp til kunstig intelligens (AI) når det gjelder potensialet for å drive innovasjon. Det transformerer banksektoren, underholdning, e-handel, helse, trening og mange andre industrier, med en rekke nye fengslende fremgang i disse feltene på horisonten.
AI utmerker seg også i ulike aspekter av programvareutvikling. Dessuten kan dette spesielle området være den største mottakeren av teknologien på grunn av dens selv-lærende evne kombinert med en ubestridt evne til å raskt analysere og trekke ut meningsfulle informasjon fra enorme mengder data. Det øker allerede produktiviteten, hastigheten og kvaliteten på kodearbeidet.
Det er ingen tvil om at den videre penetreringen av AI i programmeringsverdenen vil fortsette å omdefinere måten programvare kommer til å eksistere og hva det innebærer å være en utvikler. La oss gå gjennom de banebrytende endringene i programvareingeniørarbeid drevet av tandem av mennesker og maskiner.
Utviklere kan fokusere mer på kreative, komplekse oppgaver
Selv om AI knapt kan fullføre en fullstendig utviklingscyklus på egen hånd på dette tidspunktet, har det allerede blitt uvurderlig for å utføre repetitive, kjedelige arbeidsflyter som tar mye tid og innsats når de gjøres manuelt. AI-baserte kodehjelpere som Tabnine og OpenAI Codex vinner frem i dette området. Deres bidrag til programmeringsprosessen består hovedsakelig av automatisk kodekomplettering basert på tusenvis av åpne prosjekter tilgjengelige på GitHub og lignende ressurser.
Dette bidraget redder ikke bare programvareingeniører timer med skriving og forbedrer nøyaktigheten av kode-rutinen, men det frigjør også hodeplass til å konsentrere seg om design-forbedring, forbedring av brukeropplevelsen, problemløsing og den kreative fasen av prosjektene.
Den stadig tettere “samarbeidet” mellom mennesker og kunstig intelligens vil fremkalle en paradigmeskifte hvor deres roller vil komplementere hverandre uten å overlappe direkte. Neste store milepæl er at utviklere vil ha mer av en overvåkingsfunksjon. AI, på sin side, vil gjøre det meste av det kjedelige arbeidet så menneskers bidrag begrenses til å sette de siste preg på prosessen.
Veiledning for nye utviklere er et annet område hvor maskiner vil opprettholde og øke sin tilstedeværelse i fremtiden. AI-baserte verktøy fra denne kategorien som Mendix Assist gjør de beste kodepraksisene tilgjengelige for IT-entusiaster som mangler ekspertisen til å fullføre prosjekter på egen hånd. Dette vil åpne veien for demokratisering av denne industrien.
AI gjør det lettere å oppdage programfeil tidlig
Det er allmenn kjennskap til at kvalitetsikringstesting er en lang og ressurskrevende prosess med en rekke fallgruber. Siden programvareleverandører kan tildele en begrenset mengde mann-timer til å lete etter feil i sine produkter, kan noen dårlige kode-linjer fly under radaren og bare bli oppdaget etter at løsningen er deployert i en kundes miljø.
Kunstig intelligens er allerede i ferd med å revolusjonere dette territoriet. I virkeligheten er programvaretesting ett av de mest lovende anvendelsene av denne teknologien over hele spekteret. Det kan gå gjennom enorme kodebasier for å peke ut syntaksfeil, logiske inkonsistenser, kompilasjonsfeil og andre feil med en hastighet som er utenfor menneskelige analytikeres evne, og med super-høy nøyaktighet.
Et interessant eksempel på at AI gir kvalitetsikringsrutinen en boost er bruken av bilde-basert maskinlæring for å teste et programs grafiske brukergrensesnitt gjennom side-ved-side-sammenligninger. En annen teknikk kalt differensial fuzzing introduserer samme kode til forskjellige programvare-miljøer for å observere runtime-forskjeller, som hjelper med å identifisere subtile semantiske og logiske feil. I tillegg til å kjøre tester basert på forhåndsdefinerte scenarioer, kan AI-drevne verktøy lære fra tidligere prosjekter og opprette nye test-tilfeller. Dette kutte utviklingstiden betydelig og sikrer at sluttbrukeren får et produkt av anstendig kvalitet.
Realtid automatisk feilhåndtering vil fortsette å blomstre
Når uløste feil i programvare akkumulerer over tid, skaper dette det som kalles teknisk gjeld. Dette er en vanlig situasjon i alltid-hastige utviklingsekosystemer som prioriterer produktlevering over kvalitet. Ved å ikke å løse slike problemer i dag, løper leverandørene risikoen for å håndtere programvarenedtider og feil i morgen. En annen alvorlig hindring er at produktet kan ha sikkerhetshull som gjør det sårbart for lett kompromittering. For organisasjoner som tilbyr programvare som en tjeneste, er disse spesielt ugunstige scenarioer fordi de påvirker deres omdømme og selv en kort periode med utilgjengelighet medfører finansielle tap.
Kunstig intelligens og maskinlæring kan fylle denne lukken. De finner automatisk feil, kategoriserer dem etter en forhåndsdefinert alvorlighetsgrad og fikser dem med liten eller ingen menneskelig innblanding. Denne funksjonaliteten er verdifull fordi kostnaden ved å løse feil øker betydelig lengre ned i programvarelivssyklusen.
Effektiviteten av en slik tilnærming stammer fra evnen til disse fremtidsrettete teknologiene til å gå gjennom svært store databaser på bare minutter og avdekke grov kode eller andre avvik fra normen samtidig som de foreslår skritt som hjelper programvareingeniører til å korrigere dem. Høy nøyaktighet er også en fordel ved denne taktikken. Dessuten kan AI trekke konklusjoner fra tidligere analyserte data for å finjustere sin feilhåndteringsevne. Gitt alle fordelene, vil denne trenden fortsette å vinne frem i utviklingskretser.
AI beriker prosjekter med kontinuerlig brukertilbakemelding
For å levere et produkt som fullt ut møter kravene til dens målgruppe, bør IT-folk sette tilbakemelding i fokus. Denne kundesentriske tilnærmingen gir handlebare innsikter i hva justeringer kan forbedre brukeropplevelsen, noe som hjelper applikasjoner til å utvide sin rekkevidde dramatisk.
Ettersom maskinlæring kan læres til å overvåke ulike aspekter av hvordan brukere interagerer med et stykke programvare i sanntid, opprettholder de en konsekvent tilbakemeldingsloop og sparer utviklere besværet med å samle inn og organisere disse små brikker. Den konstante strømmen av brukeratferdsdata hjelper med å skape en dynamisk opplevelse basert på ulike bruks-scenarier. For eksempel kan slik programvare fleksibelt justere sin UI-manifestasjon på vei, inkludert størrelsen og posisjonen til dens elementer.
Kravstyring er en tilstøtende prosess rettet mot å samle inn, validere og holde en rekord av hva sluttbrukere forventer fra en applikasjon. Med mindre det gjøres riktig, kan denne aktiviteten skyve tilbake frister, øke kostnader eller til og med forstyrre prosjekter fullstendig. AI-drevne løsninger kan ta det opp en nivå. Trenet på beste-praksis-retningslinjer i dette området av prosjektstyring, kan de utnytte naturlig språkbehandling til å analysere krav, identifisere inkonsistenser og foreslå forbedringer.
Disse instrumentene kan lett peke ut unnvikelses-klausuler, ufullstendige eller sammensatte krav og ulike tvetydigheter, og dermed minimere gjennomgangstiden. IBM Watson og Visure Requirements ALM er eksempler på de best kjente verktøyene i denne nisjen.
Planlegging og kostnadsestimering blir mindre skremmende
Hvis du er kjent med nyansene av disse preliminære fasene av et programvareprosjekt, så vet du hva en byrde de legger på utviklingsteamene. Det er som en ligning med en rekke variable som IT-folk ofte ikke klarer å løse riktig. Heldigvis viste kunstig intelligens seg å være usedvanlig dyktig til å estimere tidsrammen og den nødvendige budsjettet.
Presis prediksjon er en sak om å forstå hele konteksten av et prosjekt, inkludert kunderes krav, hindringene som tenderer til å oppstå når man utvikler en bestemt type programvare og tiden det tar å takle dem. Maskiner kan trenes til å forstå denne metadataen basert på tidligere prosjekter og informasjon fra verifiserte tredjeparts-kilder.
Detaljene om alle disse indre arbeidene kan være avgjørende for å bestemme om å godta et prosjekt eller ikke. Noen ganger er det mer klokt å si “Nei” enn å påta seg en jobb som er dømt til å vare uunnselig lenge. Å ikke være i stand til å møte frister er en katalysator for kunde-frustrasjon, så det er i dine beste interesser å gi nøyaktige estimater. Med prediktiv analyse i sin verktøykasse, kan AI være den sølverkula i denne hensikt og vil fortsette å være en hjørnesten for å ta informerte forretningsbeslutninger.
AI hjelper med å øke kode-sikkerheten
Fra tidlige utviklingsfaser til produktlansering og deploy i en kundes infrastruktur, bør sikkerhet være øverst på listen for utviklere. En god del data-brudd og ransomware-angrep skjer på grunn av kode-feil som genererer utnyttbare hull i programvare. Den eneste måten å unngå disse katastrofene på er å finne og fikse slike feil proaktivt. Denne veldig viktige strategien kalles SecDevOps.
AI er en programvareutviklers beste allierte i denne hensikt. Maskinlæring-algoritmer kan bruke informasjon fra offentlig tilgjengelige kilder som MITREs CVE-database til å sjekke hver linje med kode for kjente sårbarheter som gjør en applikasjon til et lett offer. Beskyttelsen strekker seg til alle stadier av programvare-livssyklusen. Etter deploy, kan disse intelligente verktøyene detektere insider-trusler og zero-day-angrep basert på mistenkelig nettverksaktivitet.
Bruken av AI passer konteksten av den stadig mer populære prinsippet kalt “shift left”, som har som mål å finne og reparere feil så tidlig som mulig i utviklingsprosessen. Denne praksisen reduserer kostnader og hjelper programvare-leverandører til å unngå fellen som stammer fra ovennevnte teknisk gjeld.
Som en side-merknad, er cyberkriminelle allerede i ferd med å våpenere denne teknologien. Nylige rapporter om at de abuserer ChatGPT for å lage malware, eksemplifiserer den uroende trenden. Med det sagt, kan videre implementering av AI for å bake sikkerhet inn i CI/CD-pipeline gjøre at pendelen svinger i hvite hatteres favør.
Fremover
Kunstig intelligens er allerede integrert i programvareutviklingens fundament, og disse båndene vil fortsette å bli tettere. Mens noen analytikere hevder at denne teknologien bare er på vei til å gjøre kodere overflødig, synes slike prediksjoner å være langt fra virkeligheten. I årene som kommer, vil denne industrigrens utvikling sannsynligvis følge ruten av dypere automatisering av repetitive oppgaver og prosesser hvor marginen for menneskelig feil er høy. Folk vil fortsette å skrive programvare, og AI vil være en hjelpende hånd.












