Pragmatic Architecture
Cette formation fournit une connaissance complète des problématiques d'architecture en entreprise pour des systèmes complexes, basée sur l'état de l'art validé par des retours d'expérience chez des clients.
L'IA est un amplificateur qui, sans discipline technique, peut accélérer la Dette Technique (DT) et amplifier la duplication du code — le taux de réutilisation ayant chuté à moins de 10 % en 2024.* Le DDD, qui signifie conception dirigée par le métier, est la réponse structurelle à ce risque. Au-delà du simple prompt engineering, cette formation introduit le context engineering pour :
- Concevoir des interactions fiables et contrôlables avec les LLMs
(Large Language Models), en phase avec les bonnes pratiques du Software Craftsmanship. Le DDD fournit ce contexte solide et sécurisé en structurant la connaissance autour du Langage Ubiquitaire et des Bounded Contexts.
- Aquerir les pratiques qui garantissent que les assistants IA accèdent à des données internes fiables et contextuelles
(AI-accessible internal data), minimisant ainsi le risque que l’IA reproduise des vulnérabilités de sécurité existantes dans votre code source.
À travers un équilibre entre théorie fondamentale et exercices pratiques progressifs (incluant DDD, TDD, et BDD), issus de retours d’expérience concrets, nous découvrirons comment :
1. Modéliser le domaine métier dans le code (l'approche modéliser en code du DDD).
2. Utiliser le Behavior-Driven Development (BDD), un partenaire du DDD, pour formuler des spécifications claires et des prompts non ambigus.
3. Maintenir le contrôle et la responsabilité des résultats générés par l’IA, en assurant que le code de production reste la seule source de vérité.
La formation s’appuie sur des retours d’expérience concrets pour démontrer que l'adoption réussie de l'IA dépend de l'excellence technique (qualité du code) et d'une architecture qui favorise le découplage (loosely coupled architectures), principes au cœur du DDD.
À travers un équilibre entre théorie fondamentale et exercices pratiques progressifs, les participants découvrent comment maintenir le contrôle et la responsabilité des résultats générés par l’IA. La formation s’appuie sur des retours d’expérience concrets issus de projets clients réels, et privilégie l’expérimentation collective et l’échange entre pairs, quel que soit l’outil utilisé.
SOURCES
*Software developer productivity loss due to technical debt—A replication and extension study examining developers’ development work - ScienceDirect
Jour 1 : Fondations du contrôle et du contexte Solide
Nous commençons par maîtriser le fonctionnement des modèles (mécanismes d'Attention, large pattern recognition), en notant que les LLM sont stateless, tandis que les applications modernes (RAG, Chatbots) sont stateful.
- Limites et risques : L'IA est non-deterministic :
avec une Explicability low et est sujette aux hallucinations. La Prompt-sensitivity est essentielle, car l'IA tend à reproduire les vulnérabilités de sécurité existantes (comme le cross-site scripting ou les injections SQL) si elle ne s'appuie pas sur un contexte solide.
- L'impératif du craftsmanship :
l’adoption de l’IA est régie par le Jevon Paradox : elle augmente l'efficacité mais peut aussi augmenter la quantité de Dette Technique (DT), qui gaspille 23 % à 42 % du temps de développement.
Contrer la Duplication L'IA encourage la duplication, comme en témoigne la chute du taux de réutilisation du code (Moved code) de 25 % à moins de 10 % en 2024. Le développeur doit se concentrer sur sa capacité unique à « simplifier » et à « consolider » le code, travaillant à la où l'humain et l'IA travaillent au mieux ensemble (Jagged frontier)
Code Généré : L'approche de la génération de code via l'IA, y compris le Vibe coding , nécessite des tests solides pour s'assurer que le Prompt-maintainable code généré est fiable.
- Maîtrise du prompting et de la clarté
Pour contrer la Prompt-sensitivity des LLMs (Large Language Models), nous apprenons à structurer des requêtes non ambiguës.
Préparation du Contexte : Optimiser l'utilisation des fenêtres de contexte (Explicit context window size, Context chunking) et des techniques d'augmentation (RAG, CAG).
Techniques de Clarté Craft : Les participants apprennent à “Start small, by hand” pour valider les étapes.
- Les agents et la gestion dynamique du savoir
Les agents permettent à l'IA d'agir de manière autonome, mais nécessitent un contrôle strict du contexte pour éviter la dérive et la fuite de données (Context Leakage).
Orchestration des Tâches : Les participants découvrent les boucles d'agents (Agents: loop with tools) et la pratique essentielle de “Plan then execute”. Il est crucial d'assigner des rôles via different agents (persona) pour structurer les réponses.
Contrôle du Flux de Contexte : Maîtriser les pratiques de gestion dynamique du contexte : Context-passing, Context reset, Context bloat, Context Compression.
Feedback et Validation Externe : L'humain doit rester dans la boucle (Human in the loop) pour valider les sorties et corriger (Inject feedback to next loop).
Le contrôle passe par la capacité à revoir les plans (Review the plan) et à utiliser des “Projections to help reviews”.
- Les systèmes convergents et outils
Le Context Engineering est la conception d'un système dynamique qui converge vers un résultat souhaité (designing a dynamic system that converges).
Intégration d'Outils : Utiliser des Micro-Context Providers (MCP) pour intégrer le contexte local et sécurisé. Des exemples pratiques seront montrés (ex. : Examples: jsonpath, Cline builtin MCP servers)
Jour 2 : IA, Architecture et Stratégie de Pérennité
L'objectif est de mettre en œuvre les outils et les processus nécessaires pour maintenir l'IA sous control grâce à la technique des 4 quadrants.
- Software Engineering with AI :
découverte de l’antagonist process : intent -> code, tests -> verify both against each other [Existing Program], similaire au cycle TDD (Red/Green/Refactor).
- Documentation et Knowledge Management :
La Living Documentation est revisitée comme un outil de Context Engineering qui se sert de l'IA (Reserve-engineering ideas, ADR) avec les techniques comme l'augmentation de code (code augmentation) pour être durable et évolutive/
Le concept de “Living diagrams on demand” (or regularly) est exploré pour visualiser la Santé du Code (Code Health) et l'alignement organisationnel.
- Tests et Qualité :
L'IA amplifie la duplication de code (6 % plus rapide que prévu en 2024), qui est directement corrélée aux défauts. Face au risque de "Red Code" (code de mauvaise qualité) présentant 15 fois plus de défauts, les tests deviennent critiques.
Nous introduisons les “Architecture Tests : enforced guidelines” pour garantir que la structure architecturale est respectée.
Les techniques de tests laborieuses reviennent en force (Double-run testing, model-based), complétées par les tests automatiques avancés comme le PBT (Property Based Testing).
- Product discovery et livraisons :
L'IA est utilisée pour accélérer la phase de conception produit par Ideation, critique et la génération rapide de “Quick executable proof of concept”. L'accent reste mis sur le respect de la pratique DORA fondamentale de “Working in small batches” pour maintenir la stabilité des livraisons.
- Écosystème outils et architecture IA
L'IA est un amplificateur. Nous examinons les outils clés comme Copilot, Cursor, et Claude Code et leur intégration dans l'IDE. Ces assistants sont, par essence, des systèmes de Retrieval-Augmented Generation (RAG) qui s'appuient sur le contexte des fichiers ouverts (onglets voisins) pour améliorer la pertinence des suggestions.
- L'évolution des rôles (l'humain au cœur)
L'adoption de l'IA sans excellence technique conduit à une réduction de la stabilité de livraison et à une érosion de la réutilisation du code (le taux de réutilisation a chuté de 25 % en 2021 à moins de 10 % en 2024). Face à cette accélération de la duplication, l'avantage humain unique est la capacité à « simplifier » et à « consolider » le code.
Cette mutation exige d' anticiper l’évolution des rôles. Les développeurs se transforment en vérificateurs, orchestrateurs et concepteurs de contexte. Cela donne naissance à des spécialisations stratégiques : les Meta-developers (experts en flux d'IA), les Product-dev roles (experts en alignement métier/code), et les hardcore dev, dont la maîtrise du DDD et du Software Craftsmanship est le principal atout pour garantir que le code généré est sécurisé et maintainable.
La formation est donnée en français ou en anglais. Par contre les supports de formation sont en anglais. Durant la formation, les apprenti.e.s seront incité.e.s à travailler
en pair programming, sans caractère obligatoire.
La formation cible tous les rôles impliqués dans la conception, la construction et la maintenance de logiciels de haute qualité, où la complexité métier est élevée :
- Développeuses et Développeurs (Full-stack, Back-end)
- Architectes logiciels, tech leads, engineering managers
- Product Owners (PO), Business Analysts et Experts Métier
Professionnels de la Sécurité
Cette formation est intensive et repose sur des ateliers pratiques (souvent appelés katas ou exercices de Refactoring). Une expérience en développement logiciel (vivement recommandé). Une première expérience avec un coding assistant ou un chat IA est préférable mais non indispensable.
- Expérience en Programmation :
Une expérience pratique dans l'écriture, la lecture et la modification de code dans un langage orienté objet est requise. Le programme implique l'application intensive du Refactoring (Extraction, Renommage, Déplacement) et du Test-Driven Development (TDD).
- Connaissance des Principes du Craft :
Une familiarité avec les concepts de base du Software Craftsmanship est nécessaire, tels que les principes de Clean Code (comme le faible couplage et la forte cohésion) et les règles de conception (comme la Loi de Demeter ou Tell, Don’t Ask).
- Postures Professionnelles :
Le succès de l'intégration de ces pratiques et la progression dans le craft nécessitent d'adopter un état d'esprit orienté vers l'humilité et l'expérimentation, essentielles pour le Pair Programming et la transmission du savoir-faire.
Les formateur.rices distribueront les supports de la formation au format électronique PDF à la fin de la formation.
50% théorie, 50% pratique
2 jours
CTO associé Arolla
Formatrice et CTO Arolla
Senior software craft engineer