Intervjuer

Peter McKee, Chef för Utvecklarsamarbeten på Sonar – Intervjuserie

mm
Lägg till Unite.AI bland dina föredragna källor på Google

Peter McKee är Chef för Utvecklarsamarbeten på Sonar, en plattform som löser den trilliondollarstora utmaningen med dålig kod. Sonar utrustar utvecklare och organisationer för att systematiskt uppnå en tillstånd av Ren Kod så att all kod är lämplig för utveckling och produktion. Genom att tillämpa Sonars metodik för Ren Kod som du kodar, minimerar organisationer risker, reducerar teknisk skuld och får mer värde från sin programvara på ett förutsägbart och hållbart sätt.

Vad var det som initialt drog dig till datavetenskap?

Jag var alltid intresserad av datorer från en ung ålder. Även när jag först följde en annan karriärsväg, drogs jag ständigt tillbaka till datorer och programmering. Vid ett tillfälle drev min pappa ett stål företag i Virginia och de hade förlorat sin konsultgrupp. Eftersom jag hade lärt mig att programmera när jag var yngre, bjöd han in mig att arbeta och bygga system för honom. Jag visste inte, ärligt talat, vad jag gjorde 100% från början, men jag lärde mig från böcker och genom att göra arbetet på jobbet, och blev helt självlärd. Det fortsatte att driva mitt intresse för kodning och datorer och cementerade verkligen mitt intresse för datavetenskap.

Kan du förklara vad Ren Kod är och varför den är så viktig?

Det har sagts i år att programvara kommer att äta upp världen, och jag skulle säga att vi nu är på den punkt där det är officiellt – världen byggs på programvara och varje företag är i princip ett programvaruföretag. I grunden för bra programvara ligger kvalitetskod, eftersom kod är kärnan i all programvara och bestämmer dess beteende och prestanda. Detta är varför Ren Kod — kod som är konsekvent, avsiktlig, anpassningsbar och ansvarsfull — är så viktig. Kod som är ren är lätt att förstå och ändra, fungerar smidigt vid körning och innehåller ingen teknisk skuld, vilket gör den lämplig för ändamålet. Ren Kod är den standard som organisationer bör anta för att säkerställa att deras programvara fortsätter att vara en tillgång – inte en belastning – och är den viktigaste drivkraften för dagens affärssucces.

Ren Kod ger fördelar för team och organisationer av alla storlekar och mognadsnivåer, och ökar värdet på programvaran som resultat. Några specifika fördelar är att den:

  • Ökar utvecklingsfärdigheter — Utvecklare kan upptäcka, förstå och lösa problem medan de kodar, samtidigt som de lär sig bästa praxis
  • Ökar effektivitet och produktivitet — Minskar kontinuerligt omkodning och långa feedbackcykler, vilket resulterar i större produktivitet
  • Minskar ryktes- och affärsrisker — Ren Kod säkerställer färre säkerhetsrisker genom att möjliggöra för team att proaktivt hantera problem innan de når produktion
  • Minskar teknisk skuld på kodenivå — Ren Kod hanterar gradvis skulden i kodbasen utan behov av en stor programvaruöversyn och störning
  • Ökar programvaruutvecklingstakten — Ren Kod-standarder och strömlinjeformade flöden förbättrar DevOps-hastighet, vilket främjar snabbare tid till marknad

Kan du diskutera vikten av konsekvens och struktur i kod, och vad är några exempel på konsekvent och Ren Kod?

Konsekvent kodkvalitet är något som varje chef eller teknisk direktör syftar till att upprätthålla. Konsekvens är avgörande när det gäller kodkvalitet, eftersom konsekvens leder till förutsägbarhet. Den skrivs på ett enhetligt och konventionellt sätt – all kod ser likadan ut och följer en regelbunden mönster, även med flera bidragsgivare vid olika tillfällen. Konsekvent kod är formaterad, konventionell och identifierbar. När konsekventa kodningsstandarder antas, blir utvecklare mer effektiva och kan uppfylla sina leveransförväntningar med hastighet och precision.

Kan du diskutera vikten av kod som kan hantera oväntade tillstånd, och varför detta inte bör försummas?

Utvecklare försöker alltid förutse och förbereda sig för oväntade händelser under design- och utvecklingsprocessen, men detta kan inte förhindras i alla fall. Oväntade tillstånd kan uppstå på grund av oavsiktlig missbruk eller avsiktligt utlösta attacker. Dessa oväntade tillstånd kan oavsiktligt introducera säkerhetsluckor som angripare kan utnyttja. Detta är varför utvecklare bör sträva efter att alltid förbättra kvaliteten och stabiliteten i sin kod och testa för oväntade tillstånd. Genom att följa en Ren Kod som du kodar-metod, kan team accelerera nya funktioner, undvika onödiga omkodningskostnader och främja talangtillväxt och behållning. Ren Kod främjar säkerhet, underhåll och tillförlitlighet, och kan möjliggöra för utvecklare att förutse och hantera oväntade tillstånd mer effektivt och få programvaran att fungera igen snabbare.

Kan du diskutera fördelarna med att använda Generativ AI för kodgeenerering?

Att integrera AI i programvaruutvecklingslivscykeln har sina fördelar, såsom att möjliggöra för utvecklare att arbeta mer effektivt. Faktum är att GitHub-forskning fann att utvecklare kan slutföra uppgifter mer än 50% snabbare med hjälp av AI. GenAI kan också generera kod snabbare, och i sin tur ta bort bördan av mer tråkiga, rutinmässiga uppgifter – som dokumentation eller kodgenerering – från deras platt, så att de kan koncentrera sig på mer värdefullt och utmanande arbete för att lösa mer komplexa problem. Oavsett hur kod skapas, är det avgörande att den kontrolleras mot Ren Kod-standarder för att säkerställa att koden är säker, tillförlitlig och underhållbar.

Vilka är några av de potentiella fallgroparna och riskerna med genererad kod?

 Medan AI kan frigöra utvecklares tid för att arbeta på mer värdefulla projekt och öka produktiviteten, kommer det inte utan risker. Detta är varför efterfrågan på utvecklare inte kommer att försvinna i AI-eran. Eftersom GenAI-verktyg kan generera mycket kod snabbt, finns det en potential för fel. Här är några specifika fallgropar:

  • Ansvarighet: AI-genererad kod minskar förmågan att hålla människor ansvariga för skapad kod, vilket kan göra det svårt att lösa eller hantera problem.
  • Sårbarheter: Det är möjligt att den genererade koden inte är säker eller ren, eftersom den är baserad på stort sett crowdsourcad information. Det kan finnas buggar eller säkerhetsproblem som kan sätta företaget i fara.
  • Kvalitet: AI kontrollerar inte kvaliteten, och bara för att den är genererad av AI betyder det inte att den är effektiv eller av hög kvalitet.
  • Inget sammanhang: Att förlora den mänskliga faktorn innebär naturligt att man förlorar sammanhanget i ett problem eller projekt. Den AI-genererade koden måste granskas för att säkerställa att den gör jobbet fullt ut.

När utvecklare följer en Ren Kod som du kodar-metodik med sin kod – oavsett om den är mänsklig eller AI-genererad – kan de säkerställa att den är lämplig för utveckling och produktion och uppfyller de krav som ställs av deras organisation.

Vilka är några andra variabler som bör beaktas i kod som är lämplig för produktion?

 Utvecklare som skriver kod som följer Ren Kod-principer kan vara säkra på att deras kod är lämplig för utveckling och produktion, vilket innebär att koden följer vissa egenskaper:

  • Konsekvent: Koden ska vara konsekvent och följa en gemensam stil. Även om koden arbetas med av flera olika utvecklare över tid, ska den ha ett liknande utseende och följa tidigare etablerade mönster.
  • Avsiktlig: Avsiktlig kod ska läsas som om den skrevs med uppmärksamhet och omsorg för att förmedla dess syfte; den ska endast ha en tillgänglig tolkning.
  • Anpassningsbar: Anpassningsbar kod är segmenterad och organiserad på ett sätt som gör det lättare att hantera och se relationerna mellan varje kodrad. Detta gör koden strukturerad för enkel och säker utveckling.
  • Ansvarsfull: Koden, och dess utvecklare, ska vara medvetna om sina etiska skyldigheter i fråga om data och dess potentiella påverkan på samhälleliga normer. Koden ska slutligen inte presentera en kontinuerlig risk för att oavsiktligt skada tredje parter.

Kan du diskutera några av de olika erbjudandena från Sonar, och hur det hjälper kodare att bygga ansvarsfull, säker, högkvalitativ kod snabbt och systematiskt?

 Genom våra branschledande analyser identifierar Sonar kodningsproblem på ett omfattande sätt och rekommenderar lösningar med korta feedbackcykler samtidigt som den utbildar utvecklaren i sammanhanget, vilket slutligen möjliggör för organisationer att bygga ansvarsfull, säker, högkvalitativ kod snabbt och systematiskt. De grundläggande elementen i Sonar-lösningen är SonarLint, SonarQube (självhanterad; öppen källkod), och SonarCloud (SaaS), med omfattande täckning som stöder över 30 programmeringsspråk, ramverk och infrastrukturer, 11 IDE, och mer än 5 000 kod- och språkspecifika regler.

SonarLint, en IDE-tillägg, tillhandahåller den första linjen med kontroller för att hitta problem i realtid från och med att koden skrivs. Den fångar en stor del av problemen på förhand och hjälper utvecklare att upptäcka och åtgärda fel som en stavningskontroll för kod. SonarQube och SonarCloud, Sonars statiska analysverktyg för kodgranskning, inspekterar och analyserar kontinuerligt kodbasen, med SonarLint-integrering. Med hjälp av kvalitetsgränser för att avgöra om koden uppfyller de fastställda standarderna för kvalitet, säkerhet och tillförlitlighet för produktion, inspekterar SonarQube och SonarCloud koden för buggar, sårbarheter, säkerhetshotspots och kodlukt.

Genom att kombinera vår lösningssats med vår Ren Kod som du kodar-metodik – en metod som följer fastställda standarder för att hålla ny, tillagd eller redigerad kod ren – kan utvecklare och organisationer leverera Ren Kod och åtgärda befintlig kod på ett organiskt sätt, så att de kan fokusera på nya, innovativa projekt som driver affärsverksamhet

Hur hjälper Sonar till att säkerställa att koden är förenlig med och uppfyller branschstandarder?

Sonar hjälper utvecklare att få omedelbar och kontextuell feedback, som lyfter fram problem där de finns i kodbasen, inom utvecklingsflödet baserat på års erfarenhet av språkanalyser. Utvecklare får tillgång till tydliga förklaringar till varför ett problem uppstår och hur man snabbt kan åtgärda det, samt ytterligare resurser för mer ingående lärande. Vi har utbildning byggd genom hela arbetsflödet, från IDE till CI/CD. Till exempel har Sonar specifika MISRA C++ 2023-regler tillgängliga i SonarLint för att hjälpa team att skapa kod som är bäst förberedd för eventuell certifiering. Det erbjuder kodvägledning, som förklarar varför ett problem har markerats och hur man kan åtgärda det, för att säkerställa att den kod som skrivs är MISRA-kompatibel.

Vad är din vision för hur AI kommer att förändra kodning i framtiden?

 Jag tror att AI kommer att fortsätta leverera stort värde i att hantera utvecklarbrist. Medan jag inte tror att AI någonsin kommer att kunna avlasta utvecklares tänkande och den mänskliga faktorn, tror jag att redan om några månader kommer vi att se en helt ny uppsättning GPT:er – för att inte tala om vad som kommer att se ut om några år. Jag tror inte att tekniker eller utvecklare kommer att försvinna, men sättet de arbetar på kommer att förändras. Sättet utvecklare använder AI kommer att vara lika enkelt och vanligt som att söka på Google (GOOGL ) som en genväg. Det finns mycket att utforska om användningen av AI, men vi måste fortfarande överväga den mänskliga faktorn i förgrunden för att kontrollera AI:s svagheter. Det finns en transformerande potential för programvaruutveckling, men vi får inte låta den springa utan kontroll – särskilt när digitala företag idag är beroende av den programvara som ligger till grund för det.

Tack för den utmärkta intervjun, läsare som vill lära sig mer bör besöka Sonar.

Antoine är en visionär ledare och medgrundare av Unite.AI, driven av en outtröttlig passion för att forma och främja framtidens AI och robotik. En serieentreprenör, han tror att AI kommer att vara lika störande för samhället som elektricitet, och han fångas ofta i att prata om potentialen för störande teknologier och AGI.

Som en futurist är han dedikerad till att utforska hur dessa innovationer kommer att forma vår värld. Dessutom är han grundare av Securities.io, en plattform som fokuserar på att investera i banbrytande teknologier som omdefinierar framtiden och omformar hela sektorer.