Programmeur → Chef d'orchestre → Concepteur de mise en page Ce week-end, j'ai lu l'article de @addyosmani intitulé « Des chefs d'orchestre aux orchestrateurs : l'avenir du codage agentique » et j'ai été profondément touché par l'évolution du rôle des ingénieurs logiciels à l'ère du « codage agentique ». Il estime que les « codeurs » traditionnels sont désormais devenus des « chefs d'orchestre » d'IA individuelles et qu'à l'avenir, ils seront des « arrangeurs » ou des « coordinateurs » de plusieurs IA. Le rôle d'un ingénieur logiciel : Développeur → Chef d'orchestre → Concepteur d'interface. Développeur : Traditionnellement, un ingénieur logiciel est une personne qui écrit directement du code, communément appelée « développeur ». • Chef d’orchestre : Au stade actuel de l’IA, les ingénieurs humains collaborent étroitement avec un agent intelligent : ils définissent les objectifs, ajustent les instructions et vérifient les résultats. Ce rôle est comparable à celui d’un chef d’orchestre dans le cadre de la programmation avec l’IA. • Orchestrateur : Un rôle plus important à l’avenir. Les ingénieurs n’écriront plus chaque ligne de code étape par étape, mais géreront et dirigeront des « équipes d’IA » composées de plusieurs agents intelligents travaillant en parallèle, devenant ainsi des « orchestrateurs ». Les orchestrateurs de flux de travail asynchrones et parallèles peuvent assigner des tâches à plusieurs agents (par exemple, via des tickets GitHub), qui travaillent ensuite en parallèle en arrière-plan. Ces agents peuvent générer plusieurs demandes de fusion (PR), que les ingénieurs examinent, fusionnent et valident. Cette approche améliore l'efficacité du travail parallèle et permet aux développeurs de se concentrer davantage sur des aspects stratégiques tels que la conception, l'évaluation de la qualité et le pilotage du projet. Pourquoi ce changement est important 1. Amélioration significative de l'efficacité et de l'effet de levier : L'utilisation de plusieurs agents travaillant en parallèle permet d'effectuer plus rapidement plusieurs sous-tâches. L’orchestrateur n’a pas besoin d’être impliqué à chaque étape de la mise en œuvre, mais peut superviser la qualité, définir les objectifs et prendre la décision finale. Ainsi, une seule personne peut gérer plusieurs « développeurs d’IA », en se concentrant sur la prise de décision et la création de valeur. 2. Repositionner la valeur des développeurs : À l'ère de la programmation d'agents intelligents, la valeur fondamentale des ingénieurs humains ne réside plus dans la quantité de code qu'ils écrivent, mais dans la manière dont ils définissent les problèmes (intentions), dont ils décomposent les tâches et dont ils évaluent et intègrent les résultats. Il s'agit d'un rôle de niveau supérieur et plus stratégique : davantage un rôle de gestionnaire ou de décideur technologique qu'un simple exécutant. 3. La couche d'abstraction du développement logiciel ne cesse de s'améliorer. Du code machine primitif aux langages de haut niveau et aux frameworks, jusqu'aux agents intelligents codés en IA d'aujourd'hui, chaque étape a consisté à « libérer les développeurs des détails », nous permettant ainsi de traiter des problèmes plus complexes. • La programmation d'agents est la prochaine étape de cette tendance à l'abstraction. Bien que les perspectives soient séduisantes, Addy Osmani souligne également que cet avenir n'est pas sans défis ni risques : 1. Contrôle qualité et questions de confiance : Les systèmes multi-agents automatisent les tâches, mais peuvent produire du code bogué, non conforme ou mal conçu. Il incombe toujours aux ingénieurs de vérifier ce code. • Comment instaurer la confiance : La clé est de rendre la production des agents intelligents traçable et auditable (par exemple, par le biais de demandes de fusion, de tests et de documents). 2. Coordination et gestion des conflits : Lorsque plusieurs agents modifient le code source en parallèle, des conflits (dépendances de code, conflits de fusion, etc.) sont susceptibles de se produire. Des mécanismes (stratégies de ramification, division des tâches et espaces de travail isolés) sont nécessaires pour garantir la sécurité et la gérabilité du travail en parallèle. 3. Transmission et partage du contexte : Comment partager le contexte (état du code, intention de conception, décisions précédentes) entre les agents et entre les agents et les humains est un défi technique et de processus. L'absence de contexte partagé entraîne des doublons, des incohérences et une baisse d'efficacité. 4. Les défis des mots clés et de la définition des exigences : L'une des tâches de plus en plus importantes pour les humains consiste à rédiger des descriptions de tâches claires et structurées (telles que les problèmes et les spécifications). • Si la définition de la tâche n'est pas claire, l'agent risque de mal interpréter l'intention ou d'effectuer une implémentation indésirable. 5. Attribution des responsabilités et éthique : Lorsque l’agent effectue la majeure partie du travail : Qui est responsable de la qualité du code, des failles de sécurité et du respect des licences ? L’orchestrateur/développeur demeure responsable en dernier ressort. • Des mécanismes de gouvernance et des processus d’examen doivent être mis en place afin de garantir que l’IA n’introduise pas de problèmes graves. Recommandations pour les développeurs et les organisations 1. Cultivez une mentalité d'orchestration : les développeurs doivent passer de « Je fais tout » à « Je donne des instructions à l'IA pour qu'elle fasse des choses ». • Apprenez à décomposer les tâches, à fixer des objectifs pertinents pour les agents et à gérer plusieurs agents. 2. Mettez en place un mécanisme de contrôle qualité robuste. Utilisez un système de contrôle de version (tel que Git) pour permettre aux agents de soumettre des demandes de fusion de code. • Rédiger les tests, les faire générer et exécuter par un agent, puis faire examiner les résultats et la couverture des tests par des humains. • Établir des normes et des processus d'examen pour garantir une intervention humaine avant la fusion. 3. Renforcer l'expression et la formulation des exigences ; cultiver l'habitude de rédiger des descriptions de tâches claires (Problème / Spécification). • Fournissez un contexte suffisant dans les invites : structure du code source, documents de conception, décisions historiques, etc. • Amélioration des messages d'aide pour apprendre à l'agent intelligent à décomposer et à exécuter les tâches de manière appropriée. 4. Préparation des outils et de l'infrastructure • Adopter ou construire des outils adaptés à la collaboration multi-agents (plateforme d'orchestration, système de gestion des agents). • Mettre en place une infrastructure permettant de prendre en charge le travail parallèle et asynchrone des agents : par exemple, des espaces de travail isolés, des stratégies de branchement automatiques et une intégration CI/CD. 5. Cultiver la confiance et les mécanismes de gouvernance, et clarifier les limites de la responsabilité : ce que fait l'agent intelligent et ce que font les humains. • Définir le processus d’examen et les seuils de qualité. • Évaluer régulièrement la qualité et la sécurité des données fournies par l'agent, et ajuster en permanence les invites et les processus en fonction de l'expérience acquise. Adresse de l'article
Chargement du thread
Récupération des tweets originaux depuis X pour offrir une lecture épurée.
Cela ne prend généralement que quelques secondes.
