Catalogue des formations
Agile Dev Practices
Être un-e développeur-se encore plus agile !
Une formation mêlant théorie et pratique dans laquelle les participants découvriront et pratiqueront de nombreuses techniques et outils permettant de délivrer du logiciel de qualité de manière itérative et incrémentale.
Cette formation vise à aider les développeur-ses à devenir meilleurs dans la conception, l’écriture et la maintenance de code dans un environnement agile.
Pour qui est-ce ?
Si vous vous êtes déjà retrouvé dans l’une de ces situations, cette formation est définitivement pour vous :
- On a du mal à se mettre d’accord avec nos stakeholders métiers sur ce qui est attendu.
- Le temps de développement augmente anormalement pour la moindre fonctionnalité.
- On a peur de toucher le code et d’y engendrer des effets de bords.
- De nombreux bugs surviennent sur nos systèmes en production.
- Notre code est difficilement lisible et donc difficilement maintenable.
- On est obligé de faire des grosses campagnes de tests à chaque release par peur de casser quoi que ce soit.
- La motivation est en berne au sein de l’équipe car on a le sentiment de toujours travailler en mode pompier.
Il existe de nombreuses pratiques et techniques qu’on peut déployer au quotidien afin de lutter contre cette complexité « accidentelle ».
Objectifs pédagogiques
- Développer des réflexes de découverte et d’analyse de code (checklists, analyse static de code, linters, qualités des tests, hotspots analysis, …)
- S’améliorer dans les pratiques collaboratives intra-équipe (Pair programming , Mob Programming) mais aussi inter-équipes (Example Mapping).
- Maitriser les concepts liés au Clean Code et Clean Testing,
- Pratiquer le Test-Driven Development et comprendre qu’il ne s’agit pas d’une approche de test mais d’une approche de conception.
- Être capable de refactorer et améliorer n’importe quel code complexe.
- Comprendre comment combattre au quotidien la dette technique,
- Maitriser la Clean Architecture (Use Cases, Port / Adapters).
- Maitriser les patterns tactiques liés au Domain Driven Design.
- Comprendre comment écrire du code plus robuste à l’aide des concepts de la programmation fonctionnelle.
Contenu de la formation
Jour 1
- Tour de table et recueil des attentes
- Kata d’introduction à Test-Driven Development et Example Mapping
- Se faire une idée de la base de code : découverte du système du Bouchonnois et de ses contraintes
- Commencer par traiter les warnings comme des erreurs (Politique 0 Warning)
- Jauger la qualité des tests
- Améliorer la lisibilité / maintenabilité des tests automatisés
Jour 2
- Simplifier une suite de tests et renforcer sa confiance vis-à- vis de notre filet de sécurité
- Mettre en place des tests d’Architecture (automatisés)
- Introduction théorique et mise en application des concepts derrière la Clean Architecture
- Application du principe Tell Don’t Ask et renforcement de l’encpasulation de notre Domain model
- Combattre la Primitive Obsession
- Éviter les exceptions et rendre le code référentiellement transparent (Referential Transparency )
- En option : transformer notre système afin de le rendre « event-sourcé (Event Sourcing )
Concepts couverts
- Agilité et « Software Craftsmanship » : l’état d’esprit associé (humilité, apprentissage continu, règle du boy scout)
- Clean Code
- Clean Testing (Styles de tests, Test Data Builders, Approval Testing, Property-Based Testing)
- Analyse de code : static / comportementale
- Example mapping
- Test-Driven Development
- Techniques de refactoring: Strangler Pattern, Automatisation, Mikado
- Mutation Testing
- Pair / Mob Programming
- Test d’architecture
- Programmation fonctionnelle (Monads et autres functors)
- Clean Architecture
- Architecture Decision Records
- Event-Sourcing (En option)
Les bénéfices
Ce que vous êtes en droit d’attendre après cette formation :
- Amélioration de la qualité du code :
- Réduire le nombre de bug
- Meilleure fiabilité des applications
- Diminution des coûts de maintenance
- Augmentation de la productivité de l’équipe avec :
- Test-Driven Development (TDD)
- Refactoring Automatisé
- Domain-Driven Design (DDD)
- Réduction des coûts à long terme
- Adaptation aux tendances actuelles et futures
- Amélioration de la collaboration et de la communication
- Réduction des risques
- Meilleure adoption des principes d’amélioration continue
En résumé, cette formation peut transformer significativement les pratiques de développement, conduisant à une meilleure qualité de produit, une plus grande efficacité opérationnelle, et un avantage concurrentiel sur le marché
Modus Operandi
Les participants expérimenteront « l’apprentissage par la pratique » à travers différentes activités, le tout dans la bonne humeur et dans le respect de chacun-e :
- Ateliers permettant de stimuler l’intelligence collective.
- Itérer sur un système existant en Mob Programming que nous ferons évoluer à chaque apprentissage.
Bien que le code du système soit disponible en java et C#, l’ensemble des concepts abordés sont agnostiques du langage utilisé au quotidien.
Vous pourrez ainsi les utiliser quel que soit votre stack de développement.
Après la formation
Toutes les ressources utilisées lors de la formation vous seront fournies et vous serez en mesure de les utiliser dans vos contextes.
En plus de ces 2 journées de formation, nous vous offrons une session d’1 heure en ligne en individuelle afin de vous coacher sur la mise en place des pratiques et techniques couvertes au sein votre contexte.
Garantie
Si vous ne repartez pas en ayant appris quelque chose de nouveau ou si vous n’êtes pas complètement satisfait du service, vous pouvez obtenir un remboursement complet.
Aucune question ne vous sera posée.