IA dans le developpement logiciel : Hype ou Game Changer ?


Nous sommes en 2028, 6 ans se sont ecoules depuis le boom de l’IA generative avec l’apparition de ChatGPT et de ce qui fut une vague d’adoption de l’IA generative pour developper des logiciels. Cependant, apres le hype qui s’est produit en 2023 et 2024, l’utilisation des copilots et assistants de code bases sur l’IA a progressivement diminue. On a observe qu’au fond ils n’offraient pas beaucoup de valeur, car la majorite du code qu’ils produisaient etait incorrect et de qualite mediocre, et que les developpeurs passaient plus de temps a corriger les erreurs introduites par l’IA qu’ils n’en economisaient. Cela a provoque un affaiblissement progressif des initiatives d’adoption jusqu’a leur disparition du debat technologique, rappelant le destin ephemere du metaverse.
Si le paragraphe precedent vous a surpris, c’est probablement parce que vous ne croyez pas qu’il decrive un futur probable. Et c’est qu’il commence a y avoir un sentiment plus ou moins generalise que l’IA generative a change le monde du developpement logiciel pour toujours. J’oserais dire qu’avec la recherche d’information (ce que nous faisions avant avec Google et maintenant avec ChatGPT), la generation de code avec l’IA generative est le cas d’usage phare de cette technologie. Cependant, il y a des entreprises de logiciels qui n’ont toujours pas adopte cette technologie comme accelerateur de leur productivite. Et avec le faible cout de cette technologie et sa courbe d’apprentissage reduite, il ne semble pas y avoir beaucoup de raisons pour le justifier.
Dans des entreprises comme Google, deja 25% du code genere est propose par l’IA generative. Selon une etude de StackOverflow, on estime que 62% des developpeurs de logiciels utilisaient deja l’IA generative en 2024 et 13% supplementaires prevoyaient de commencer a l’utiliser prochainement. Meta affirme avoir reduit le temps de debogage de code de 30% grace a l’utilisation de l’IA. Et le populaire editeur de code Cursor, concu pour developper avec l’IA generative, a ete la premiere entreprise a atteindre 100 millions de dollars de revenu recurrent annuel en seulement 12 mois. Et bien que la technologie ne soit bien sur pas parfaite, qu’elle ait des limitations et commette des erreurs, la valeur qu’elle apporte commence a etre evidente pour beaucoup.
C’est pourquoi de nombreuses entreprises ont deja adopte la technologie dans leurs processus de developpement logiciel, et l’utilisent dans les differentes etapes du processus telles que : le project planning, la conception d’architecture, le codage, le debogage, le testing, l’automatisation, le deploiement et les operations. Il n’y a plus de doute qu’elle apporte de la valeur, cependant de nombreuses entreprises ne l’ont pas encore adoptee et certaines se demandent si elles doivent le faire ou non, et quand. Je crois que c’est une erreur, car la technologie est suffisamment mature pour ameliorer la productivite a un cout tres bas. La question n’est pas de savoir s’il faut l’adopter et quand, mais comment le faire.
Etant une technologie si puissante, je crois que l’adoption doit se faire en repensant la strategie technologique, pour essayer d’obtenir les meilleurs resultats et minimiser les risques. De par mon experience en tant que CTO fractionnel qui aide les entreprises a integrer l’IA dans leur strategie technologique, il est important de considerer les aspects suivants pour une adoption adequate :
Les personnes restent fondamentales
Bien que l’IA automatise des taches que nous, les humains, faisions auparavant, elle necessite toujours un humain qui identifie ce qu’il faut faire, quel probleme il faut resoudre et pourquoi.
En raison de la nature de l’IA generative actuelle, il est courant que les resultats de l’IA contiennent des erreurs ou aient besoin d’etre adaptes a notre contexte specifique. La revision, la correction et l’adaptation doivent continuer a etre effectuees par un humain possedant une connaissance du domaine et un esprit critique. De plus, il existe des taches complexes, comme la conception d’une architecture optimale ou certaines fonctionnalites pour lesquelles l’IA n’est pas encore comparable a un bon developpeur.
Toute nouvelle technologie necessite un changement dans la facon de travailler, et une ouverture de la part des personnes pour embrasser le changement et le mener de facon optimale. L’introduction de l’IA dans une entreprise peut venir dans deux directions : dirigee par les leaders qui evangelisent la technologie et mettent tous les moyens necessaires pour son adoption (top-down). Ou depuis les employes eux-memes dont la curiosite les amene a utiliser des outils d’IA generative meme lorsque l’entreprise ne les a pas officiellement adoptes (bottom-up). Les deux alternatives sont valides, cependant lorsque l’adoption vient du bas il y a plus de risque qu’elle n’atteigne pas tout le monde ou le fasse de maniere inegale, que chacun utilise un outil different, qu’il manque de visibilite sur l’impact du changement et qu’il puisse y avoir des problemes de confidentialite et de securite des donnees.
L’IA renforce, mais exige aussi, une methodologie solide
L’adoption de l’IA pour developper des logiciels pourrait etre vue comme l’incorporation d’un groupe de developpeurs juniors qui travaillent sous la supervision des developpeurs actuels, comme si nous montions en echelle les equipes d’ingenierie. Avoir une methodologie de developpement logiciel adequate dans laquelle nous travaillons de maniere agile, par petites iterations, en examinant le processus, avec un shift-left de la qualite et en appliquant l’amelioration continue, va permettre d’observer l’impact de l’adoption de l’IA rapidement, de le mesurer et d’ajuster les pratiques pour obtenir des resultats optimaux. En meme temps, cela nous permet de detecter les erreurs potentielles introduites par l’IA et de les corriger en phase de developpement avant qu’elles n’arrivent en production.
Si nous manquons d’une methodologie mature et que nous adoptons l’IA pour developper, nous courons le risque d’augmenter le nombre de bugs et la dette technique de notre logiciel a une vitesse accrue. Et que l’adoption ait un impact net negatif. Pour ces cas, la cle est d’utiliser la capacite supplementaire que nous donne l’IA pour ameliorer la methodologie. Par exemple, en introduisant des tests automatiques qui sont simples et rapides a generer avec l’IA. On peut egalement utiliser une partie du temps humain economise pour des taches que l’IA ne peut pas encore faire de maniere optimale, comme les revues de code.
On peut voir l’IA generative comme un amplificateur de la capacite des ingenieurs, et la cle est de savoir trouver l’equilibre entre aller plus vite et aller avec une meilleure qualite, ce que nous obtenons a travers la methodologie.
La generation de code n’est pas le seul cas d’usage
S’il est vrai que le cas d’usage phare de l’IA generative est la generation de code, ce n’est de loin pas le seul cas d’usage qui apporte de la valeur dans le developpement logiciel. L’ideal est de planifier une adoption qui tire parti de toutes les capacites ou la technologie peut apporter de la valeur et de ne pas se contenter de moins. Les principaux cas d’usage dans le developpement logiciel aujourd’hui sont :
Generation de code
Recherche d’information et resolution de doutes (ce qui se faisait avant avec Google et Stackoverflow)
Creation de tests automatiques : unit tests, tests d’integration, tests end to end
Debogage de code
Generation de documentation (a partir du code)
Explication du code existant
Migration vers d’autres technologies et langages
Automatisations de deploiement et d’integration (pipelines CI/CD)
Analyse de logs et de grandes quantites de donnees
Apprentissage de nouveaux langages et technologies
Outils et formation : cles pour maximiser le ROI
Nous avons la chance que les meilleurs outils pour le developpement logiciel avec l’IA generative sont tres abordables, avec des licences allant de 10 a 40$/mois par developpeur pour les outils les plus populaires comme Cursor ou Github Copilot. Le ROI est tres bon puisque ce cout est recupere si nous economisons moins d'1 heure par mois a un programmeur. Ce qui est previsiblement largement depasse.
L’interface conversationnelle de l’IA generative est trompeuse, car il semblerait que peu importe comment nous lui demandons les choses puisqu’elle donne toujours une reponse. La realite est que comment nous demandons a l’IA (ce que l’on appelle communement le prompt) importe enormement. L’inconvenient de l’IA generative est qu’elle vous permet d’etre aussi paresseux que vous le souhaitez, mais la qualite de sa reponse sera determinee par la qualite du prompt que vous ecrivez.
Aujourd’hui, il existe de nombreuses formations qui expliquent comment fonctionne l’IA generative, la technologie qui la sous-tend et comment nous pouvons ecrire de bons prompts pour obtenir les meilleurs resultats. Si nous choisissons de ne pas offrir de formation et de faire confiance a chaque developpeur pour apprendre a utiliser l’IA, a long terme le cout sera probablement plus eleve, en raison de la courbe d’apprentissage et de la productivite perdue par les developpeurs qui ne font pas de bons prompts. Il existe deja de nombreuses formations en ligne de developpeurs qui travaillent avec l’IA depuis longtemps et savent comment l’utiliser pour en tirer le meilleur parti.
Risques : Les identifier et les attenuer de maniere proactive
Comme toute nouvelle technologie puissante, l’IA introduit certains risques, certains sont connus et nous savons comment les attenuer, mais d’autres ne sont pas encore bien connus, et il faut du temps pour mieux les comprendre. Cependant, nous constatons qu’aujourd’hui les avantages depassent largement les inconvenients, et les entreprises parient sur l’adoption de cette technologie. Une bonne strategie doit prendre en compte les risques et mettre en place des mecanismes pour les attenuer et les suivre. Certains des risques les plus significatifs sont :
Hallucinations et reponses incorrectes. En raison des caracteristiques de la technologie, les hallucinations peuvent se produire et si nous ne les detectons pas, elles peuvent causer des defaillances dans notre logiciel. Attenuation :
- Les reponses et le code genere par l’IA DOIVENT TOUJOURS etre revises par un expert humain.
- Disposer d’une methodologie avec shift-left de la qualite : avec des automatismes et des controles de qualite precoces qui permettent de trouver les defauts le plus tot possible.
Augmentation de la dette technique. L’IA actuelle est optimisee pour generer du code fonctionnel, cependant, un code fonctionnel peut etre inutilement long, reinventer la roue, ne pas traiter adequatement les corner cases ou contenir un style different de celui de notre projet. Tout cela represente une augmentation de la dette technique. Attenuation : Avoir une methodologie mature, qui inclut des guides de style, des revues de code, des analyseurs de code statique et qui promeut d’autres bonnes pratiques parmi les developpeurs pour reduire la dette technique.
Deterioration des competences des ingenieurs. Lorsqu’une partie de la programmation est deleguee a l’IA, l’ingenieur n’a plus besoin de mettre en pratique ses competences, ce qui a long terme peut entrainer une perte ou une deterioration des competences de programmation, par exemple. Bien que cela ne soit pas encore tres etudie, c’est quelque chose que nous comprendrons mieux dans les prochaines annees. Attenuation : Promouvoir des journees de programmation sans IA ou d’autres initiatives. Suivre l’evolution de la technologie, car si celle-ci depasse les capacites humaines dans un domaine, par exemple la programmation, il n’a plus de sens que les humains continuent a faire cette tache de maniere moins optimale et plus couteuse. Dans ce cas, il est possible que les responsabilites des ingenieurs se deplacent probablement vers des domaines plus fonctionnels et d’architecture.
Fuites d’informations sensibles. L’IA depend de votre contexte pour pouvoir donner des reponses personnalisees, donc les ingenieurs fourniront du contexte a l’IA, ce qui peut partager avec des entreprises tierces des informations sensibles, comme le code source de votre application. Ce risque est minimise si nous utilisons des outils avec des licences commerciales comme Github Copilot ou Cursor ou le code et les prompts ne sont ni accedes ni stockes par le fournisseur.
Conclusion
L’IA redefinit la facon dont les entreprises developpent des logiciels, augmentant significativement la productivite lorsqu’elle est adoptee correctement, ce qui constitue un veritable game changer. Et bien que ce soit une technologie revolutionnaire, elle depend fondamentalement d’elements traditionnels tels que : les personnes, le leadership, la methodologie, les outils et la formation. C’est pourquoi, si nous voulons obtenir tous les benefices potentiels de l’IA, il est recommande de repenser la strategie technologique, pour incorporer cette technologie dans les differentes etapes du developpement logiciel. Et il est possible que dans ce processus nous trouvions des lacunes et des besoins, par exemple en matiere de methodologie, que nous pourrons aborder dans le cadre du plan d’adoption de l’IA.
Actuellement, je travaille avec des entreprises de logiciels qui souhaitent introduire l’IA generative comme technologie dans leur processus de developpement logiciel. Je m’integre dans leurs equipes et je travaille main dans la main avec le CTO et d’autres leaders techniques pour comprendre comment ils developpent des logiciels et comment definir une bonne strategie pour adopter l’IA de maniere optimale et en reduisant les risques.
Si vous avez le sentiment qu’au sein de votre entreprise vous ne tirez pas profit de tout ce que l’IA peut offrir et que vous cherchez quelqu’un qui a deja aide d’autres a parcourir ce chemin, parlons-en.