Interviste
Peter McKee, Head of Developer Relations at Sonar – Interview Series

Peter McKee è il Head of Developer Relations di Sonar, una piattaforma che risolve la sfida da un trilione di dollari del codice scadente. Sonar equipaggia gli sviluppatori e le organizzazioni per raggiungere sistematicamente uno stato di Clean Code in modo che tutto il codice sia adatto allo sviluppo e alla produzione. Applicando la metodologia Clean as You Code di Sonar, le organizzazioni riducono il rischio, riducono il debito tecnico e derivano più valore dal loro software in modo prevedibile e sostenibile.
Cosa ti ha inizialmente attirato verso l’informatica?
Ero sempre interessato ai computer fin da giovane età. Anche quando stavo inizialmente perseguendo un’altra carriera, sono stato continuamente attratto dai computer e dalla programmazione. A un certo punto, mio padre gestiva una società di acciaio in Virginia e avevano perso il loro gruppo di consulenti. Poiché avevo imparato a programmare quando ero più giovane, mi ha invitato a lavorare e a costruire sistemi per lui. Non sapevo, onestamente, cosa stavo facendo al 100% all’inizio, ma ho imparato dai libri e facendo il lavoro sul posto, e sono diventato completamente autodidatta. Ciò ha continuato a guidare il mio interesse per la codifica e i computer e ha realmente cementato il mio interesse per l’informatica.
Potresti chiarire come definiresti il Clean Code e perché è così importante?
È stato detto per anni che il software mangerà il mondo, e direi che siamo al punto in cui è ufficiale – il mondo è costruito sul software e ogni azienda è effettivamente un’azienda di software. Alla base di un buon software c’è il codice di qualità, poiché il codice è al centro di tutto il software e ne determina il comportamento e le prestazioni. Questo è il motivo per cui il Clean Code – codice che è coerente, intenzionale, adattabile e responsabile – è così importante. Il codice pulito è facile da capire e modificare, funziona senza problemi in fase di esecuzione e non contiene debito tecnico, quindi è adatto allo scopo. Il Clean Code è lo standard che le organizzazioni dovrebbero adottare per assicurarsi che il loro software continui ad essere un asset – e non una passività – e sia il principale driver per il successo aziendale di oggi.
Il Clean Code beneficia i team e le organizzazioni di tutte le dimensioni e livelli di maturità, e aumenta il valore del software come risultato. Alcuni benefici specifici sono che:
- Migliora le competenze di sviluppo — Gli sviluppatori possono rilevare, capire e risolvere problemi mentre codificano, imparando anche le migliori pratiche
- Aumenta l’efficienza e la produttività — Riducendo il lavoro continuo e i lunghi cicli di feedback, con conseguente maggiore produttività
- Riduce il rischio di reputazione e business — Il Clean Code assicura meno rischi di sicurezza, consentendo ai team di affrontare proattivamente le problematiche prima che raggiungano la produzione
- Riduce il debito tecnico a livello di codice — Il Clean Code affronta gradualmente il debito del codice senza la necessità di un grande riassetto dell’applicazione e della perturbazione
- Aumenta la velocità di sviluppo del software — Gli standard di Clean Code e i flussi ottimizzati migliorano la velocità DevOps, promuovendo un tempo di mercato più rapido
Potresti discutere l’importanza della coerenza e della struttura nel codice, e quali sono alcuni esempi di codice coerente e Clean Code?
La qualità del codice coerente è qualcosa a cui ogni manager o direttore tecnico mira a mantenere. La coerenza è cruciale quando si tratta della qualità del codice, poiché la coerenza porta alla prevedibilità. È scritto in modo uniforme e convenzionale – tutto il codice ha un aspetto simile e segue un modello regolare, anche con più contributori in momenti diversi. Il codice coerente è formattato, convenzionale e identificabile. Quando vengono adottati standard di codifica coerenti, gli sviluppatori diventano più efficienti e sono in grado di soddisfare le loro aspettative di consegna con velocità e precisione.
Potresti discutere l’importanza del codice che può gestire condizioni inattese, e perché questo non dovrebbe essere trascurato?
Gli sviluppatori stanno sempre cercando di anticipare e prepararsi per eventi inattesi durante il processo di progettazione e sviluppo, ma ciò non può essere prevenuto in ogni istanza. Le condizioni inattese possono sorgere a causa di un uso non intenzionale o attacchi intenzionalmente innescati. Queste condizioni inattese possono introdurre involontariamente vulnerabilità di sicurezza che gli attaccanti possono sfruttare. È per questo che gli sviluppatori dovrebbero sempre cercare di migliorare la qualità e la stabilità del loro codice e testare le condizioni inattese. Seguendo un approccio Clean as You Code, i team possono accelerare meglio le nuove funzionalità, evitare costi di rilavorazione non necessari e favorire la crescita e la fidelizzazione dei talenti. Il Clean Code promuove la sicurezza, la manutenibilità e l’affidabilità, e può consentire agli sviluppatori di anticipare e gestire condizioni inattese più efficacemente e riavviare il software più velocemente.
Potresti discutere i benefici dell’utilizzo di Intelligenza Artificiale generativa per la generazione di codice?
Incorporare l’IA nel ciclo di vita dello sviluppo del software ha i suoi benefici, come ad esempio consentire agli sviluppatori di lavorare in modo più efficiente. In effetti, la ricerca di GitHub ha scoperto che gli sviluppatori possono completare attività più del 50% più velocemente utilizzando l’IA. L’IA generativa può anche generare codice più velocemente e, di conseguenza, alleviare gli sviluppatori da compiti più tediosi e routinari – come la documentazione o la generazione di snippet di codice – in modo che possano concentrarsi meglio su lavori di alto valore e gratificanti per risolvere problemi più complessi. Indipendentemente da come il codice viene creato, è fondamentale che venga verificato contro gli standard di Clean Code per assicurarsi che il codice sia sicuro, affidabile e manutenibile.
Quali sono alcuni dei potenziali rischi e pericoli del codice generato?
Mentre l’IA può liberare il tempo degli sviluppatori per lavorare su progetti di alto valore e aumentare la produttività, non è senza rischi. È per questo che la domanda di sviluppatori non scomparirà nell’era dell’IA. Poiché gli strumenti di IA generativa possono generare una grande quantità di codice velocemente, c’è il potenziale per errori. Ecco alcuni rischi specifici:
- Responsabilità: Il codice generato dall’IA riduce la capacità di tenere le persone responsabili del codice creato, il che può rendere più difficile risolvere/affrontare i problemi.
- Vulnerabilità: Poiché utilizza informazioni in gran parte crowdsourced, non c’è garanzia che il codice prodotto sia sicuro o pulito. Potrebbero esserci bug o problemi di sicurezza che possono mettere a rischio l’azienda.
- Qualità: L’IA non controlla la qualità e solo perché è generata dall’IA non significa che sia efficiente o di alta qualità.
- Nessun contesto: Perdere l’elemento umano significa naturalmente perdere il contesto di un problema o progetto. Il codice generato dall’IA deve essere esaminato per assicurarsi che faccia il lavoro completo.
Quando gli sviluppatori adottano un approccio Clean as You Code con il loro codice – umano o generato dall’IA – possono assicurarsi che sia adatto allo sviluppo e alla produzione e soddisfi gli standard di qualità della loro organizzazione.
Quali sono alcune altre variabili che dovrebbero essere considerate nel codice adatto alla produzione?
Gli sviluppatori che scrivono codice che aderisce ai principi di Clean Code possono essere sicuri che il loro codice sia adatto allo sviluppo e alla produzione, il che significa che il codice segue determinate caratteristiche:
- Coerente: Il codice dovrebbe essere coerente e seguire uno stile comune. Anche se il codice è lavorato da più sviluppatori diversi nel tempo, dovrebbe avere un aspetto simile e aderire ai modelli stabiliti in precedenza.
- Intenzionale: Il codice intenzionale dovrebbe leggersi come se fosse stato scritto con attenzione e cura per trasmettere il suo scopo; dovrebbe avere solo un’unica interpretazione disponibile.
- Adattabile: Il codice adattabile è segmentato e organizzato in modo da renderlo più facile da gestire e vedere le relazioni tra ogni riga di codice. Ciò rende il codice strutturato per un’evoluzione facile e sicura.
- Responsabile: Il codice, e i suoi sviluppatori, dovrebbero essere consapevoli delle loro obbligazioni etiche riguardo ai dati e al loro potenziale impatto sui valori sociali. Il codice non dovrebbe presentare un rischio continuo di danneggiamento involontario di terze parti.
Potresti discutere alcune delle varie offerte di Sonar e come aiuta i coder a costruire codice responsabile, sicuro e di alta qualità in modo rapido e sistematico?
Attraverso i nostri analizzatori di settore, Sonar identifica i problemi di codifica in modo completo e raccomanda correzioni con cicli di feedback brevi, educando allo stesso tempo lo sviluppatore nel contesto, abilitando in ultima analisi le organizzazioni a costruire codice responsabile, sicuro e di alta qualità in modo rapido e sistematico. Gli elementi chiave della soluzione Sonar sono SonarLint, SonarQube (autogestito; open source) e SonarCloud (SaaS), con una copertura estensiva che supporta oltre 30 linguaggi di programmazione, framework e infrastrutture, 11 IDE e più di 5.000 regole di codifica e linguaggio specifiche.
SonarLint, un’estensione dell’IDE, fornisce la prima linea di controlli per trovare problemi in tempo reale dal momento in cui il codice viene scritto. Coglie una grande parte dei problemi in anticipo e aiuta gli sviluppatori a scoprire e risolvere errori come un controllo ortografico per il codice. SonarQube e SonarCloud, gli strumenti di revisione del codice di analisi statica di Sonar, ispezionano e analizzano continuamente il codice, con l’integrazione di SonarLint. Utilizzando porte di qualità per determinare se il codice soddisfa gli standard di qualità, sicurezza e affidabilità definiti per la produzione, SonarQube e SonarCloud ispezionano il codice per bug, vulnerabilità, hotspot di sicurezza e odori di codice.
Abbinando il nostro set di soluzioni con la nostra metodologia Clean as You Code – un approccio che segue standard stabiliti per mantenere il codice nuovo, aggiunto o modificato pulito – gli sviluppatori e le organizzazioni sono abilitati a consegnare Clean Code e a risolvere organicamente il codice esistente, in modo che possano concentrarsi su nuovi progetti innovativi che guidano il valore aziendale.
Come Sonar aiuta a garantire che il codice sia conforme e soddisfi gli standard dell’industria?
Sonar aiuta gli sviluppatori a ottenere un feedback immediato e contestualizzato, evidenziando le problematiche dove si trovano nel codice, all’interno del flusso di lavoro di sviluppo basato su anni di esperienza con gli analizzatori di linguaggio. Gli sviluppatori ottengono accesso a spiegazioni chiare su perché si verifica un problema e su come risolverlo rapidamente, nonché a risorse aggiuntive per un apprendimento più approfondito. Abbiamo un’educazione costruita in tutto il flusso di lavoro, dall’IDE al CI/CD. Ad esempio, Sonar ha regole specifiche MISRA C++ 2023 disponibili in SonarLint per aiutare i team a creare codice che sia meglio preparato per la certificazione finale. Offre una guida di codifica, spiegando il perché dietro un problema segnalato e come risolverlo, per assicurarsi che il codice scritto sia conforme a MISRA.
Qual è la tua visione per come l’IA trasformerà la codifica nel futuro?
Credo che l’IA continuerà a offrire un grande valore nell’affrontare la fatica degli sviluppatori. Mentre non credo che l’IA sarà mai in grado di scaricare il pensiero e il tocco umano degli sviluppatori, credo che anche solo pochi mesi da adesso vedremo un intero nuovo set di GPT – per non parlare di cosa sarà tra pochi anni. Non credo che i tecnologi o gli sviluppatori scompariranno, ma la natura del loro lavoro quotidiano cambierà sicuramente. Il modo in cui gli sviluppatori utilizzano l’IA sarà così semplice e comune come cercare su Google qualcosa come una scorciatoia. C’è molto da esplorare sull’utilizzo dell’IA, ma dobbiamo ancora considerare l’elemento umano in primo piano per controllare i difetti dell’IA. C’è un potenziale trasformativo per lo sviluppo del software, ma non dobbiamo lasciarlo correre senza controlli – soprattutto quando le aziende digitali di oggi dipendono dal software che le sostiene.
Grazie per la grande intervista, i lettori che desiderano saperne di più possono visitare Sonar.












