2 octobre 2024 –

À la fin de l’année 2024, l’IA générative franchit rapidement le cap du “Peak of Inflated Expectations” du célèbre Hype Cycle de Gartner, en un temps record de moins de deux ans. Contrairement à ceux qui pensent que cette technologie est une simple mode éphémère, nous croyons fermement chez Awels Engineering qu’elle entre au contraire dans une phase de préparation de son industrialisation et adoption à grande échelle.
Bien que ces technologies soient encore jeunes et souvent immatures, leurs cas d’usage commencent à se répandre massivement au sein des DSI, notamment pour les équipes de développement, d’opérations et de support. Le cas d’usage le plus courant est probablement l’assistance aux fonctions de support aux utilisateurs, permettant de traiter rapidement plus de 70 % des demandes avec un retour sur investissement significatif, surtout lorsque l’ouverture d’un ticket d’incident coûte plusieurs euros. Le deuxième cas d’usage le plus répandu concerne les opérations, avec l’aide à la résolution d’incidents et la rédaction de post-mortem. Dans ces deux scénarios, l’IA générative sert principalement d’assistant pour optimiser les activités courantes.
Plus récemment, l’IA générative pour le génie logiciel (Software Engineering) a émergé comme une quête différente, visant à créer du code et des tests à partir du langage naturel. Contrairement aux cas précédents où des bases de connaissances préexistantes étaient utilisées commes principales sources de données en entrée, il s’agit ici de la création pure de nouveaux codes sources. Par conséquent, l’adoption peut être plus longue, même si les gains sont réels : certains éditeurs logiciels avancent des gains de productivité de l’ordre de 8 à 10 % pour des investissements en IA générative inférieurs à 1 % de la masse salariale.
Cela concerne les professionnels du développement logiciel, mais qu’en est-il des entreprises qui adoptent l’IA générative pour leurs équipes d’ingénierie logicielle (Software Engineering), d’ingénierie des plates-formes (Platform Engineering) et, in fine, d’ingénierie des produits qu’elles délivrent (Product Engineering) ?
Quelles relations entre toutes ces nuances de l’ingénierie ?
Avant de plonger dans les détails de chacune de ces pratiques et des bénéfices apportés par l’IAG, il est essentiel de définir ces trois concepts et de les illustrer par un exemple simple.
Selon IBM, le “Product Engineering” est la phase du développement de produit où les principes et pratiques de l’ingénierie sont appliqués tout au long du cycle de vie d’un produit. Ce processus inclut la conception, le développement, les tests et l’optimisation. Par exemple, dans l’industrie automobile, cela correspond aux phases d’idéation, de conception et de développement d’un nouveau véhicule.
Le “Software Engineering” (ou génie logiciel en français) existe depuis des décennies. Selon Wikipedia, c’est “une science de génie industriel qui étudie les méthodes de travail et les bonnes pratiques des ingénieurs qui développent des logiciels”. Cette pratique diffère du “Product Engineering” par son focus sur la phase de conception technique, excluant des aspects comme le marketing, l’analyse marché… Toujours en référence à l’industrie automobile, le génie logiciel serait l’art de concevoir techniquement le produit final et d’utiliser les usines de production pour fabriquer le véhicule de manière industrielle.
Enfin, le “Platform Engineering” est une notion apparue il y a environ deux ans, visant à créer un socle facilitant le travail des développeurs. C’est un peu comme l’ingénierie des usines de production qui fabriquent tous types de véhicules, qu’ils soient nouveaux ou anciens. Selon Microsoft, c’est une “pratique basée sur des principes DevOps qui cherche à améliorer la sécurité, la conformité, les coûts et la valeur de l’entreprise grâce à des expériences de développement améliorées et à un libre-service au sein d’une infrastructure sécurisée”.
En résumé, le “Platform Engineering” fournit l’usine de production aux équipes de développement, qui utilisent le “Software Engineering” pour adapter les chaînes de production afin de concevoir le produit fini, lequel a été conçu via le “Product Engineering”.
Ces trois notions sont étroitement liées, et l’IA Générative vient les enrichir à différents niveaux.
Cas d’usage #1 : L’IA Générative en renfort des pratiques de “Software Engineering”
Commençons par l’apport de l’IA générative aux développeurs, probablement le cas d’usage le plus connu. Bien que nous soyons encore loin de pouvoir “remplacer les développeurs par des agents LLM” (ce qui n’arrivera probablement jamais), l’IA générative améliore indéniablement leur productivité.
Les industriels du secteur logiciel ne s’y trompent pas et adoptent l’IA générative pour obtenir les gains mentionnés précédemment. Selon Gartner, les cas d’usage sont très précis :
1/ Expérience améliorée des développeurs
2/ Amélioration du processus d’intégration en continu (“CI”)
3/ Amélioration du processus de livraison en continu (“CD”)
Les premiers retours d’expérience indiquent deux éléments majeurs dans l’adoption. Tout d’abord, utiliser l’IA générative pour des tâches bien définies, rébarbatives et à faible valeur ajoutée, telles que la documentation et la génération de cas de tests. Ensuite, l’IA générative n’est pas pour tout le monde : les développeurs seniors et confirmés y ont peu recours, tandis qu’il est crucial de bien encadrer les développeurs juniors. Le “sweet spot” se trouve chez les développeurs de séniorité intermédiaire. Il s’agit donc d’un accompagnement au changement et d’un ciblage précis des cas d’usage.
Dans une squad produit type avec un PO, un Scrum Master, un Business Analyst, un Tech Lead, des Développeurs, des Testeurs et des SRE, ces évolutions de pratiques concernent essentiellement les pratiques de développement et de tests.
Cas d’usage #2 : L’IA Générative en renfort des pratiques de “Platform Engineering”
Cette pratique consiste à fournir un socle pour les équipes de développement et de tests, qui peut être entièrement consommé en libre-service et via des APIs. Elle est opérationnellement associée au rôle du SRE (Site Reliability Engineer), introduit par Google en 2016 et industrialisé par IBM depuis cinq ans.
Le Platform Engineering est une discipline très récente qui couvre l’ensemble des phases opérationnelles d’un produit, de son développement à ses activités de support et de maintenance. L’IA générative apporte également une aide précieuse dans cette phase de support et de maintenance.
Le travail d’un SRE se concentre sur deux axes majeurs : d’abord, l’aide à la mise en production de nouvelles versions d’un produit de manière entièrement automatisée; ensuite, l’assistance aux équipes d’opérations et de support pour gérer les activités courantes, notamment les incidents majeurs. Ces deux activités sont souvent fastidieuses : la création de longs codes sources d’infrastructure (“Infrastructure-as-Code”) pour la première, et l’analyse de milliers, voire de millions de lignes de logs pour la seconde.
L’IA générative aide sur ces deux fronts. Pour la partie code source d’infrastructure, comme pour les développeurs, elle assiste dans les phases de développement, d’intégration et de livraison continue. Par exemple, avec une approche “Agentic AI”, un groupe d’agents peut collaborer pour générer les scripts d’Infrastructure-as-Code, les tester et même réaliser leur exécution (plus de détails à venir sur la chaîne Awels Engineering). De même, pour les phases d’analyse, l’IA générative peut aider le SRE dans le traitement des logs, l’analyse des problèmes et la génération du post-mortem final.
Enfin, dans le domaine du Platform Engineering, les fonctions de support évoluent avec l’introduction d’assistants virtuels (“chatbots”) qui ne sont plus simplement pré-configurés pour des workflows bien définis, mais capables d’analyser des données additionnelles. Et donc d’enrichir les réponses de manière contextualisée.
Cas d’usage #3 : L’IA Générative en renfort des pratiques de “Product Engineering”
Les deux cas d’usage précédemment cités se concentrent principalement sur l’assistance aux équipes de développement, de tests, de support et d’opérations. Cependant, l’IA générative peut également servir d’assistant pour le leadership des squads, notamment pour le Product Owner, le Business Analyst, le Tech Lead et même le UX Designer.
Contrairement aux cas précédents, où l’aide est principalement individuelle, ici l’IA générative est utilisée pour une assistance collective. C’est là que l’approche agentique prend tout son sens. Le Product Owner apporte sa connaissance du produit, le Business Analyst apporte son expertise métier, le Designer se concentre sur l’expérience utilisateur, et enfin le Tech Lead se charge des aspects “Software & Platform Engineering”.
Ces quatre rôles collaborent ensemble, et des essaims d’agents LLMs peuvent les aider à :
–> Concevoir des user stories précises et détaillées
–> Identifier les grandes fonctions à mettre en oeuvre
–> Générer la documentation liée au produits
–> Aider à la collaboration de la squad
–> Créer la proposition de valeur du produit et la marketer
Les possibilités sont nombreuses, et ce n’est pas un agent LLM unique (et d’un seul type) qui aide, mais une équipe d’agents collaborant pour résoudre une tâche donnée. Cette approche change de dimension tant d’un point de vue technique (multi-agents, multi-LLM, fine tuning) qu’opérationnel (sécurité, contrôle, collaboration, responsabilité).
En résumé
Plutôt que de réfléchir à l’adoption de l’IA générative pour des fonctions spécifiques du développement logiciel, nous sommes convaincus qu’il est plus pertinent d’adopter une approche “Top-Down”, en partant du produit fini et de la pratique du “Product Engineering”.
Avec une approche basée sur les personas et sur la squad produit, les possibilités offertes par l’IA générative sont infinies. Bien entendu, cette adoption et la transformation associée prennent du temps et passent par différentes étapes de maturité.
Awels Engineering peut vous accompagner sur ces trois dimensions de l’ingénierie (d’où notre nom). Qu’il s’agisse de phases de conseil, d’intégration ou même de développement de solutions, nous avons les capacités pour vous soutenir, notamment grâce à notre principal partenaire technologique : Druid AI.
Ce blog a abordé l’utilisation de l’IA générative pour la création de produits (“Product Engineering”), l’aide au développement (“Software Engineering”) et l’aide à l’utilisation de la plate-forme (“Platform Engineering”).
Reste un sujet : Quid de l’ingénierie de l’IA Générative elle-même ?
A suivre dans le prochain blog sur la ”GenAI Engineering”.
Pour plus d’informations ou pour discuter de la manière dont Awels Engineering peut vous aider à intégrer ces innovations dans votre domaine, n’hésitez pas à contacter : contact@awels-engineering.com.