Interviews

Peter McKee, Hoofd van Ontwikkelaarsrelaties bij Sonar – Interviewreeks

mm
Voeg Unite.AI toe aan je voorkeursbronnen op Google

Peter McKee is het Hoofd van Ontwikkelaarsrelaties bij Sonar, een platform dat de triljoendollaruitdaging van slechte code oplost. Sonar richt ontwikkelaars en organisaties in om systematisch een staat van schone code te bereiken, zodat alle code geschikt is voor ontwikkeling en productie. Door Sonars methode van “Schoon tijdens het coderen” toe te passen, minimaliseren organisaties risico’s, verminderen ze technische schulden en halen ze meer waarde uit hun software op een voorspelbare en duurzame manier.

Wat trok je aanvankelijk aan tot informatica?

Ik was altijd geïnteresseerd in computers van jongs af aan. Zelfs toen ik aanvankelijk een andere carrièrepad volgde, werd ik voortdurend teruggetrokken naar computers en programmeren. Op een gegeven moment had mijn vader een staalbedrijf in Virginia en hadden ze hun consultantengroep verloren. Aangezien ik had leren programmeren toen ik jonger was, nodigde hij me uit om te komen werken en systemen voor hem te bouwen. Ik wist eerlijk gezegd niet 100% wat ik deed, maar ik leerde uit boeken en door het werk op de job te doen, en werd volledig zelflerend. Dat zette mijn interesse in coderen en computers verder en bevestigde mijn interesse in informatica.

Kunt u uitleggen wat schone code is en waarom het zo belangrijk is?

Er is al jaren gezegd dat software de wereld zal veroveren, en ik denk dat we nu op dat punt zijn – de wereld is gebouwd op software en elk bedrijf is effectief een softwarebedrijf. Aan de basis van goede software ligt kwaliteitscode, aangezien code de kern is van alle software en het gedrag en de prestaties ervan bepaalt. Dit is waarom schone code – code die consistent, intentioneel, aanpasbaar en verantwoordelijk is – zo belangrijk is. Code die schoon is, is gemakkelijk te begrijpen en te wijzigen, werkt soepel tijdens de runtime en bevat geen technische schulden, waardoor het geschikt is voor het doel. Schone code is de standaard die organisaties moeten omarmen om ervoor te zorgen dat hun software blijft werken als een actief, en niet als een passief – en de sleuteldrijver is voor het succes van vandaag.

Schone code biedt voordelen voor teams en organisaties van alle maten en volwassenheidsniveaus, en verhoogt de waarde van software als gevolg. Een aantal specifieke voordelen zijn dat het:

  • Ontwikkelvaardigheden verhoogt — Ontwikkelaars kunnen problemen detecteren, begrijpen en oplossen tijdens het coderen, terwijl ze ook de beste praktijken leren
  • Efficiëntie en productiviteit verhoogt — Door het verminderen van voortdurende herwerking en lange feedbackcycli, waardoor de productiviteit groter wordt
  • Reputatie- en bedrijfsrisico’s vermindert — Schone code zorgt voor minder beveiligingsrisico’s door teams in staat te stellen problemen proactief aan te pakken voordat ze in productie komen
  • Technische schulden op codeniveau vermindert — Schone code lost de schulden van de codebase geleidelijk op zonder de noodzaak voor een grote applicatie-overhaul en verstoring
  • Software-ontwikkelingsvelocity verhoogt — Schone code-standaarden en gestroomlijnde flows verbeteren de DevOps-velocity, waardoor een snellere time-to-market ontstaat

Kunt u de belangrijkheid van consistentie en structuur in code bespreken, en wat zijn enkele voorbeelden van consistente en schone code?

Consistente codekwaliteit is iets waar elke manager of technisch directeur naar streeft. Consistentie is cruciaal als het gaat om codekwaliteit, omdat consistentie leidt tot voorspelbaarheid. Het is geschreven in een uniforme en conventionele manier – alle code ziet er hetzelfde uit en volgt een regelmatig patroon, zelfs met meerdere bijdragers op verschillende tijdstippen. Consistente code is opgemaakt, conventioneel en herkenbaar. Wanneer consistente coderingsstandaarden worden aangenomen, worden ontwikkelaars efficiënter en kunnen ze hun leveringsverwachtingen met snelheid en precisie nakomen.

Kunt u de belangrijkheid van code die onverwachte voorwaarden aankan, bespreken, en waarom dit niet over het hoofd gezien mag worden?

Ontwikkelaars proberen altijd onverwachte gebeurtenissen te voorzien en te voorbereiden tijdens het ontwerp- en ontwikkelproces, maar dit kan niet in elk geval worden voorkomen. Onverwachte staten kunnen ontstaan door onopzettelijke misbruik of opzettelijk geactiveerde aanvallen. Deze onverwachte staten kunnen onbewust beveiligingskwetsbaarheden introduceren die aanvallers kunnen exploiteren. Daarom moeten ontwikkelaars ernaar streven de kwaliteit en stabiliteit van hun code te verbeteren en te testen op onverwachte voorwaarden. Door een schone code-aanpak te volgen, kunnen teams nieuwe functies versnellen, onnodige herwerkingkosten vermijden en talentgroei en -behoud stimuleren. Schone code bevordert beveiliging, onderhoudbaarheid en betrouwbaarheid, en kan ontwikkelaars in staat stellen onverwachte staten effectiever te voorzien en te verwerken en de software sneller weer operationeel te krijgen.

Kunt u de voordelen van het gebruik van generatieve AI voor codegeneratie bespreken?

Het integreren van AI in de software-ontwikkelingscyclus heeft zijn voordelen, zoals ontwikkelaars in staat stellen om efficiënter te werken. In feite vond GitHub-onderzoek uit dat ontwikkelaars taken meer dan 50% sneller kunnen voltooien met behulp van AI. GenAI kan ook code sneller genereren en de last van saaie, routineuze taken – zoals documentatie of codefragmenten genereren – van hun bord halen, zodat ze zich kunnen concentreren op hogere-waardewerk om complexe problemen op te lossen. Ongeacht hoe code wordt gemaakt, is het cruciaal dat deze wordt gecontroleerd op schone code-standaarden om ervoor te zorgen dat de code beveiligd, betrouwbaar en onderhoudbaar is.

Wat zijn enkele van de potentiële valkuilen en risico’s van gegenereerde code?

 Terwijl AI ontwikkelaars tijd kan besparen om aan hogere-waardewerk te werken en de productiviteit kan verhogen, gaat dit niet zonder risico’s. Dit is waarom de vraag naar ontwikkelaars niet zal verdwijnen in de leeftijd van AI. Omdat GenAI-hulpmiddelen veel code snel kunnen genereren, is er een potentieel voor fouten. Hier zijn enkele specifieke valkuilen:

  • Verantwoordelijkheid: AI-gegenereerde code vermindert de mogelijkheid om mensen verantwoordelijk te houden voor gegenereerde code, waardoor het oplossen van problemen moeilijker wordt.
  • Kwetsbaarheden: Omdat het grotendeels crowdsourced-informatie gebruikt, is er geen garantie dat de gegenereerde code veilig of schoon is. Er kunnen zelfs bugs of beveiligingsproblemen zijn die het bedrijf in gevaar kunnen brengen.
  • Kwaliteit: AI controleert de kwaliteit niet, en alleen omdat het met AI is gegenereerd, betekent dit niet dat het efficiënt of van hoge kwaliteit is.
  • Geen context: Het verlies van het menselijke element betekent automatisch dat je de context van een probleem of project verliest. De AI-gegenereerde code moet worden gecontroleerd om ervoor te zorgen dat deze de klus klart.

Wanneer ontwikkelaars een schone code-aanpak volgen met hun code – menselijk of AI-gegenereerd – kunnen ze ervoor zorgen dat deze geschikt is voor ontwikkeling en productie en voldoet aan de vereiste standaarden van hun organisatie.

Wat zijn enkele andere variabelen die in aanmerking moeten worden genomen bij code die geschikt is voor productie?

 Ontwikkelaars die code schrijven die voldoet aan de principes van schone code, kunnen er zeker van zijn dat hun code geschikt is voor ontwikkeling en productie, wat betekent dat de code bepaalde kenmerken volgt:

  • Consistent: De code moet consistent zijn en een gemeenschappelijke stijl volgen. Zelfs als de code door meerdere ontwikkelaars op verschillende tijdstippen wordt gewerkt, moet deze een vergelijkbaar uiterlijk hebben en voldoen aan eerder vastgestelde patronen.
  • Intentioneel: Intentionele code moet zo zijn geschreven dat deze aandacht en zorg voor zijn doel laat zien; deze moet slechts één beschikbare interpretatie hebben.
  • Aanpasbaar: Aanpasbare code is gesegmenteerd en georganiseerd op een manier die het gemakkelijker maakt om te beheren en de relaties tussen elke regel code te zien. Dit maakt de code gestructureerd voor gemakkelijke en vertrouwelijke evolutie.
  • Verantwoordelijk: De code, en zijn ontwikkelaars, moeten zich bewust zijn van zijn ethische verplichtingen met betrekking tot gegevens en zijn potentiële invloed op maatschappelijke normen. De code moet uiteindelijk geen onbedoeld risico vormen voor derden.

Kunt u enkele van de verschillende aanbiedingen van Sonar bespreken, en hoe het ontwikkelaars helpt om verantwoordelijke, beveiligde, hoge-kwaliteitcode snel en systematisch te bouwen?

 Met onze industrieleidende analyzers identificeert Sonar coderingsproblemen op een uitgebreide manier en stelt deze voor met korte feedbacklussen, terwijl het de ontwikkelaar in context onderwijst, waardoor organisaties in staat worden gesteld om verantwoordelijke, beveiligde, hoge-kwaliteitcode snel en systematisch te bouwen. De kernonderdelen van de Sonar-oplossing zijn SonarLint, SonarQube (zelfbeheerd; open source), en SonarCloud (SaaS), met uitgebreide dekking die meer dan 30 programmeertalen, -kaders en -infrastructuur, 11 IDE’s en meer dan 5.000 coderings- en taalspecifieke regels ondersteunt.

SonarLint, een IDE-extensie, biedt de eerste lijn van controles om problemen in real-time te vinden vanaf het moment dat code wordt geschreven. Het vangt een groot deel van de problemen op voorhand en helpt ontwikkelaars om fouten te ontdekken en te corrigeren, zoals een spellingscontrole voor code. SonarQube en SonarCloud, de Sonar-statische analysecodebeoordelingshulpmiddelen, inspecteren en analyseren de codebase voortdurend, met SonarLint-integratie. Met behulp van kwaliteitspoorten om te bepalen of de code voldoet aan de gedefinieerde standaarden van kwaliteit, beveiliging en betrouwbaarheid voor productie, inspecteren SonarQube en SonarCloud de code op bugs, kwetsbaarheden, beveiligingshotspots en codegeuren.

Onze oplossingsset combineren met onze schone code-aanpak – een aanpak die volgt op vastgestelde standaarden om nieuwe, toegevoegde of bewerkte code schoon te houden – ontwikkelaars en organisaties in staat stellen om schone code te leveren en bestaande code organisch te herstellen, zodat ze zich kunnen concentreren op nieuwe, innovatieve projecten die bedrijfswaarde stimuleren

Hoe helpt Sonar ervoor te zorgen dat de code voldoet aan de industrienormen?

Sonar helpt ontwikkelaars om onmiddellijke en contextuele feedback te krijgen, waarin problemen worden gemarkeerd waar ze in de codebase zijn, binnen de ontwikkelingsworkflow op basis van jarenlange taalanalyse-ervaring. Ontwikkelaars krijgen toegang tot duidelijke verklaringen voor waarom een probleem optreedt en hoe ze het snel kunnen herstellen, evenals aanvullende bronnen voor diepgaandere leerprocessen. We hebben educatie gebouwd door de hele workflow, van de IDE tot de CI/CD. Bijvoorbeeld heeft Sonar specifieke MISRA C++ 2023-regels beschikbaar in SonarLint om teams te helpen code te maken die het beste is voorbereid op eventuele certificering. Het biedt coderingsrichtlijnen, waarin wordt uitgelegd waarom een probleem is gemarkeerd en hoe het kan worden hersteld, om ervoor te zorgen dat de gegenereerde code MISRA-compliant is.

Wat is uw visie op hoe AI de codering in de toekomst zal veranderen?

 Ik denk dat AI zal blijven leveren van grote waarde bij het aanpakken van ontwikkelaarsburn-out. Terwijl ik niet denk dat AI ooit in staat zal zijn om de denkwijze en het menselijke aspect van ontwikkelaars over te nemen, denk ik wel dat we over een paar maanden een geheel nieuwe set GPT’s zullen zien – laat staan wat we over een paar jaar zullen zien. Ik geloof niet dat technici of ontwikkelaars zullen verdwijnen, maar de manier waarop ze hun werk elke dag doen, zal zeker veranderen. De manier waarop ontwikkelaars AI gebruiken, zal zo eenvoudig en alledaags zijn als het zoeken naar iets met Google (GOOGL ) als een shortcut. Er is veel te onderzoeken over het gebruik van AI, maar we moeten het menselijke aspect nog steeds voorop stellen om de nadelen van AI te controleren. Er is een transformatief potentieel voor softwareontwikkeling, maar we mogen het niet zonder controle laten lopen – vooral wanneer digitale bedrijven vandaag afhankelijk zijn van de software die het ondersteunt. Dank u voor het geweldige interview, lezers die meer willen leren, kunnen Sonar bezoeken.

Antoine is een visionaire leider en medeoprichter van Unite.AI, gedreven door een onwankelbare passie voor het vormgeven en promoten van de toekomst van AI en robotica. Een serieondernemer, hij gelooft dat AI net zo disruptief voor de samenleving zal zijn als elektriciteit, en wordt vaak betrapt op het prijzen van de potentie van disruptieve technologieën en AGI.

Als een futurist, hij is toegewijd aan het onderzoeken van hoe deze innovaties onze wereld zullen vormgeven. Bovendien is hij de oprichter van Securities.io, een platform dat zich richt op het investeren in cutting-edge technologieën die de toekomst herdefiniëren en hele sectoren herschikken.