Entretiens

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

mm
Ajouter Unite.AI à vos sources préférées sur Google

Peter McKee est le Head of Developer Relations chez Sonar, une plateforme qui résout le défi d’une valeur de plusieurs milliards de dollars lié au mauvais code. Sonar équipe les développeurs et les organisations pour atteindre systématiquement un état de Code Propre, afin que tout le code soit adapté au développement et à la production. En appliquant la méthodologie Clean as You Code de Sonar, les organisations minimisent les risques, réduisent la dette technique et tirent plus de valeur de leur logiciel de manière prévisible et durable.

Qu’est-ce qui vous a initialement attiré vers l’informatique ?

J’ai toujours été intéressé par les ordinateurs depuis mon plus jeune âge. Même lorsque j’ai initialement poursuivi une autre voie de carrière, j’ai été continuellement attiré par les ordinateurs et la programmation. À un moment donné, mon père dirigeait une entreprise sidérurgique en Virginie et ils avaient perdu leur groupe de consultants. Comme j’avais appris à programmer plus jeune, il m’a invité à travailler et à construire des systèmes pour lui. Je ne savais pas, honnêtement, ce que je faisais à 100 % au début, mais j’ai appris à partir de livres et en faisant le travail sur le tas, et je suis devenu complètement autodidacte. Cela a continué à alimenter mon intérêt pour la programmation et les ordinateurs et a vraiment cimenté mon intérêt pour l’informatique.

Pouvez-vous clarifier comment vous définiriez ce qu’est un Code Propre et pourquoi il est si important ?

On a dit depuis des années que les logiciels vont dévorer le monde, et je dirais que nous sommes maintenant à ce point où c’est officiel – le monde est construit sur les logiciels et chaque entreprise est effectivement une entreprise de logiciels. À la base d’un bon logiciel se trouve un code de qualité, car le code est au cœur de tous les logiciels et dicte son comportement et ses performances. C’est pourquoi le Code Propre — du code qui est cohérent, intentionnel, adaptable et responsable — est si important. Le code qui est propre est facile à comprendre et à modifier, fonctionne sans problème à l’exécution et ne contient pas de dette technique, ce qui le rend adapté à son utilisation. Le Code Propre est la norme que les organisations devraient adopter pour garantir que leur logiciel continue d’être un atout — et non une responsabilité — et est le principal moteur du succès commercial d’aujourd’hui.

Le Code Propre bénéficie aux équipes et aux organisations de toutes tailles et de tous niveaux de maturité, et augmente la valeur du logiciel en conséquence. Voici quelques avantages spécifiques :

  • Améliore les compétences de développement — Les développeurs peuvent détecter, comprendre et résoudre les problèmes pendant qu’ils codent, tout en apprenant les meilleures pratiques
  • Augmente l’efficacité et la productivité — En réduisant les reprises continues et les cycles de feedback longs, ce qui entraîne une plus grande productivité
  • Réduit les risques pour la réputation et les affaires — Le Code Propre garantit moins de risques de sécurité en permettant aux équipes de résoudre proactivement les problèmes avant qu’ils n’atteignent la production
  • Réduit la dette technique au niveau du code — Le Code Propre traite progressivement de la dette de la base de code sans nécessiter une refonte massive de l’application et une perturbation
  • Augmente la vitesse de développement logiciel — Les normes de Code Propre et les flux rationalisés améliorent la vitesse de DevOps, favorisant un temps de mise sur le marché plus rapide

Pouvez-vous discuter de l’importance de la cohérence et de la structure dans le code, et quels sont quelques exemples de code propre et cohérent ?

La qualité du code cohérente est quelque chose que chaque responsable ou directeur technique vise à maintenir. La cohérence est cruciale lorsqu’il s’agit de la qualité du code, car la cohérence conduit à la prévisibilité. Il est écrit de manière uniforme et conventionnelle — tout le code a l’air similaire et suit un modèle régulier, même avec de multiples contributeurs à différents moments. Le code cohérent est formaté, conventionnel et identifiable. Lorsque des normes de codage cohérentes sont adoptées, les développeurs deviennent plus efficaces et sont en mesure de répondre à leurs attentes de livraison avec rapidité et précision.

Pouvez-vous discuter de l’importance du code qui peut gérer des conditions inattendues, et pourquoi cela ne doit pas être négligé ?

Les développeurs essayent toujours d’anticiper et de se préparer à des occurrences inattendues pendant le processus de conception et de développement, mais cela ne peut pas être prévenu dans chaque instance. Des états inattendus peuvent survenir en raison d’une utilisation involontaire ou d’attaques délibérément déclenchées. Ces états inattendus peuvent involontairement introduire des vulnérabilités de sécurité que les attaquants peuvent exploiter. C’est pourquoi les développeurs devraient toujours viser à améliorer la qualité et la stabilité de leur code et à tester les conditions inattendues. En suivant une approche Clean as You Code, les équipes peuvent mieux accélérer les nouvelles fonctionnalités, éviter les coûts de reprise inutiles et favoriser la croissance et la rétention des talents. Le Code Propre favorise la sécurité, la maintenabilité et la fiabilité, et peut permettre aux développeurs d’anticiper et de gérer les états inattendus de manière plus efficace et de remettre le logiciel en fonctionnement plus rapidement.

Pouvez-vous discuter des avantages de l’utilisation de l’IA générative pour la génération de code ?

L’intégration de l’IA dans le cycle de vie du développement logiciel présente des avantages, tels que permettre aux développeurs de travailler plus efficacement. En fait, des recherches de GitHub ont montré que les développeurs peuvent effectuer des tâches plus de 50 % plus rapidement en utilisant l’IA. L’IA générative peut également générer du code plus rapidement, et à son tour, alléger la charge des tâches plus fastidieuses et répétitives — comme la documentation ou la génération de fragments de code — de leur charge de travail, afin qu’ils puissent se concentrer sur un travail plus valorisant et résoudre des problèmes plus complexes. Quelle que soit la façon dont le code est créé, il est essentiel qu’il soit vérifié par rapport aux normes de Code Propre pour garantir que le code est sécurisé, fiable et maintenable.

Quels sont quelques-uns des pièges et risques potentiels du code généré ?

 Alors que l’IA peut libérer le temps des développeurs pour travailler sur des projets à plus forte valeur et améliorer la productivité, cela ne se fait pas sans risques. C’est pourquoi la demande de développeurs ne disparaîtra pas à l’ère de l’IA. Puisque les outils d’IA générative peuvent générer beaucoup de code rapidement, il existe un risque d’erreurs. Voici quelques pièges spécifiques :

  • Responsabilité : Le code généré par l’IA réduit la capacité à tenir les personnes responsables du code créé, ce qui peut rendre plus difficile la résolution des problèmes.
  • Vulnérabilités : Parce qu’il s’agit d’informations largement issues de sources crowdsourcées, il n’y a aucune garantie que le code produit est sécurisé ou propre. Il peut même y avoir des bogues ou des problèmes de sécurité qui peuvent mettre les entreprises en danger.
  • Qualité : L’IA ne vérifie pas la qualité, et le simple fait qu’il soit généré par l’IA ne signifie pas qu’il est efficace ou de haute qualité.
  • Aucun contexte : La perte de l’élément humain signifie naturellement que vous perdez le contexte d’un problème ou d’un projet. Le code généré par l’IA doit être examiné pour garantir qu’il fait correctement le travail.

Lorsque les développeurs adoptent une approche Clean as You Code avec leur code — humain ou généré par l’IA —, ils peuvent garantir que leur code est adapté au développement et à la production et répond aux normes requises de leur organisation.

Quels sont les autres facteurs qui devraient être pris en compte dans le code adapté à la production ?

 Les développeurs qui écrivent du code qui respecte les principes de Code Propre peuvent être certains que leur code est adapté au développement et à la production, ce qui signifie que le code présente certaines caractéristiques :

  • Cohérent : Le code doit être cohérent et suivre un style commun. Même si le code est travaillé par plusieurs développeurs différents au fil du temps, il doit avoir une apparence similaire et suivre des modèles établis précédemment.
  • Intentionnel : Le code intentionnel doit être lu comme s’il avait été écrit avec attention et soin pour transmettre son objectif ; il ne doit avoir qu’une seule interprétation possible.
  • Adaptable : Le code adaptable est segmenté et organisé de manière à faciliter la gestion et à montrer les relations entre chaque ligne de code. Cela rend le code structuré pour une évolution facile et confiante.
  • Responsable : Le code, et ses développeurs, doivent être conscients de leurs obligations éthiques concernant les données et leur influence potentielle sur les normes sociétales. Le code ne doit finalement pas présenter un risque continu d’atteinte involontaire à des tiers.

Pouvez-vous discuter des différentes offres de Sonar et de la façon dont elles aident les coders à construire un code responsable, sécurisé, de haute qualité et rapide de manière systématique ?

 Grâce à nos analyseurs leaders dans l’industrie, Sonar identifie les problèmes de codage de manière exhaustive et recommande des corrections avec des boucles de feedback courtes tout en éduquant le développeur dans le contexte, permettant finalement aux organisations de construire un code responsable, sécurisé, de haute qualité et rapide de manière systématique. Les éléments fondamentaux de la solution Sonar sont SonarLint, SonarQube (auto-géré ; open source), et SonarCloud (SaaS), avec une couverture extensive qui prend en charge plus de 30 langages de programmation, cadres et infrastructures, 11 IDE, et plus de 5 000 règles de codage et de langage spécifiques.

SonarLint, une extension d’IDE, fournit la première ligne de vérifications pour trouver les problèmes en temps réel dès que le code est écrit. Il attrape une grande partie des problèmes dès le départ et aide les développeurs à découvrir et à résoudre les erreurs comme un correcteur orthographique pour le code. SonarQube et SonarCloud, les outils d’examen de code d’analyse statique de Sonar, inspectent et analysent en continu la base de code, avec une intégration SonarLint. En utilisant des portes de qualité pour déterminer si le code répond aux normes de qualité, de sécurité et de fiabilité définies pour la production, SonarQube et SonarCloud inspectent le code pour les bogues, les vulnérabilités, les points chauds de sécurité et les odeurs de code.

En associant notre ensemble de solutions à notre méthodologie Clean as You Code — une approche qui suit des normes établies pour maintenir le code nouveau, ajouté ou modifié propre — les développeurs et les organisations sont en mesure de livrer du Code Propre et de résoudre organiquement le code existant, afin qu’ils puissent se concentrer sur de nouveaux projets innovants qui génèrent de la valeur commerciale.

Comment Sonar aide-t-il à garantir que le code est conforme et répond aux normes de l’industrie ?

Sonar aide les développeurs à obtenir un feedback immédiat et contextualisé, mettant en évidence les problèmes où ils se trouvent dans la base de code, dans le flux de travail de développement en fonction des années d’expérience d’analyse de langage. Les développeurs ont accès à des explications claires sur la raison pour laquelle un problème se produit et sur la façon de le résoudre rapidement, ainsi qu’à des ressources supplémentaires pour une formation plus approfondie. Nous avons une éducation intégrée dans l’ensemble du flux de travail, de l’IDE à la CI/CD. Par exemple, Sonar dispose de règles MISRA C++ 2023 spécifiques disponibles dans SonarLint pour aider les équipes à créer du code qui est le mieux préparé pour la certification éventuelle. Il offre des conseils de codage, expliquant le pourquoi derrière un problème signalé, et comment le corriger, pour garantir que le code écrit est conforme à MISRA.

Quelle est votre vision pour l’avenir de l’IA dans la transformation du codage ?

 Je pense que l’IA continuera à apporter une grande valeur pour résoudre l’épuisement des développeurs. Même si je ne pense pas que l’IA pourra jamais décharger les développeurs de leur réflexion et de leur touche humaine, je pense que même dans quelques mois, nous verrons un tout nouveau ensemble de GPT — sans parler de ce que ressemblera l’avenir. Je ne crois pas que les technologistes ou les développeurs disparaîtront, mais la nature de leur travail quotidien changera certainement. La façon dont les développeurs utilisent l’IA sera aussi simple et courante que la recherche Google (GOOGL ) pour quelque chose en tant que raccourci. Il y a beaucoup à explorer sur l’utilisation de l’IA, mais nous devons toujours considérer l’élément humain au premier plan pour contrôler les inconvénients de l’IA. Il y a un potentiel de transformation pour le développement logiciel, mais nous ne devons pas le laisser fonctionner sans aucun contrôle — surtout lorsque les entreprises numériques d’aujourd’hui dépendent du logiciel qui les sous-tend.

Je vous remercie pour cette grande interview, les lecteurs qui souhaitent en savoir plus devraient visiter Sonar.

Antoine est un leader visionnaire et associé fondateur d'Unite.AI, animé par une passion inébranlable pour façonner et promouvoir l'avenir de l'IA et de la robotique. Un entrepreneur en série, il croit que l'IA sera aussi perturbatrice pour la société que l'électricité, et se fait souvent prendre en train de vanter le potentiel des technologies perturbatrices et de l'AGI.

En tant que futuriste, il se consacre à explorer comment ces innovations vont façonner notre monde. En outre, il est le fondateur de Securities.io, une plateforme axée sur l'investissement dans les technologies de pointe qui redéfinissent l'avenir et remodelent des secteurs entiers.