L’automatisation par cœur l’a été l’année dernière : l’IA apporte plus d’intelligence au développement de logiciels
L’intelligence artificielle (IA) contribuera-t-elle à faire passer les efforts DevOps de fragiles à agiles ? Il existe des spéculations dans l’industrie selon lesquelles l’IA peut considérablement accélérer non seulement la génération de code pour les logiciels, mais également tous les détails qui en découlent, notamment les spécifications, la documentation, les tests, le déploiement, etc.
L’IA est utilisée depuis plusieurs années sous sa forme opérationnelle et prédictive, travaillant en coulisse pour automatiser les flux de travail et la planification. Désormais, les responsables et professionnels informatiques exploitent le potentiel de l’IA générative.
Aussi : Le développement agile peut libérer la puissance de l’IA générative – voici comment
Au cours des trois prochaines années, le nombre d’équipes d’ingénierie de plates-formes employant l’IA pour augmenter le cycle de vie du développement logiciel augmentera probablement de 5 % à 40 %, selon une analyse publiée par une équipe d’analystes de Gartner dirigée par Manjunath Bhat.
Dans l’ensemble du secteur informatique, il existe un optimisme notable quant au potentiel que l’IA apporte au DevOps et aux pratiques Agile associées. « La combinaison des domaines DevOps et IA peut être complémentaire en améliorant toutes les phases du cycle de vie du développement logiciel et en permettant aux logiciels d’être commercialisés plus rapidement, de manière plus fiable et plus efficace », a déclaré Billy Dickerson, ingénieur logiciel principal chez SAS, à ZDNET.
Aussi : 3 façons d’accélérer la mise en œuvre et l’optimisation de l’IA générative
De nombreuses activités se déroulent autour de l’IA générative et du processus DevOps. Presque tous (97 %) des 408 responsables technologiques interrogés dans une enquête publiée par le spécialiste de l’automatisation Stonebranch ont indiqué qu’ils étaient « intéressés par l’intégration de l’IA générative dans leurs programmes d’automatisation ». Ces professionnels « voient genAI comme un outil essentiel pour connecter un ensemble d’outils plus diversifié et responsabiliser un plus large éventail d’utilisateurs », soulignent les auteurs de l’enquête.
L’IA stimule le DevOps, mais le DevOps stimule également le développement d’applications d’IA, comme le montre l’enquête Stonebranch. Au moins 72 % des personnes interrogées ont adopté des pipelines d’apprentissage automatique pour alimenter leurs initiatives d’IA générative.
Même si l’utilisation de l’IA générative pour créer ou modifier du code logiciel a suscité beaucoup d’attention, cela ne représente qu’une fraction du processus de développement. Il est temps d’examiner comment l’IA peut aider les professionnels et les responsables informatiques par d’autres moyens.
« Les développeurs passent en moyenne entre 10 % et 25 % de leur temps à écrire du code », ont écrit Bhat de Gartner et ses co-auteurs. « Le reste du temps est consacré à la lecture des spécifications, à la rédaction de la documentation, à la révision du code, à la participation à des réunions, à l’aide aux collègues, au débogage du code préexistant, à la collaboration avec d’autres équipes, à la mise en service d’environnements, au dépannage d’incidents de production et à l’apprentissage de concepts techniques et commerciaux. pour en nommer quelques uns. »
L’intégration de l’IA à « toutes les phases de la boucle de rétroaction DevOps – planification, révision et développement du code, construction, test, déploiement, surveillance, mesure – augmente la collaboration au sein des équipes et améliore positivement les résultats », a souligné Dickerson de SAS. Avec la planification, « l’IA peut rendre le processus de gestion de projet plus efficace en générant automatiquement des exigences à partir des demandes des utilisateurs, en détectant des délais non alignés et même en identifiant des exigences incomplètes ».
Dickerson a déclaré que l’IA peut également gérer les processus lourds de révision et de développement de code : « Non seulement l’IA peut offrir aux développeurs des suggestions pour générer automatiquement du code passe-partout, mais elle peut également contribuer au processus de révision de code. Cette approche amplifie la collaboration entre les équipes et peut conduire à plus d’innovation, des délais de mise sur le marché plus rapides et un meilleur alignement avec les objectifs commerciaux. »
Néanmoins, les responsables technologiques et les professionnels doivent faire preuve de prudence avant d’aller trop loin avec le DevOps alimenté par l’IA et d’autres pratiques Agile. « Une dépendance excessive présente des risques », a déclaré à ZDNET Ian Ferguson, directeur principal de SiFive et ancien vice-président du marketing chez Lynx Software Technologies.
Aussi : L’IA générative est la technologie que l’informatique ressent le plus de pression pour exploiter
« Si nous ne comprenons pas comment une plateforme d’IA autonome est parvenue à une décision, nous perdons notre responsabilité », a déclaré Ferguson. « Sans transparence dans le raisonnement d’une IA, nous risquons d’accepter aveuglément les résultats sans pouvoir les remettre en question ou les valider. Nous sommes confrontés à un avenir dans lequel un nombre très limité d’entreprises peuvent créer des systèmes compliqués, ou nous assistons à une réduction de la qualité des systèmes. «
Ferguson a exhorté à favoriser « une dynamique de collaboration entre les humains et l’IA dans DevOps. L’IA peut gérer le codage par cœur tandis que les humains doivent posséder la définition d’un ensemble complet d’exigences et de comportements du système », a-t-il expliqué.
Dickerson a également conseillé d’être prudent lors de l’adoption d’un DevOps piloté par l’IA : « Puisque l’IA peut automatiser de nombreuses tâches dans la boucle de rétroaction DevOps, il serait idéal d’avoir une surveillance humaine pour garantir que l’IA prend les bonnes décisions automatisées. l’approbation de chaque décision commerciale importante.
Dans leur rapport pour Gartner, Bhat et ses co-auteurs ont déclaré que l’application de l’IA à une partie du cycle de vie du développement logiciel « peut entraîner déplacement plutôt que économie effort, créant une fausse impression de gain de temps. Par exemple, le temps gagné lors du codage peut être compensé par une augmentation du temps consacré à la révision du code et au débogage. »
À lire également : Le secteur de l’IA est en plein essor : ChatGPT Enterprise compte désormais plus de 600 000 utilisateurs.
Il y a cependant des raisons de s’enthousiasmer quant à l’impact de l’IA sur DevOps. Les données suggèrent que l’IA peut être appliquée pour assister ou accélérer les étapes ultérieures du processus DevOps. En ce qui concerne la phase de construction et de test du logiciel, par exemple, « l’IA peut évaluer les entrées et les sorties du processus de construction et rechercher des modèles de défaillance pour aider à optimiser le temps nécessaire à la récupération », a déclaré Dickerson.
En outre, « grâce à sa capacité à analyser de grandes quantités de données et à faire des prédictions, l’IA peut également aider à analyser les résultats des tests. Cela peut aider à identifier les modèles de tests les plus percutants et les plus peu fiables pour aider à optimiser le processus de test ».
Au stade du déploiement, « l’IA peut automatiser le provisionnement, la configuration et la gestion des ressources d’infrastructure communes. À son tour, cela peut déclencher des déploiements utilisant ces artefacts générés automatiquement, ce qui peut alors permettre aux ingénieurs de consacrer plus de temps à des déploiements complexes », a déclaré Dickerson. .
Pour la surveillance et la mesure, « étant donné que les déploiements en entreprise peuvent produire une grande quantité de données, les équipes DevOps peuvent avoir du mal à digérer les informations nécessaires pour résoudre les problèmes qui surviennent », a déclaré Dickerson. « Pour faciliter cet effort, l’IA peut analyser les métriques et les journaux en temps réel pour détecter les problèmes beaucoup plus tôt et permettre une résolution plus rapide. En analysant les données et les modèles en continu, l’IA peut prévoir les goulots d’étranglement potentiels, identifier les domaines d’amélioration et aider à l’optimisation. toutes les phases du cycle de vie DevOps.
Ferguson a déclaré qu’avec la surveillance humaine, « l’IA peut renforcer des approches telles que DevOps et Agile ». Il a déclaré que la combinaison efficace de l’IA et des humains tout au long du cycle de vie des logiciels peut accroître la productivité et l’innovation : « Nous devons cependant façonner cet avenir de manière proactive, grâce à la transparence, au renforcement de la confiance, à la réingénierie des flux de travail et à la formation des compétences.