Connect with us

Intervjuer

Peter McKee, sjef for utviklerrelasjoner i Sonar – Intervju-serie

mm

Peter McKee er sjef for utviklerrelasjoner i Sonar, en plattform som løser den trillion-dollars utfordringen med dårlig kode. Sonar utstyrer utviklere og organisasjoner til å systematisk oppnå en tilstand av ren kode, slik at all kode er egnet for utvikling og produksjon. Ved å bruke Sonars “Clean as You Code”-metodikk, minimiserer organisasjoner risiko, reduserer teknisk gjeld og trekker ut mer verdi fra sin programvare på en forutsigbar og bærekraftig måte.

Hva var det som først tiltalte deg til datavitenskap?

Jeg var alltid interessert i datamaskiner fra en ung alder. Selv da jeg først fulgte en annen karrierevei, ble jeg kontinuerlig dradd tilbake til datamaskiner og programmering. På et tidspunkt var min far ansvarlig for et stål-selskap i Virginia og de hadde mistet sin konsulentgruppe. Siden jeg hadde lært å programmere da jeg var yngre, inviterte han meg til å arbeide og bygge systemer for ham. Jeg visste ikke, ærlig talt, hva jeg gjorde 100% fra første stund, men jeg lærte fra bøker og gjennom å gjøre arbeidet på jobben, og ble fullstendig selv-lært. Dette fortsatte å drive min interesse for programmering og datamaskiner og forankret virkelig min interesse for datavitenskap.

Kunne du forklare hvordan du ville definere hva som er ren kode og hvorfor det er så viktig?

Det har blitt sagt i årevis nå at programvare vil spise verden, og jeg ville si at vi nå er på et punkt der det er offisielt – verden er bygget på programvare og hver bedrift er effektivt en programvare-bedrift. Ved grunnlaget av god programvare ligger kvalitetskode, ettersom kode er i kjernen av all programvare og bestemmer dens atferd og ytelse. Dette er hvorfor ren kode — kode som er konsistent, intentionell, tilpassbar og ansvarlig — er så viktig. Kode som er ren er lett å forstå og endre, fungerer jevnt ved kjøretid og inneholder ingen teknisk gjeld, og derfor er det egnet for formålet. Ren kode er standarden som organisasjoner bør omfavne for å sikre at deres programvare fortsetter å være en verdi — ikke en belastning — og er den viktigste drivkraften for i dagens forretnings-suksess.

Ren kode gir fordeler for team og organisasjoner av alle størrelser og modenhetsnivå, og øker verdien av programvare som resultat. Noen få spesifikke fordeler er at det:

  • Øker utviklingsferdighetene — Utviklere kan oppdage, forstå og løse problemer mens de kodeer, samt lære beste praksis
  • Øker effektivitet og produktivitet — Reduserer kontinuerlig om-arbeid og lange tilbakemeldings-sykluser, med større produktivitet som resultat
  • Reduserer ryktes- og forretningsrisiko — Ren kode sikrer færre sikkerhetsrisiko ved å aktivt løse problemer før de når produksjon
  • Senker kode-nivå teknisk gjeld — Ren kode løser gradvis gjelden i kodebasen uten behov for en massiv programvare-ombygging og forstyrrelse
  • Øker programvare-utviklingshastighet — Ren kode-standarder og strømlinje-formede prosesser forbedrer DevOps-hastighet, og fremmer raskere tid-til-marked

Kan du diskutere viktigheten av konsistens og struktur i kode, og hva er noen eksempler på konsistent og ren kode?

Konsistent kodekvalitet er noe hver leder eller teknisk direktør søker å opprettholde. Konsistens er avgjørende når det gjelder kodekvalitet fordi konsistens fører til forutsigbarhet. Det er skrevet på en enhetlig og konvensjonell måte — all kode ser lik ut og følger en fast mønster, selv med flere bidragsytere på ulike tidspunkter. Konsistent kode er formatert, konvensjonell og identifiserbar. Når konsistente kode-standarder blir adoptert, blir utviklere mer effektive og kan møte sine leveringsforventninger med hastighet og presisjon.

Kan du diskutere viktigheten av kode som kan håndtere uventede tilstander, og hvorfor dette ikke bør oversees?

Utviklere prøver alltid å forutse og forberede seg på uventede hendelser under design- og utviklingsprosessen, men dette kan ikke alltid forebygges. Uventede tilstander kan oppstå på grunn av utilsiktet misbruk eller bevisst utløste angrep. Disse uventede tilstandene kan utilsiktet introdusere sikkerhets-sårbarheter som angripere kan utnytte. Dette er hvorfor utviklere bør alltid søke å forbedre kvaliteten og stabiliteten til sin kode og teste for uventede tilstander. Ved å følge en ren som du kode-tilnærming, kan team akselerere nye funksjoner, unngå unødvendig om-arbeid og fremme talent-vækst og opprettholdelse. Ren kode fremmer sikkerhet, vedlikehold og pålitelighet, og kan enable utviklere til å forutse og håndtere uventede tilstander mer effektivt og raskere.

Kan du diskutere fordelene med å bruke Generativ AI for kode-generering?

Inkludering av AI i programvare-utviklings-livssyklusen har sine fordeler, som å enable utviklere til å arbeide mer effektivt. Faktisk fant GitHub-forskning at utviklere kan fullføre oppgaver mer enn 50% raskere ved å bruke AI. GenAI kan også generere kode raskere, og på den måten ta bort byrden av mer kjedelige, rutine-oppdrag — som dokumentasjon eller generering av kode-utdrag — fra deres plate, så de kan konsentrere seg om høyere-verdi, mer givende arbeid for å løse mer komplekse problemer. Uansett hvordan kode blir skapt, er det kritisk at den blir sjekket mot rene kode-standarder for å sikre at koden er sikker, pålitelig og vedlikeholdbar.

Hva er noen av de potensielle fallgruvene og risikoene med generert kode?

  Mens AI kan frigjøre utvikleres tid til å arbeide på høyere-verdi-prosjekter og øke produktivitet, kommer det ikke uten risiko. Dette er hvorfor etterspørselen etter utviklere ikke vil forsvinne i AI-alderen. Fordi GenAI-verktøy kan generere mye kode raskt, er det en potensiell risiko for feil. Her er noen få spesifikke fallgruer:

  • Ansvar: AI-generert kode reduserer evnen til å holde personer ansvarlige for kode skapt, hvilket kan gjøre det vanskeligere å løse/problemer.
  • Sårbarheter: Fordi det tar i bruk større andel crowdsourced informasjon, er det ingen garanti for at den produserte koden er sikker eller ren. Det kan være feil eller sikkerhets-problemer som kan sette forretninger i risiko.
  • Kvalitet: AI sjekker ikke kvalitet, og bare fordi det er generert fra AI, betyr det ikke at det er effektivt eller av høy kvalitet.
  • Ingen kontekst: Å miste det menneskelige elementet betyr at du mister konteksten av et problem eller prosjekt. AI-generert kode må bli gjennomgått for å sikre at det gjør jobben fullstendig.

Når utviklere tar en “ren som du kode”-tilnærming med sin kode — enten det er menneske- eller AI-generert — kan de sikre at den er egnet for utvikling og produksjon og møter de nødvendige standardene for deres organisasjon.

Hva er noen andre variable som bør være med i kode som er egnet for produksjon?

  Utviklere som skriver kode som følger rene kode-prinsipper kan være trygge på at deres kode er egnet for utvikling og produksjon, hvilket betyr at koden følger visse karakteristika:

  • Konsistent: Koden bør være konsistent og følge en felles stil. Selv om koden blir arbeidet på av flere forskjellige utviklere over tid, bør den ha en lik utseende og følge etablerte mønster.
  • Intentionell: Intentionell kode bør lese som om den ble skrevet med oppmerksomhet og omsorg for å formidle sin hensikt; den bør bare ha en tilgjengelig tolkning.
  • Tilpassbar: Tilpassbar kode er segmentert og organisert på en måte som gjør det lettere å håndtere og se relasjonene mellom hver linje med kode. Dette gjør koden strukturert for enkel og trygg evolusjon.
  • Ansvarlig: Koden, og dens utviklere, bør være bevisste på sine etiske forpliktelser når det gjelder data og dens potensielle innvirkning på samfunns-normer. Koden bør ikke presentere en kontinuerlig risiko for utilsiktet skade på tredje parter.

Kan du diskutere noen av de forskjellige tilbudene fra Sonar, og hvordan det hjelper kodere til å bygge ansvarlig, sikker, høy-kvalitets kode raskt og systematisk?

  Gjennom våre bransje-ledende analytikere, identifiserer Sonar kode-problemer på en omfattende måte og anbefaler fikser med korte tilbakemeldings-sykluser mens det utdanner utvikleren i kontekst, og til slutt enable organisasjoner til å bygge ansvarlig, sikker, høy-kvalitets kode raskt og systematisk. De grunnleggende elementene i Sonar-løsningen er SonarLint, SonarQube (selv-managed; åpen kilde), og SonarCloud (SaaS), med omfattende dekning som støtter over 30 programmeringsspråk, rammer og infrastrukturer, 11 IDE-er og mer enn 5 000 kode- og språk-spesifikke regler.

SonarLint, en IDE-utvidelse, gir den første linjen med sjekker for å finne problemer i sanntid fra øyeblikket kode blir skrevet. Det fanger en stor del av problemene på forhånd og hjelper utviklere til å oppdage og fikse feil som en stavekontroll for kode. SonarQube og SonarCloud, Sonar statisk analyse kode-gjennomgangs-verktøy, inspekterer og analyserer kontinuerlig kodebasen, med SonarLint-integrasjon. Ved å bruke kvalitetsporter til å bestemme om koden møter de definerte standardene for kvalitet, sikkerhet og pålitelighet for produksjon, inspekterer SonarQube og SonarCloud kode for feil, sårbarheter, sikkerhetshotspots og kode-lukt.

Parallelt med vår løsnings-sett med vår “ren som du kode”-metodikk — en tilnærming som følger faste standarder for å holde ny, lagt til eller redigert kode ren — enable utviklere og organisasjoner til å levere ren kode og løse eksisterende kode organisk, så de kan fokusere på nye, innovative prosjekter som driver forretnings-verdi

Hvordan hjelper Sonar med å sikre at koden er kompatibel og møter bransje-standarder?

Sonar hjelper utviklere til å få umiddelbar og kontekstualisert tilbakemelding, som høydepunkter problemer hvor de er i kodebasen, innenfor utviklings-workflow basert på års erfaring med språk-analyse. Utviklere får tilgang til klare forklaringer for hvorfor et problem oppstår og hvordan de raskt kan løse det, samt ekstra ressurser for mer dyptgående læring. Vi har utdanning bygget gjennom hele arbeidsflyten, fra IDE til CI/CD. For eksempel har Sonar spesifikke MISRA C++ 2023-regler tilgjengelig i SonarLint for å hjelpe team til å skape kode som er best forberedt for eventuell sertifisering. Det tilbyr kodeveiledning, som forklarer hvorfor et problem er merket og hvordan det kan fikses, for å sikre at koden som skrives er MISRA-kompatibel.

Hva er din visjon for hvordan AI vil transformere kode i fremtiden?

  Jeg tror AI vil fortsette å levere stor verdi i å løse utvikler-utbrenthet. Mens jeg ikke tror AI noen gang vil kunne avlaste utvikleres tenkning og det menneskelige aspektet, tror jeg at selv noen måneder fra nå vil vi se en helt ny sett med GPT-er — ikke å nevne hva noen år fra nå vil se ut. Jeg tror ikke teknologer eller utviklere vil forsvinne, men måten de arbeider på vil sannsynligvis endre seg. Måten utviklere bruker AI vil være like enkel og vanlig som å søke på Google etter noe som en kortvei. Det er mye å utforske om bruken av AI, men vi må fortsatt vurdere det menneskelige aspektet i forkant for å sjekke AI-uregelmessighetene. Det er transformasjonspotensiale for programvare-utvikling, men vi må ikke la det løpe uten noen sjekker — spesielt når digitale bedrifter i dag er avhengige av programvaren som understøtter det.

Takk for det flotte intervjuet, lesere som ønsker å lære mer bør besøke Sonar.

Antoine er en visjonær leder og grunnleggende partner i Unite.AI, drevet av en urokkelig lidenskap for å forme og fremme fremtiden for AI og robotikk. En seriegründer, han tror at AI vil være like disruptiv for samfunnet som elektrisitet, og blir ofte tatt i å tale om potensialet for disruptiv teknologi og AGI.
Som en futurist, er han dedikert til å utforske hvordan disse innovasjonene vil forme vår verden. I tillegg er han grunnleggeren av Securities.io, en plattform som fokuserer på å investere i banebrytende teknologier som omdefinerer fremtiden og omformer hele sektorer.