Google Gemini (ex Duet AI) ou Tabnine.
Ces outils proposent deux mécanismes d’interaction principalement pour générer du code :
Notre expérience avec ces outils démontre que la Gen AI est plutôt pertinente dans :
Cependant, la Gen AI montre ses limites lorsqu'il s'agit de :
Les éditeurs et cabinets de conseil vantent souvent des gains de productivité miraculeux grâce à la Gen AI. L'étude Today was a Good Day : The Daily Life of Software Developers révèle qu’écrire du code ne représente au mieux que 40% du temps d'un développeur, les gains générés par ces outils se limitent donc à cette portion. Au mieux, l'optimisation se situe entre 10% et 15%
.
Les gains de productivité sont donc réels, mais relatifs ! Il est crucial de souligner que ces gains de productivité ne sont ni universels ni homogènes. Notre expérience montre que les développeurs de niveau intermédiaire à avancé en profitent le plus, tandis que les experts en tirent peu d'avantages et que les débutants peuvent même être pénalisés s’ils ne sont pas bien accompagnés.
Le déploiement de ces outils dans votre organisation doit tenir compte de la maturité de vos développeurs. Un accompagnement adapté aux besoins de chaque développeur est indispensable pour maximiser les bénéfices et en particulier pour garantir la qualité et la sécurité du code produit.
L'impact de la GenAI sur la qualité du code varie considérablement selon le niveau de maturité des développeurs. Rappelons que les assistants de génération de code n’ont pas connaissance des besoins utilisateurs ni du contexte métier. Ils ne sont absolument pas là pour faire du design applicatif. Les approches Domain Driven Design et Model Driven Design piloté par l’humain restent un bon moyen de comprendre le contexte et de faire face à la complexité du métier.
Pour déployer un assistant de code il faut être vigilant sur la pyramide de séniorité de vos équipes de développement, et leur niveau de maturité !
La culture CRAFT s'avère essentielle pour un déploiement réussi de la Gen AI. Ces principes favorisent la collaboration, la revue de code et le partage des connaissances, permettant aux développeurs expérimentés de guider et de superviser l'utilisation de l'IA par leurs collègues moins expérimentés. Au-delà des pratiques techniques qui sont obligatoires pour apprendre à faire du bon travail d'artisan codeur, c'est surtout l’esprit du compagnonnage prôné par le CRAFT qui vient sécuriser le déploiement de ces outils et se positionner comme un rempart face au risque d'hallucinations des LLM. L’outillage dopé par la GenAI devient un allié pour renforcer les bonnes pratiques et perpétuer la collaboration.
Amélioration de la qualité du code : un code bien conçu, lisible et maintenable n’a pas de prix. Des outils comme GitHub Copilot n'améliorent pas intrinsèquement la qualité d’un code de mauvaise qualité. Cependant, en proposant des suggestions de code contextuelles basées sur les fichiers ouverts dans l’IDE, peuvent aider à générer du code de qualité qui s'inspire des pratiques existantes de développement. Cela permet aux développeurs de maintenir un haut niveau de qualité tout en bénéficiant d'une assistance précieuse au sein de l'IDE. Ces outils n’ont pas qu’une vision partielle de la codebase. Une qualité locale n’est pas synonyme de qualité globale. Une supervision humaine reste de mise pour une cohérence globale. Le “collective code ownership” a encore de beaux jours devant lui.
Apprentissage et amélioration continue : l’esprit Craft pousse à chercher des meilleures façons de faire. C’est un des avantages plébiscité du pair programming. Quand vous êtes seul face à votre IDE les suggestions d’un assistant “s’apparentent à du pair programming” et vous donnent la possibilité de voir des nouvelles façon de faire le même code. Cela stimule la réflexion critique et encourage l’exploration de nouvelles pistes auxquelles vous n'auriez pas pensé. Pour preuve le témoignage d’un de nos consultants les plus expérimentés “J'ai souvent utilisé chatGPT / Copilot pour prendre du recul sur mon problème, avoir des suggestions qui alimentent mon cerveau. Les IA disposent rarement de LA réponse, mais ça m'a aidé à de multiples reprises”
Collaboration et partage de connaissance : des outils comme packmind facilitent la collecte des pratiques exemplaires de l’équipe que vous voulez ériger en standard. Cette collecte se fait directement dans les IDE ou pendant la revue de code. Ces pratiques sont partagées et discutées collectivement en revues en équipe. Celles qui auront été acceptées et érigées en standard d’équipe seront dorénavant automatiquement contrôlées dans l’IDE. Les suggestions d’un outil comme Copilot tiendront aussi compte de ces standards d’équipe. Le principe de revue de pratique prôné par le Craft vient ici favoriser la discussion et l'adoption de nouvelles pratiques et l’outillage GenAI se pose en contrôle du respect de ces pratiques.
Amélioration de la sécurité du code: les failles de sécurité dans le code généré par un assistant sont plus difficiles à déceler. La génération automatique de code ne fonctionne généralement qu'avec de petits morceaux de code à la fois. Par conséquent, s'il est utilisé pour produire une grande quantité de code, les développeurs peuvent potentiellement s'exposer à des risques car l’assistant ne prend pas en compte les problèmes inter-fichiers ou multi-niveaux. La revue de code systématique prônée par le Craft devient encore plus d’actualité pour déceler les risques de sécurité imbriqués. D’autre part, des vulnérabilités dans les librairies sont détectées régulièrement. Une bonne pratique recommandée est l’automatisation des checks de dépendance, cependant toutes les vulnérabilités ne se valent pas. Parfois un refactoring s’impose et les bonnes pratiques de refactoring issues du Craft seront votre meilleur allié.
L'adoption de la Gen AI dans le développement logiciel se développe, mais de manière mesurée. La pertinence des suggestions s’améliorent régulièrement. Bien que les promesses de productivité soient le premier levier mis en avant, ce nouvel outil nécessite de renforcer les bonnes pratiques de qualité de code.
En effet, il est crucial de plonger dans cette évolution technologique avec un sens aigu du CRAFT, c'est-à-dire, une maîtrise et une maturité techniques élevées au sein de vos équipes. Cette transition doit s'accompagner d'une vigilance constante sur les implications éthiques (propriété intellectuelle, impact écologique…), de sécurité, et de gestion du changement.
La Gen AI a un beau potentiel pour transformer vos façons de faire du logiciel. Elle va encore creuser le fossé entre les organisations performantes, celles qui ont déployé et maîtrisent les pratiques du software craftsmanship et les organisations qui peinent à sortir des produits de qualité avec un TTM convenable.
Pour aller plus loin sur les Tech Trends : téléchargez OCTO Pulse, la publication qui prend le pouls de la tech !