L’IA générative parviendra-t-elle à réduire, si ce n’est complétement remplacer, les équipes de développement logiciel ? une question qui revient, avec de plus en plus d’insistance, ces quelques dernières années et elle se voit également posée par les comités techniques, les Boards d’entreprise mais aussi les cercles des professionnels du logiciel. Qu’en est-il réellement ?
La réponse courte et honnête que nous, à Crafteam, pouvons donner est « on ne sait pas encore ! », il faut surveiller de près, adopter prudemment les évolutions des pratiques et outils et se tenir prêt pour un éventuel virage disruptif.
Cela étant, nous livrons dans cet article notre analyse de la dynamique actuelle autour de l’IA et des métiers du code.
Un outil de productivité
Le cap, actuellement dépassé, est que l’IA générative s’est ajoutée à la boîte à outil de productivité du développeur, et plus largement du professionnel du logiciel, au même titre que son IDE ou son outil de Refactoring automatique. Les développeurs ont, désormais, un usage quotidien de plateformes telles que Github Copilot ou OpenAI ChatGPT pour leur activité de codage.
Nous ne sommes pas encore arrivés au stade, disruptif, de demander aux plateformes de produire du code et du design à partir d’une spécifications du besoin ou, du moins, de pans de spécifications successifs. Ceci sans rien retirer aux mérites des plateformes actuelles qui accomplissent, à un haut degré de précision, des tâches répétitives et/ou ciblées comme :
- Traduire du code d’un format à un autre
- Alimenter des données de tests
- Faire une première passe de débogage ou une première analyse d’erreur ou de dysfonctionnement
- Ecrire et modeler un algorithme par instructions successives en language humain (prompt)
- Générer de la documentation
- Générer des tests
- Echafauder un environnement de développement
- Etc.
C’est ainsi que sont retrouvées des catégories d’évolutions similaires dans l’étude de Github Research: quantifying GitHub Copilot’s impact on developer productivity and happiness et l’article d’IBM 9 ways developer productivity gets a boost from generative AI où l’on cite des améliorations dans les « tâches répétitives », « temps de recherche et de consolidation de l’information », « productivité et flow d’écriture du code », etc.
S’il est établi que les plateformes d’IA génératives sont des outils de productivité pour le développement logiciel, il serait prématuré de conclure qu’elles ouvrent la voie vers la réduction des effectifs et des OPEX relatifs à l’activité de construction logicielle; la conclusion contraire n’étant pas moins prématurée (cf. plus bas).
Les raisons qui nous amènent à qualifier de prématurées pareilles conclusions sont :
- Les IDEs, les CASE Tools, les méthodes et disciplines logiciels sont autant de progrès dans le développement logiciel et n’ont pas eu d’impacts sur la taille et la charge de travail des équipes de développement – leurs visées étaient la qualité du livrable et la discipline des équipes logiciel
- La question de la mesure de productivité dans les équipes de développement est une question complexe et non tranchée – nous lui réserverons un article à part entière et renvoyons ici vers le débat qu’a enclenché le cabinet McKinsey par la publication de son article Yes, you can measure software developer productivity et la réponse de Kent Beck et Gergely Orosz Measuring developer productivity? A response to McKinsey et Measuring developer productivity? A response to McKinsey, Part 2
Remplacement (partiel) du métier du développeur ?
Sans prétendre à une scientificité, nous posons comme critère pour le remplacement/disparition des métiers, l’apparition d’un procédé automatique favorisé par des technologies émergentes produisant la même valeur justifiant le métier ou la dépréciation de cette même valeur des faits d’un changement d’usage, de cadres sociaux économiques ou autres.
Ne nous attardons pas sur la dépréciation de valeur de l’outil logiciel et de son développement; d’aucuns sauraient défendre aisément l’avènement d’une telle transformation.
Pour le critère d’automatisation, le développement logiciel est en lui-même une discipline d’automatisation qui se réinvente continuellement pour suivre ses propres évolutions et opérer des environnements continuellement plus complexes. Partant de là, l’IA générative et ses plateformes ne représenteraient pas plus qu’un progrès dans la même veine.
Là où notre analyse opiniâtre est mise à l’épreuve, c’est lorsque l’on considère l’émergence d’une technologie « créative » comme critère de remplacement de métier existant. Cette hypothèse, à notre connaissance, n’a jamais été éprouvée et encore faut-il s’accorder sur la définition et la forme du caractère « créatif » d’une technologie.
Les travaux scientifiques n’ont pas, à ce jour, rendu leur prédiction ; Entre études enthousiastes The current state of artificial intelligence generative language models is more creative than humans on divergent thinking tasks et d’autres plus sceptiques The Curious Decline of Linguistic Diversity: Training Language Models on Synthetic Text, les professionnels du logiciel ont tout intérêt à suivre de près l’évolution des outils, plateformes, pratiques et méthodes à l’ère de l’IA générative.
Pour l’heure, la productivité gagnée et qui, nous insistons, n’est pas étrangère aux évolutions connues dans le domaine du logiciel est à opposer aux indicateurs de qualité dans le code produit et à l’impact des nouvelles pratiques sur la discipline logiciel et la marche holistique de construction et d’architecture des systèmes.
Attention aux dérives
A Crafteam, nous adoptons et encourageons l’usage de l’outil IA dans le quotidien des métiers du logiciel (développeurs, testeurs, analystes, etc.). Corollairement, nous insistons auprès de nos experts, consultants; équipes internes et partenaires pour que l’outil IA ne dispense pas du contrôle du niveau de qualité logiciel et de respect d’architecture habituel.
La tentation de travestir l’outil en générateur de code opaque est présente et le risque de dérives est réel et constaté ; L’étude de GitClear Coding on Copilot: 2023 Data Suggests Downward Pressure on Code Quality alerte quant aux observations d’augmentation de la duplication du code, l’indulgence face au non respect des principes logiciels (SOLID, KISS, YAGNI, etc.) et la tendance du code produit à être remplacer (Revert).
Notre conseil : Intégrez l’outil IA dans vos développement et ne délaissez pas vos pratiques, outils de gestion de la qualité du code et vos principes de conception et d’architecture.
Note finale
Robert Martin, dans son livre The clean coder lançait le défi aux prometteurs des CASE tools et des générateurs de code à partir de modèles visuels d’essayer de leur faire coder l’horrible logique des caractères de fin de lignes. Aujourd’hui les outils d’IA génératives ont relevé le défi. Néanmoins, les questions d’achitecture, de cohérence générale, de qualité de code, de confiance dans le système, de la production intellectuelle, etc. demeurent ouvertes. Les percées technologiques et les nouvelles plateformes sont à suivre et première desquelles aujourd’hui la plateforme de Cognition Labs au nom de Devin AI. Cette plateforme est particulièrement prometteuse, nous vous laissons la découvrir sur ce lien https://www.cognition-labs.com/introducing-devin dans l’espoir de revenir avec un article d’unboxing de Devin AI ici dans le blog de Crafteam. Stay tuned.