• Test-Driven Development

MAITRISER LE DESIGN EMERGEANT

On ne va pas se voiler la face, le Test Driven Development est rarement pratiqué en entreprise et pour cause, les écoles ne forment pas au TDD.
Cette formation est sans aucun doute la plus importante, car elle jette les bases indispensables pour d’autres pratiques comme :

• Refactoring Code Legacy,
• Automatisation de scénarios Behavior Driven Development (BDD),
• Domain-Driven Design (DDD) sur la partie technique

À l’issue de cette formation, les stagiaires connaîtront également les raisons de l'émergence du mouvement software craftsmanship et ses origines profondes. Ils apprendront l’art du clean code ainsi que les meilleures techniques pour produire du code propre et lisible et incarné par les mots du métier. Ils seront capables de pratiquer le TDD efficacement (signification des trois règles du TDD) en mode pair programming. Ils maîtriseront la technique du design émergeant pour produire un code à la fois propre et 100% couvert par des tests, gage de sérénité pour la mise en production.

Ils connaîtront la véritable signification des principes SOLID et apprendront d’autres principes liés au code propre comme KISS, YAGNY et la Boyscout Rule. Nous aborderons à travers quelques exemples de code, la notion de « fake » (mock & stub).

Cependant, la pratique du TDD sera difficile au quotidien si les spécifications ne sont pas déclinées en exemples concrets. Exprimer un test métier sur la base d’un exemple concret est très simple. Dans ce cadre, nous pratiquerons un atelier Example Mapping. Cet atelier permet de distiller une story, en règles métier illustré par des exemples concrets. Après l’atelier, les développeurs seront extrêmement motivés pour implémenter la story en TDD.

Au final, les développeurs porteront un intérêt plus grand sur la valeur métier de leurs développements.

Toutes ces notions seront découvertes à travers des ateliers et des exercices de code pendant deux jours animés en mode training from the back of the room (i.e. c’est en faisant qu’on apprend et retient mieux les choses).


Programme

Jour 1 – Les fondamentaux du Test-Driven Development

Introduction
• Les attentes de chacun
Software Craftsmanship
• Comprendre le mouvement, ses valeurs et ses principes
• Pourquoi Scrum ou Kanban ne sont pas suffisants ?
Clean Code
• Comprendre les principes du Clean Code
• Découverte du workflow métier à travers les Domain Events
• Produire un code expressif et facile à maintenir
Unit Testing
• Les propriétés FIRST
• La règle des trois A
• Comprendre la pyramide des tests
Test-Driven Development
• Le cycle de vie du TDD
• Les différentes écoles du TDD
• Comprendre la signification du design émergeant
• Les 3 règles du TDD
Recap
• Depuis la motivation métier jusqu’aux modèles envisagés
• Q & A et bilan des attentes de chacun pour cette première journée

Jour 2 – Maitriser Le Design Emergeant

Introduction
• Warm-up - Q & A
SOLID Principes
• SOLID est ses corollaires
• Etude des cinq principes illustrés par des exemples de code
Fake, Stub & Mock • Stub ou Mock ?
• Quand doit-on utiliser des Fakes
Example Mapping
• Pourquoi distiller une story
• Les bénéfices des exemples concrets
• Atelier Example Mapping
Recap
• Q & A et bilan des attentes de chacun après les deux jours


Méthode pédagogique

• 80% de travaux pratiques et 20% de théorie
• Combinaison de présentations, de livecoding, de discussions, d’ateliers et d’exercices pratiques
• La formation privilégie les échanges et la collaboration de tous les participants
• Animation repose sur l’approche proposée du “training from the back of the room”


Audience

• Expert Métier
• Développeur
• Architecte

• Profils techniques venir avec un laptop de développement pour des ateliers C# & Java


Livrables

• Les supports en anglais
• Les exercises


Lieu

• Le lieu de la formation -à Paris- sera communiqué un mois avant la date de la formation


Intra-Entreprises

• Sur Devis
• Durée adaptée
• Dans vos locaux
• Dates Flexibles


Témoignages

Nous avons fait le choix de faire appel à Bruno Boucard pour cette formation avec un double objectif ; le premier est d’accompagner la Société Générale dans sa transformation digitale en établissant un plan de formation pour les consultants en poste au sein de ses équipes et pour ceux susceptibles de les intégrer dans les mois à venir. Le second est de former nos consultants aux bonnes pratiques afin de compléter leur expertise technique par une méthodologie et une approche appropriée.

Paul BERNARDI (Manager chez Davidson Consulting)