Technology · · 5 min read

Meta utilise les données des modifications de code pour évaluer l’impact de l’IA sur l’ingénierie

Une conversation avec le chercheur de Meta Moritz Beller examine les indicateurs de productivité des développeurs utilisés par l’entreprise, les effets de l’IA et les limites des tests automatisés.

Meta utilise des mesures prises à partir de modifications de code individuelles pour comprendre comment les outils d’ingénierie et l’intelligence artificielle influent sur le travail des développeurs, selon un article de newsletter.getdx.com. Le chercheur Moritz Beller affirme que l’entreprise a constaté une baisse de plus de 40 % en glissement annuel du temps consacré à la rédaction d’une modification, alors même que les ingénieurs produisent davantage de modifications, et que celles-ci sont plus importantes.

Cette mesure, appelée temps de rédaction d’un diff, évalue l’effort actif consacré à la création, aux tests et à la revue d’une modification de code. Examiner les modifications individuellement offre à Meta une vision plus ciblée que le calcul de la productivité à partir de l’ensemble des tâches effectuées par un développeur au cours d’une journée.

Meta n’utilise pas cette mesure pour classer ou évaluer les ingénieurs individuellement. Elle examine plutôt les tendances observées entre les équipes, les services et l’entreprise dans son ensemble. L’objectif est de repérer les régressions, d’identifier les améliorations utiles et de déterminer où de nouveaux investissements dans les outils d’ingénierie sont justifiés.

Une vision plus détaillée de la productivité

L’entreprise considère le temps de rédaction d’un diff comme un indicateur parmi plusieurs autres. Le débit, la taille des modifications et leur qualité sont pris en compte parallèlement, car aucun indicateur unique ne peut décrire de manière fiable la productivité en ingénierie. Réduire le temps nécessaire pour achever une modification n’est, par exemple, pas forcément bénéfique si le code produit est de mauvaise qualité ou nécessite d’importantes corrections.

Cette approche permet également à Meta de vérifier si les changements apportés aux frameworks et aux outils destinés aux développeurs produisent des bénéfices concrets. L’article cite comme exemple la mémorisation automatique du compilateur React. Par rapport à l’ajout manuel d’une mise en cache, l’approche automatique du compilateur a réduit d’environ 30 % le temps nécessaire à la rédaction d’une modification. Beller considère des résultats de cette ampleur comme la preuve que des améliorations fondamentales de l’environnement de développement peuvent compter davantage que de petites retouches des interfaces.

La baisse du temps de rédaction ne s’explique pas entièrement par une saisie plus rapide ou par la génération de code. Beller estime que les développeurs utilisent peut-être le temps gagné pour rassembler du contexte et s’occuper des tâches qui entourent l’implémentation. La rédaction de prompts ne semble représenter qu’une faible part de cette activité supplémentaire.

À mesure que la génération de code devient moins coûteuse, le problème le plus difficile pourrait être de définir ce que le code doit faire. L’intention du développeur prend de la valeur lorsqu’un système automatisé peut produire rapidement une implémentation, mais risque de mal comprendre une demande incomplète.

Ce que les indicateurs de productivité ne mesurent pas

La télémétrie traditionnelle enregistre mieux les modifications de code qu’elle ne saisit le travail qui les précède. Les séances au tableau blanc, les séances de brainstorming et les discussions architecturales peuvent être essentielles au résultat sans laisser de lien clair avec un diff ultérieur. Les transcriptions de réunions et les autres éléments produits par l’IA pourraient à terme faciliter l’étude d’une partie de cette préparation.

Cela ne rend pas l’architecture moins importante. Éviter de rédiger un document de conception peut simplement déplacer la charge sur les évaluateurs, qui doivent alors déduire la structure visée à partir de l’implémentation finale. Une production plus rapide peut donc dissimuler un surcroît de travail ailleurs dans le processus d’ingénierie.

L’étude antérieure de Beller, Mind the Gap, comparait l’activité enregistrée automatiquement aux évaluations que les développeurs faisaient eux-mêmes de leur productivité. Le temps consacré au code était un facteur prédictif important, mais le repos, les interruptions et les astreintes influençaient également le sentiment de productivité. Une nouvelle version devrait examiner la manière dont les développeurs travaillent avec des agents, le degré de confiance qu’ils leur accordent et la question de savoir si la coordination simultanée de plusieurs tâches automatisées crée une charge cognitive excessive.

Une production plus importante ne garantit pas non plus une meilleure expérience de travail. La discussion souligne que la productivité peut augmenter tandis que la concentration, l’effort mental et la satisfaction globale restent inchangés ou diminuent. Les relations interpersonnelles, la compréhension partagée et les échanges informels de connaissances sont importants dans le travail d’ingénierie, mais restent difficiles à représenter dans la plupart des indicateurs.

Réduire les réunions inutiles peut améliorer le débit, mais supprimer trop de collaboration peut priver les équipes d’idées et de contexte. Les petits échanges sociaux comptent également : les recherches évoquées dans l’épisode ont montré que les conversations informelles avant et après les réunions prédisaient plus fortement la productivité déclarée par les participants que la qualité de la connexion à Internet.

Le défi des tests pour les agents d’IA

Les agents d’IA rendent peu coûteuse la création de tests unitaires et de tests de bout en bout, ce qui pourrait remédier à une lacune persistante chez les développeurs qui écrivaient auparavant peu de tests automatisés. Mais un ensemble de tests réussis peut donner une assurance trompeuse lorsque l’implémentation et les tests reposent sur la même interprétation erronée d’une demande ambiguë.

Un agent peut produire du code et des tests cohérents entre eux tout en ne répondant pas à l’objectif réel du développeur. Ce risque rend plus important le fait de définir la justesse avant de commencer l’implémentation. La conversation suggère que le développement piloté par les spécifications pourrait devenir le pendant du développement piloté par les tests, à mesure que les agents prennent en charge une plus grande part du travail de programmation.

La rapidité de l’implémentation automatisée accroît également le risque que les équipes construisent sans le savoir la même chose en parallèle. De meilleurs indicateurs devront tenir compte non seulement du code terminé, mais aussi de l’alignement, de la communication et du travail effectué en double. Les données de Meta au niveau des diffs permettent d’observer certains effets des nouveaux outils, mais la discussion plus large montre clairement que la productivité en ingénierie reste un problème humain et organisationnel autant que technique.

metadeveloper productivityartificial intelligencesoftware engineeringengineering metricsai agentssoftware testing

Continue reading

Read this in another language