Intervjuer
Peter McKee, leder for utviklerrelasjoner i Sonar – Intervju-serie

Peter McKee er leder for utviklerrelasjoner i Sonar, en plattform som løser den trilliondollarsutfordringen 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 når jeg først fulgte en annen karrierevei, ble jeg kontinuerlig trukket tilbake til datamaskiner og programmering. På et tidspunkt drev min far et stålkompani i Virginia og de hadde mistet sin konsulentselskap. 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 starten, men jeg lærte fra bøker og gjorde arbeidet på jobben, og ble fullstendig selvlæ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 programvarebedrift. Ved grunnlaget av god programvare ligger kvalitetskode, fordi kode er kjernen i 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 på 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 risiko — og er den viktigste drivkraften for dagens forretnings-suksess.
Ren kode har fordeler for team og organisasjoner av alle størrelser og modenhetsnivå, og øker verdien av programvare som resultat. Noen 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-sykler, resulterer i større produktivitet
- Reduserer omdømmes- og forretningsrisiko — Ren kode sikrer færre sikkerhetsrisiko ved å aktivt håndtere problemer før de når produksjon
- Reduserer kode-nivåets tekniske gjeld — Ren kode håndterer gradvis gjelden i kodebasen uten behov for en massiv programvare-ombygging og forstyrrelse
- Øker programvareutviklingshastighet — Ren kode-standarder og strømlinjeformede prosesser forbedrer DevOps-hastighet, 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. Den 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 tatt i bruk, blir utviklerne 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 tilstander kan utilsiktet introdusere sikkerhets-sårbarheter som angripere kan utnytte. Derfor bør utviklere alltid strebe etter å forbedre kvaliteten og stabiliteten til sin kode og teste for uventede tilstander. Ved å følge en ren-kode-tilnærming, kan teamene 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 få programvaren igang igjen raskere.
Kan du diskutere fordelene med å bruke generativ AI for kode-generering?
Å inkorporere AI i programvareutviklings-livssyklusen har sine fordeler, som å enable utviklere til å arbeide mer effektivt. Faktisk fant GitHub-forskning at utviklere kan fullføre oppgaver over 50% raskere med AI. GenAI kan også generere kode raskere, og på den måten ta bort byrden av mer kjedelige, rutinemessige oppgaver — som dokumentasjon eller kode-snutter — fra deres plate, så de kan konsentrere seg om mer verdifulle, belønnende arbeid for å løse mer komplekse problemer. Uansett hvordan koden 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å mer verdifulle prosjekter og øke produktiviteten, 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 for feil. Her er noen spesifikke fallgruver:
- Ansvar: AI-generert kode reduserer evnen til å holde mennesker ansvarlige for skapt kode, som kan gjøre det vanskeligere å løse/problemer.
- Sårbarheter: Fordi det tar i bruk stort sett crowdsourcet informasjon, er det ingen garanti for at den produserte koden er trygg eller ren. Det kan være feil eller sikkerhetsproblemer som kan sette bedriftene i risiko.
- Kvalitet: AI sjekker ikke kvaliteten, og bare fordi det er generert fra AI, betyr det ikke at det er effektivt eller av høy kvalitet.
- Ingen kontekst: Å tape det menneskelige elementet betyr at du mister konteksten av et problem eller prosjekt. AI-generert kode må bli gjennomgått for å sikre at den gjør jobben fullstendig.
Når utviklere følger en ren-kode-tilnærming med sin kode — enten det er menneske-generert 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 variabler som bør vurderes 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, som 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 tidligere etablerte mønster.
- Intentionell: Intentionell kode bør leses som om den ble skrevet med oppmerksomhet og omsorg for å konveyere dens formål; den bør bare ha en tilgjengelig tolkning.
- Tilpassbar: Tilpassbar kode er segmentert og organisert på en måte som gjør det enklere å 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å dens etiske forpliktelser i forhold til data og dens potensielle innvirkning på samfunnsnormer. Koden bør ikke presentere en pågående risiko for utilsiktet skade på tredjeparter.
Kan du diskutere noen av de forskjellige tilbudene fra Sonar, og hvordan det hjelper kodere til å bygge ansvarlig, sikker, høykvalitetskode raskt og systematisk?
Gjennom våre bransjeledende analytikere, identifiserer Sonar kode-problemer på en omfattende måte og anbefaler fikseringer med korte tilbakemeldings-sykler mens den utdanner utvikleren i kontekst, og dermed enable organisasjoner til å bygge ansvarlig, sikker, høykvalitetskode raskt og systematisk. De grunnleggende elementene i Sonar-løsningen er SonarLint, SonarQube (selvstyrt; å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åkspesifikke regler.
SonarLint, en IDE-utvidelse, gir den første linjen med sjekker for å finne problemer i sanntid fra øyeblikket koden blir skrevet. Den 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, de statiske analyse-verktøyene for kode-gjennomgang, inspekerer og analyserer kontinuerlig kodebasen, med SonarLint-integrasjon. Ved å bruke kvalitetsporter for å bestemme om koden møter de definerte standardene for kvalitet, sikkerhet og pålitelighet for produksjon, inspekerer SonarQube og SonarCloud koden for feil, sårbarheter, sikkerhetshotspots og kode-lukt.
Parallelt med vår løsningssett med vår “ren-kode-tilnærming” — 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 fikse eksisterende kode på en naturlig måte, så de kan fokusere på nye, innovative prosjekter som driver forretningsverdi
Hvordan hjelper Sonar med å sikre at koden er kompatibel og møter bransjestandarder?
Sonar hjelper utviklere til å få umiddelbar og kontekstuell tilbakemelding, som høydepunkter problemer der de er i kodebasen, innenfor utviklings-workflowen basert på års erfaring med språkanalyse. Utviklere får tilgang til klare forklaringer for hvorfor et problem oppstår og hvordan de raskt kan fikse det, samt ekstra ressurser for mer dyptgående læring. Vi har utdanning bygget gjennom hele workflowen, 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 kode-veiledning, som forklarer hvorfor et problem er merket og hvordan det kan fikses, for å sikre at koden som blir skrevet er MISRA-kompatibel.
Hva er din visjon for hvordan AI vil transformere kode i fremtiden?
Jeg tror AI vil fortsette å levere stor verdi i å håndtere 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å hver dag vil uten tvil endre seg. Måten utviklere bruker AI vil være like enkelt og vanlig som å søke på Google som en kortvei. Det er mye å utforske om bruken av AI, men vi må likevel vurdere det menneskelige aspektet i forkant for å sjekke AI-utfordringene. Det er transformasjonspotensiale for programvareutvikling, men vi må ikke la det løpe uten noen kontroller — 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.












