Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Au-delà du Buzz : L'IA dans le développement lo...

Au-delà du Buzz : L'IA dans le développement logicielle, assistant ou agent de code ?

L’IA bouleverse notre manière de coder, mais entre les promesses marketing et la réalité, où en sommes-nous vraiment ?
Ce talk propose un tour d’horizon pragmatique des outils d’IA dans le développement logiciel, des assistants de code (comme GitHub Copilot et Cursor) aux agents de codage autonomes en plein essor (comme Replit Agent, v0, SWE-agent...).
Quels outils répondent aux besoins réels ? Quels sont les pièges ? Et comment choisir la bonne solution sans se laisser happer par le bruit ambiant ? Venez découvrir ce qui fonctionne vraiment, les défis d’adoption, et ce qui arrive de plus intéressant dans l’écosystème CI/CD.

Wassel Alazhar

November 28, 2024
Tweet

More Decks by Wassel Alazhar

Other Decks in Technology

Transcript

  1. Naji Alazhar Analyste quantitatif et AI Engineer. Il conçoit et

    développe des applications LLM, ainsi que des modèles pour le pricing et la couverture d'instruments financiers. Wassel Alazhar Consultant, architecte et développeur. Il aide ses clients à définir leurs stratégies technologiques, concevoir des systèmes dʼinformation adaptés et constituer des équipes qui livrent du logiciel en continu. Qui Sommes-nous ?
  2. Au programme Introduction Buzz ou réalité ? Assistants ou Agents

    de code Une question dʼautonomie Assistants Ce qui change vraiment dans nos pratiques Agents de code Promesses, limites et usages concrets Défis et Opportunités Perspectives et Conclusion
  3. Assistants : Un IDE augmenté ? Développeur IDE Suggestion Action

    Décision Problem description Résolution
  4. Agents de code : Les prochains “compilateursˮ ? LLM Tools

    Environment Problem description (aka issue) Resolution as Code (aka commit / Pull Request) Développeur
  5. Assistants ou Agents : une question dʼautonomie Critère Assistant de

    code Agent autonome de code Autonomie Partiellement autonome : vous guide. Beaucoup plus autonome : exécute des tâches. Interaction Vous propose des suggestions (complétion, snippets). Prend des décisions pour résoudre un problème. Cas dʼusage Accélère lʼécriture de code (et des tests). Évite du contexte switching (moins perdre de temps sur Google et StackOverflow) Effectue une tâche de bout en bout (ex. Résoudre une issue et soumettre une PR en autonomie). Exemples GitHub Copilot, Cursor AI, Windsurf… Replit Agent, SWE-agent, BOLT.new, v0, SWECrafter, Github Copilot Workspaces, Cursor Composer…
  6. Complétion de code dans un bon IDE Démo : implémentation

    en suivant une approche “test-firstˮ avec un IDE JetBrains et lʼassistant Github Copilot
  7. Agents de code : Ça a beaucoup évolué depuis mai

    24 Replit Agent SWE-agent OpenHands
  8. Agents de code Démo 6 septembre 2024 : Développement et

    déploiement d'une Application Web avec Replit Agent en quelques minutes
  9. Agents de code dans votre CI Démo : Faire tourner

    un agent de code dans gitlab-ci pour résoudre des issues automatiquement
  10. Agents de code dans votre CI Démo : Faire tourner

    un agent de code dans gitlab-ci pour résoudre des issues automatiquement
  11. Agents de code : Comment ça marche ? - Le

    LLM est un composant d'un agent. - L'agent utilise le LLM et interagit avec son environnement pour résoudre une tâche donnée. - L'agent interagit avec son environnement en appelant des outils et en fournissant leurs résultats comme retour d'information au LLM. Agent System prompt User prompt LLM Tools Environment
  12. Agent Agents de code : Reason and Act ReAct System

    prompt User prompt LLM Tools Reason (aka thought) Act Observation Final Answer Environment Reason, Act, Observation… - Describe tools - Reason then act (use tools) Describe the task to be solved Source: ReAct: Synergizing Reasoning and Acting in Language Models (https://arxiv.org/abs/2210.03629
  13. - ACI Agent/Computer Interface) : Considérer l'agent LM comme un

    utilisateur et optimiser son expérience utilisateur. - Fournir des démos et des exemples : Réduit le besoin de conception complexe de prompts. - L'agent a besoin de feedback : Essentiel pour améliorer ses performances. Agents de code : principaux constats Source: SWE-agent: Agent-Computer Interfaces Enable Automated Software Engineering
  14. Les Agents de code ont besoins de feedback L'agent peut

    corriger ses erreurs grâce à un feedback continu basé sur les tests
  15. Opportunité #1 : économique - Coût total : 1 000

    $ pour traiter 500 issues 2 $ par issue) - Issues résolues : 265 53 % - Économies potentielles : 366,025 $ 500 issues 2.77 jour homme par issue selon une étude (*) 265 issues résolues (*) “It costs on average 2.77 days for developers to create pull requests…ˮ [samples from SWEBench-Lite dataset] Source: “AutoCodeRover: Autonomous Program Improvementˮ paper. https://arxiv.org/pdf/2404.05427 La tentation pour un décideur
  16. Défi #2  Comment valider ? A PR, Great! Does-it

    work? Avec un code testé cʼest plus simple À quoi bon, si : - Compliqué de tester / valider - Beaucoup de déchet
  17. Défi #2  Agents de code avec approche test-first L'agent

    peut corriger ses erreurs grâce à un feedback continu basé sur les tests
  18. Opportunité #2  Démarrage rapide Un scaffolding surpuissant 🚀 Gain

    de temps ⏱ Pouvoir générer rapidement la structure initiale d'un projet. Prototypage rapide 🧸 Possibilité de tester des idées et des architectures en un temps record. Itérations accélérées 🔄⚡ Valider des idées ou expérimenter lors des phases initiales du développement.
  19. Défi #3  Intégrer à une base existante Problèmes fréquents

    - Manque de contexte global : architecture, conventions, historique. - Complexité du code existant : Les agents peinent encore avec des architectures complexes ou mal documentées. - Souvent non testable - Risque de régressions : Les modifications automatisées peuvent introduire des bugs non détectés. Résultats limités Fonctionne mieux pour : - des tâches simples ou isolées - documenter Sceptique quant à l'efficacité actuelle pour gérer des refactorings complexes ou une maintenance durable. … Mais ça progresse très très vite.
  20. Défi #3  Intégrer à une base existante 🤖 ✅

    Better resolution rate ✅ Decreased resolution cost ✅ Well tested codebase ✅ Enforced code standards ✅ Clear testing strategy ✅ Effective CI/CD pipelines ✅ Clear Issue formulation Ça marchera bien pour ceux qui avaient moins de problèmes Nous recommandons ces pré-requis
  21. Agents de Code : Opportunités et Progrès Adoption actuelle Le

    boom des assistants. Lʼémergence des agents : beaucoup dʼoutils, mais peu dʼadoption réelle. Opportunités Démarrage ultra-rapide pour de nouveaux projets (scaffolding +++). Automatisation efficace de tâches simples (petites corrections, PRs). Possible de tout héberger “localementˮ pour plus de contrôle (valable pour assistants et agents). Progrès Les agents évoluent vite, mais restent adaptés aux tâches spécifiques… pour le moment.
  22. Limites et défis dʼintégration Intégration des agents Pas encore prêts

    pour les problèmes complexes ou bases legacy. On y travaille ! 😉) Dépendent fortement du contexte global (architecture, historique…). Une base de code bien testée est un pré-requis Générer des tests pour votre base de code legacy ne va pas marcher ! Les agents ne sont pas encore au point pour la génération des tests (c.f. SWTBench*) Souvent, le code n'est pas testable dans une codebase non testée Migration et maintenance Prometteur pour migrations floues : ex. Pandas → Polars, Pydantic v1 → v2… Limité pour les dépendances ou mises à jour de langage : préférez OpenRewrite. (*) Source: SWTBench: Testing and Validating Real-World Bug-Fixes with Code Agents
  23. "LʼIA dans le développement nʼest pas encore une baguette magique,

    mais elle ouvre la voie à des approches innovantes. Testez, apprenez, et trouvez ce qui fonctionne pour vous."