Description
Durée
2 jours
Objectifs
Cette formation vise à transformer les développeurs en artisans du logiciel modernes, capables de produire un code de haute qualité tout en optimisant et en mesurant leur efficacité et celle de leur équipe. L'objectif est de marier l'excellence technique et la fierté du "Software Craftsmanship" avec les approches systématiques et basées sur les données du "Productivity Engineering" pour créer un impact durable sur les projets.
Programme (Jour 1)
Jour 1 : Le Software Craftsmanship, Fondement de la Productivité
L'objectif de cette première journée est de fournir aux participants la discipline technique et l'état d'esprit nécessaires pour produire un code maintenable et pour combattre la Dette Technique, l'antidote humain à la duplication encouragée par l'IA.
- Fondamentaux du Software Craftsmanship et du mindset Craft
Au-delà de l'Agile : Comprendre l'émergence du Software Craftsmanship comme réponse à la dérive de l'Agilité qui néglige l'ingénierie du code.
L'état d'esprit de l'artisan logiciel : Adopter la posture d'humilité et de bienveillance, et reconnaître que l'expertise d'un développeur exige l'apprentissage continu.
- Les Piliers Techniques du Craftsmanship (Refactoring & DDD)
Test-Driven Development (TDD) en pratique : Pratiquer le cycle TDD (Red/Green/Refactor) non seulement comme une technique de test, mais comme une technique de conception qui oriente le code vers la réponse stricte au besoin et garantit un filet de sécurité pour le Refactoring.
- Refactoring et amélioration continue du code : Utiliser le Refactoring (extraction, déplacement, renommage) comme l'antidote humain unique à la duplication de code. Le Refactoring permet de rendre le code auto-documenté.
Principes SOLID et Clean Code : Application pratique des principes de Clean Code pour atteindre un code lisible, maintenable et évolutif, car un code de mauvaise qualité (Red Code) présente 15 fois plus de défauts.
- Le Domain-Driven Design (DDD) pour les artisans : Utiliser le DDD pour s'assurer que le code modélise le métier (Langage Ubiquitaire) et pour structurer l'architecture en Contextes Délimités (Bounded Contexts), un prérequis pour les architectures découplées qui bénéficient de l'IA.
Programme (Jour 2)
Jour 2 : Mesure de l'impact et culture de l'efficacité
L'objectif de cette deuxième journée est d'introduire un cadre de mesure basé sur les données pour transformer l'investissement dans la qualité en une stratégie business, et d'apprendre à sécuriser l'adoption de l'IA.
- Introduction au Productivity Engineering (PE) et DevEx
Qu'est-ce que le Productivity Engineering ? Définir le PE comme l'approche systématique pour optimiser le flux de travail et la capacité de développement.
L'Expérience Développeur (DevEx) et la Satisfaction : Le bien-être est un facteur clé de performance. La satisfaction contribue à des taux de rétention 47 % plus élevés. La gestion de la Dette Technique a une influence positive sur le moral et la productivité des développeurs.
Le rôle de l'IA : L'IA augmente la satisfaction au travail, mais sans amélioration systémique, elle n'a aucun impact mesurable sur l'épuisement professionnel (Burnout). L'IA doit libérer du temps pour des tâches stratégiques et créatives.
- Mesurer et améliorer la productivité (Data-Driven Decisions)
Les frameworks de mesure :
Utiliser des frameworks comme DORA (Four Key Metrics - FKM) et le Code Health de CodeScene pour communiquer les risques techniques dans une terminologie orientée business.
Ateliers Pratiques : Identifier la dette technique la plus coûteuse : Apprendre à calculer la DT en mesurant le Travail Imprévu (Unplanned Work), qui doit être inférieur à 15 % pour les organisations hautement performantes. Prioriser le Refactoring des zones critiques via l'analyse des Hotspots (code à forte activité et mauvaise qualité).
- Stratégies d'amélioration et gains quantifiés : L'amélioration de la qualité du code peut augmenter l'efficacité de livraison de fonctionnalités d'au moins 25 % et se traduire par un doublement de la vitesse de développement. L'automatisation des tâches répétitives dans les pipelines CI/CD peut entraîner une réduction de 50 % du temps passé sur ces tâches.
Sécuriser le Code Généré par l'IA : Intégrer des outils d'analyse de code (SAST) et imposer une revue de code manuelle obligatoire pour le code IA. Prioriser le nettoyage de la dette de sécurité pour réduire le risque que les assistants IA reproduisent les vulnérabilités existantes.
- Culture et mise eno oeuvre (pérenniser le changement)
Créer une culture de l'artisanat et de l'apprentissage continu : Encourager la formation et l'expérimentation avec l'IA dans un environnement sûr (sandbox).
Le "Productivity Engineer" en tant que rôle : Adopter la discipline de travailler en petits lots (Working in small batches), qui est essentielle pour la stabilité des livraisons, surtout face à l'augmentation de la taille des changements de code induite par l'IA.
Plan d'action personnel et d'équipe : Mettre en œuvre des vues de Code Health pour prévenir le désalignement organisationnel et transformer la qualité du code en un indicateur clé de performance (KPI).
Matériel pédagogique
Les formateur.rices distribueront les supports de la formation au format électronique PDF à la fin de la formation.
Méthodes pédagogiques
50% théorie, 50% pratique
Votre crafter
Cyrille Martraire
CTO associé Arolla
Dorra Bartaguiz
Formatrice et CTO Arolla
Olivier Penhoat
Senior software craft engineer