Détartrage pour la livraison et utilisation de l’IA pour améliorer le développement de logiciels : enseignements de QCon New York
La piste Optimizing Teams for Fast Flow – Surviving in the Post-agile Aftermath at QCon New York 2023 comprenait deux conférences le matin qui visaient à remplacer un processus agile par l’ingénierie et la livraison de logiciels conversationnels à l’aide de l’IA.
Bryan Finster a donné une conférence sur Agile Rehab: Engineering for Improved Delivery.
Le plus gros problème dans la livraison de logiciels est d’appliquer des solutions à des problèmes que nous ne comprenons pas, a déclaré Finster. Si vous souhaitez utiliser des pratiques agiles, réfléchissez d’abord à la raison pour laquelle vous souhaitez les utiliser et au problème qui doit être résolu, a-t-il déclaré. Le principal problème qu’ils avaient était l’incertitude, où ils devaient concevoir des solutions pour offrir une meilleure valeur.
L’approche adoptée consistait à détartrer pour la livraison à l’aide d’une conception axée sur le domaine. Ils ont décomposé leur système en sous-domaines, défini des interfaces et examiné les dépendances. Ensuite, ils ont effectué une manœuvre inverse de Conway pour façonner l’organisation vers l’architecture souhaitée. Ils ont attribué des parties du système aux équipes de produits et créé une petite équipe de plate-forme.
Pour conduire des améliorations, ils ont défini des pratiques, a expliqué Finster. Ces pratiques étaient que certaines parties du système devaient être déployables indépendamment, où la coordination se faisait via l’API. Ils ont également imposé un niveau de couverture de test de 90 %, mais cela n’a pas fonctionné comme prévu, a déclaré Finster. Il en est résulté de nombreux tests sans signification. Il a insisté pour éviter cela.
Pour mettre en œuvre la livraison continue (CD), Finster a créé une carte de dépendance des pratiques décrites dans le livre. Cette carte a montré quelles pratiques devraient être mises en place pour permettre d’autres pratiques. Finster a mentionné que le CD a une certaine automatisation, mais c’est surtout une question de comportement, a-t-il dit.
L’approche adoptée était appelée « processus minimum viable ». Ils ont commencé sans processus et n’ont ajouté que de la valeur ajoutée, a déclaré Finster. Quelques exemples étaient l’affinement du travail en équipe, l’appariement et les révisions de code synchrones. Ils ont arrêté de faire des rétrospectives. Au lieu de cela, ils avaient des inspections et des améliorations quotidiennes.
N’imposez pas la couverture du code, a déclaré Finster. Leurs tests « aspiraient » et les tests étaient floconneux tout en ayant une couverture de 90%. Ils avaient des tests unitaires inutiles et les tests retardaient le développement. Leurs principaux problèmes avec les tests étaient un manque de connaissances en matière de tests et des exigences vagues.
Ils ont commencé avec BDD, définissant les exigences comme des tests d’acceptation, qui se sont avérés puissants pour les problèmes qu’ils rencontraient avec les exigences. Ils visaient de fines tranches de travail, quelque chose qui pouvait être achevé en moins de deux jours.
Finster a mentionné qu’ils avaient conçu leur pipeline pour les opérations. Le CD est là pour répondre aux incidents et résoudre en toute sécurité les problèmes d’exploitation, a-t-il déclaré. Ils utilisent toujours leur processus d’urgence.
L’un des résultats de l’approche qu’ils ont adoptée est qu’ils sont devenus fiables parce que tout le travail était petit. Un autre résultat était que leurs ingénieurs aimaient à nouveau le développement.
Finster a mentionné certaines des leçons apprises :
- Utilisez agile, mais seulement ce qui a du sens
- Si cela peut être fait avec l’ingénierie, faites-le de cette façon
- Le talent est là; les gens doivent avoir le bon problème à résoudre
- Prenez le CD au sérieux ; commencer par l’intégration continue pour que cela fonctionne
Lee Rehwinkel et Katharine Chajka ont expliqué comment l’intelligence artificielle (IA) peut aider à améliorer le processus de développement de logiciels en adoptant l’IA comme agent de flux de valeur dans leur conférence Tirer parti de l’IA pour identifier et corriger les inefficacités dans votre livraison.
Chajka a présenté une carte de flux de valeur, révélant que seule une petite partie du temps des organisations (8 %) est consacrée à l’écriture de code proprement dite. Elle a fait valoir que même si l’IA devait réduire à zéro le temps d’écriture du code, cela affecterait à peine le délai global de développement de nouvelles fonctionnalités logicielles. En effet, la plupart du temps dans le processus de livraison de logiciels est consacré aux tâches de planification, de conception, de test et de publication.
Au-delà de l’écriture de code, Chajka a montré comment l’IA peut également jouer un rôle important dans la gestion du flux de valeur. Elle a proposé que l’IA puisse aider à identifier les goulots d’étranglement là où le travail ne progresse pas correctement et prendre des mesures pour rationaliser le processus de livraison.
Rehwinkel a expliqué comment l’IA peut éliminer le jargon technique de la gestion de la chaîne de valeur, la rendant plus accessible dans toute l’organisation. L’IA permet aux membres de l’équipe de communiquer en termes simples, évitant ainsi un langage technique qui pourrait n’être compréhensible que par ceux qui ont une formation en gestion de flux de valeur.
Rehwinkel a présenté un exemple fonctionnel d’un agent de flux de valeur IA utilisant ChatGPT. L’exemple commençait par une requête exécutive typique telle que « de quoi devrais-je m’inquiéter ». ChatGPT a pu examiner les métriques de flux, identifier les tendances et générer une analyse. Cette analyse, bien que détaillée, était chargée de jargon technique. Rehwinkel a ensuite utilisé une deuxième étape ChatGPT pour créer un résumé qui traduisait les informations en termes plus compréhensibles. Il a montré comment ChatGPT peut également servir de « vérificateur de vérité », garantissant que les conclusions tirées correspondent aux données sous-jacentes.
Rehwinkel a souligné certains défis auxquels son équipe a été confrontée lors du développement d’une application de production utilisant cette méthodologie. Les problèmes incluent les chaînes de réponse ChatGPT chronophages, qui peuvent prendre plusieurs minutes et ainsi conduire à une expérience utilisateur médiocre. Il a également noté que ces modèles d’IA sont susceptibles de « jailbreaking », où les utilisateurs peuvent manipuler leurs requêtes pour modifier le rôle désigné du modèle ChatGPT.
!function(f,b,e,v,n,t,s)
if(f.fbq)return;n=f.fbq=function()n.callMethod?
n.callMethod.apply(n,arguments):n.queue.push(arguments);
if(!f._fbq)f._fbq=n;n.push=n;n.loaded=!0;n.version=’2.0′;
n.queue=[];t=b.createElement(e);t.async=!0;
t.src=v;s=b.getElementsByTagName(e)[0];
s.parentNode.insertBefore(t,s)(window,document,’script’,
‘https://connect.facebook.net/en_US/fbevents.js’);
fbq(‘init’, ‘842388869148196’);
fbq(‘track’, ‘PageView’);