Développement Agile
Agile Software Development
Formation créée le 19/03/2024. Dernière mise à jour le 08/07/2024.
Version du programme : 1
Programme de la formation
Dans le domaine du développement logiciel, les développeurs sont souvent confrontés à des défis complexes tels que des délais serrés, des exigences changeantes et la nécessité de maintenir une qualité élevée du code. Sans méthodologies et outils appropriés, ces défis peuvent entraîner du stress, une baisse de productivité et des projets qui ne répondent pas aux attentes des utilisateurs. Cette formation Développement Agile avec une mise en pratique continue va permettre de maîtriser l’organisation produit, les mesures d’avancement et les techniques de programmation et d’architecture logicielle indispensable à tout développeur de l’ère de l’intelligence artificielle. Au programme, une mise en situation réelle sur un produit avec de nombreux exercices de refactoring avancés afin de maîtriser les techniques pointues de la Testabilité, du Clean Code et de Refactoring. Quels bénéfices ? 1. Amélioration de la Flexibilité et de la Réactivité : Apprenez à adapter rapidement vos pratiques de développement aux exigences changeantes, en minimisant les perturbations et en maximisant la réactivité face aux demandes des clients. 2. Optimisation de la Productivité : Grâce à l’adoption de frameworks agiles tels que Scrum et Kanban, les participants pourront structurer mieux leur travail, prioriser efficacement les tâches et améliorer la collaboration au sein des équipes, résultant en une augmentation significative de la productivité. 3. Qualité Améliorée du Logiciel : Intégrez des pratiques telles que le Test-Driven Development (TDD) et le Continuous Integration/Continuous Deployment (CI/CD) pour réduire les bugs, améliorer la maintenance du code et garantir une qualité supérieure des logiciels développés. 4. Compétences en Leadership Technique : Les développeurs et les leaders techniques renforceront leurs compétences en gestion de projet et leadership, essentielles pour guider les équipes vers le succès dans des environnements de développement complexes. En participant à cette formation, vous équiperez non seulement vous-même mais aussi votre équipe des compétences nécessaires pour naviguer avec succès dans le paysage dynamique du développement logiciel, en augmentant l’efficacité, en réduisant les risques et en livrant des produits qui enchantent les utilisateurs
Objectifs de la formation
- Exploiter les principes avancés de l’agilité et des frameworks eXtreme Programming, Scrum et Kanban pour optimiser l’organisation et la réactivité des équipes de développement.
- Implémenter des techniques de pointe en développement logiciel, telles que le Test Driven Development (TDD) et Test Commit Release (TCR) pour élever la qualité et la robustesse du code.
- Booster ses développements avec des solutions d’intelligence artificielle.
- Maîtriser les stratégies sophistiquées de modélisation, de Clean Code, de refactoring et d’automatisation des tests pour garantir une fiabilité et une maintenabilité élevée des produits logiciels.
- Développer une expertise en estimation, planification et mesure des projets agiles pour améliorer la soutenabilité de l’équipe, la mesure et l’engagement de l’équipe face aux attentes métiers et clients dans une ambiance agréable et fun.
Profil des bénéficiaires
- Développeurs
- Architectes logiciels
- Tout membre d’une équipe de développement qui souhaite adopter une approche plus agile pour répondre rapidement aux changements du marché tout en assurant la livraison de solutions logicielles de haute qualité.
- Une participation des ScrumMasters, Testeurs, Assureurs Qualité, Ingénieurs système et Chefs de projet peuvent aussi avoir du sens. La formation peut être aménagée le jour J dés la détection de ces talents en adaptant légèrement les ateliers.
- Il est demandé aux participants de connaître les notions de base d’un langage de développement.
Contenu de la formation
-
TOUR DE TABLE
-
Jour 1: Fondations de l’Ingénierie et Développement Agile assistée par l’IA
- Objectif : Maîtriser les fondamentaux de l’agilité pour transformer les méthodes de travail et optimiser la gestion des projets de développement logiciel. Les participants apprendront à utiliser efficacement les frameworks agiles tels que Scrum et Kanban pour améliorer la collaboration et accélérer le processus de livraison.
- Introduction à l’Agilité : Présentation des principaux frameworks (Scrum, Kanban) et organisation de la formation.
- Pratiques d’Ingénierie Agile : Utilisation du backlog, priorisation, survol des cadres de travail, et accélération des développements logiciels.
- Agile Reprogramming : Augmentation de la rigueur, Test Driven Development (TDD), et exercices pratiques sur TDD et TCR (Test && Commit || Revert).
- AI-Driven Programming : Utilisation d’outils d’IA pour l’optimisation de tests, pratique en Coding Dojo assisté par IA, et identification des anti-patterns IA.
- Développement de Produit Agile : Techniques de création et gestion de backlog, mise en œuvre de Scrum et XP, et comparaison des méthodologies.
- Indépendance des Tests avec Doublures : Fonctionnement et mise en œuvre de doublures telles que Mocks, Fakes, Stubs, et Dummies.
- Stratégie de Tests : Approches variées de TDD, gestion de la dette technique, et méthodes de programmation en binôme.
-
Jour 2: Architecture & Design
- Objectif : Perfectionner les compétences en architecture et design de code pour assurer la production de logiciels de haute qualité et facilement maintenables. Ce segment vise à renforcer la compréhension des meilleures pratiques de programmation et de modélisation, essentielles pour la mise en œuvre du développement piloté par les tests (TDD) et l’amélioration continue du code existant.
- Clean Code et TDD Avancé : Modélisation rapide, meilleures pratiques en programmation orientée objet, et ateliers de conception rapide.
- Code Legacy et Refactoring : Techniques avancées de refactoring, mise en pratique avec des katas pour améliorer un code existant.
- Accélération : Théories et pratiques pour accélérer le développement, y compris Timeboxing et Mob Programming.
- Tests d’Intégration et Fonctionnels : Approches et pratiques pour les tests unitaires avancés, automatisation des tests pour les applications Web et GUI.
- Spécification par l’exemple : Mise en œuvre de BDD, TDR, et ATDD avec un focus sur l’automatisation.
- CI/CD, DevOps et Gestion de la Qualité : Intégration des tests dans les pipelines CI/CD, avec des travaux pratiques sur Jenkins, GitLab CI, et GitHub Actions.
-
Jour 3: Organisation & Automatisation
- Objectif : Intégrer des technologies avancées comme l’intelligence artificielle dans les processus agiles pour optimiser la planification et l’exécution des projets. Les participants exploreront comment l’IA peut soutenir une prise de décision plus rapide et plus précise dans la gestion de projet agile, tout en renforçant leur capacité à gérer des projets sans estimation traditionnelle pour une flexibilité maximale.
- Développement de Produit Agile Avancé : Approches centrées sur la valeur, utilisation de Kanban, et introduction aux méthodes sans estimation traditionnelle.
- Architecture & Programmation Intensif : Exploration de l’Architecture Hexagonale, stratégies de réécriture, et tests de cas difficiles.
- Présentation des Autres Approches : Exploration de frameworks agiles alternatifs tels que LeSS, FAST et Shape Up.
- Travaux Pratiques Intensifs : Journée complète d’exercices pratiques pour solidifier les connaissances acquises.
-
CONCLUSION
- Récapitulatif des points clés
- Ressources supplémentaires
- Et session de questions-réponses pour évaluer l’expérience de formation et recueillir les feedbacks.
Nos intervenants sont des "Coach Agile & Formateur" expérimentés
- Évaluation lors des ateliers tout au long de la formation Évaluation des acquis en fin de formation
- Théorie : 30 % (support de cours et slides) Pratiques : 70 % (exercices + programmation)