SlideShare une entreprise Scribd logo
SI LE TDD EST MORT…
ALORS PRATIQUONS
UNE AUTOPSIE
Bruno BOUCARD - t @brunoboucard Thomas PIERRAIN - t @tpierrain
learn.tocraft.fr
Aujourd’hui, très peu de gens pratiquent leTDD !
Bruno BOUCARD - t @brunoboucard Thomas PIERRAIN - t @tpierrain
GREEN
All tests are
passed
Test runs
and fails
RED
REFACTOR
Next test
UN CONSTAT
DOMMAGE …
RASSURANT EFFICACE ENCOURAGEANT
… car quand on y arrive, leTDD c’est
Bruno BOUCARD - t @brunoboucard Thomas PIERRAIN - t @tpierrain
CONSTAT#1
“Par où on commence ?”
Bruno BOUCARD - t @brunoboucard Thomas PIERRAIN - t @tpierrain
PAS DE PRÉCIPITATION POUR CODER !
CREUSER SON
SUJET
FORMULER A
HAUTEVOIX
UTILISER LE
“SHOULD”
Bruno BOUCARD - t @brunoboucard Thomas PIERRAIN - t @tpierrain
PRÉPARER SON CERVEAU ESTESSENTIEL
POURQUOI « SHOULD » ?
Bruno BOUCARD - t @brunoboucard Thomas PIERRAIN - t @tpierrain
“SHOULD” COMME UN MESSAGE À SOI-MÊME
AFIN DE CIBLER LE COMPORTEMENTÀTESTER
Bruno BOUCARD - t @brunoboucard Thomas PIERRAIN - t @tpierrain
Bruno BOUCARD - t @brunoboucard Thomas PIERRAIN - t @tpierrain
INTERRESSANT, MAIS…
“En tant que développeur …”
Bruno BOUCARD - t @brunoboucard Thomas PIERRAIN - t @tpierrain
UN SACRE BOSSEUR CE MICHEL-ANGE …
Bruno BOUCARD - t @brunoboucard Thomas PIERRAIN - t @tpierrain
ALORSTRAVAILLONS NOS AUTOMATISMES !
AS A JITCOMPILER FOR OUR BRAIN!
Bruno BOUCARD - t @brunoboucard Thomas PIERRAIN - t @tpierrain
AVEC COMME OUTIL
Bruno BOUCARD - t @brunoboucard Thomas PIERRAIN - t @tpierrain
CODE KATA CODING DOJO
MAIS LETDD ESTUN ARTDIFFICILE …
Bruno BOUCARD - t @brunoboucard Thomas PIERRAIN - t @tpierrain
QUI COMPREND PLUSIEURS SOUS-DICIPLINES
Designing Clean
Code
DesigningTest
Cases
Driving
Development
withTests
Refactoring
Safely
CONSTAT#2
“Si je ne comprends toujours
pas ce qu’on me demande de
faire …”
Bruno BOUCARD - t @brunoboucard Thomas PIERRAIN - t @tpierrain
CHANGEONS DE POSTURE !
Bruno BOUCARD - t @brunoboucard Thomas PIERRAIN - t @tpierrain
CHALLENGEONS LES ACTEURS DU DOMAINE
Bruno BOUCARD - t @brunoboucard Thomas PIERRAIN - t @tpierrain
À travers des conversations avec …
En mode 3 amigos
ses collègues
ses utilisateurs
équipes connexes
QUELQUES OUTILS POUR ÇA
LES 5 « POURQUOI ?» IMPACTMAPPING
Bruno BOUCARD - t @brunoboucard Thomas PIERRAIN - t @tpierrain
REDONNONS DU SENS AU DEV
Bruno BOUCARD - t @brunoboucard Thomas PIERRAIN - t @tpierrain
OK MAIS…
“Comment être efficace dans
nos efforts et notre
investissement ?”
Bruno BOUCARD - t @brunoboucard Thomas PIERRAIN - t @tpierrain
TDD MINIMALISME ETEFFICACITE
Bruno BOUCARD - t @brunoboucard Thomas PIERRAIN - t @tpierrain
DOUBLE LOOP- OUTSIDE-IN
Bruno BOUCARD - t @brunoboucard Thomas PIERRAIN - t @tpierrain
CONSTAT#3
“Au bout d’un moment, leTDD et
nos tests nous ont ralentis …
… sont devenus un problème
pour toute l’équipe.”
Bruno BOUCARD - t @brunoboucard Thomas PIERRAIN - t @tpierrain
LE SECRET? TESTER …
METHODES
Bruno BOUCARD - t @brunoboucard Thomas PIERRAIN - t @tpierrain
Bruno BOUCARD - t @brunoboucard Thomas PIERRAIN - t @tpierrain
BEHAVIOURS!!!
Bruno BOUCARD - t @brunoboucard Thomas PIERRAIN - t @tpierrain
BEHAVIOURS!!!
CONSTAT#4
“Ça va moins vite !”
Bruno BOUCARD - t @brunoboucard Thomas PIERRAIN - t @tpierrain
SERIEUX ?!?
Bruno BOUCARD - t @brunoboucard Thomas PIERRAIN - t @tpierrain
NE PAS NÉGLIGER NOTRE MANIÈRE DE PENSER
Bruno BOUCARD - t @brunoboucard Thomas PIERRAIN - t @tpierrain
SYSTÈME 1 SYSTÈME 2
17 x 24Une hirondelle ne …
EN CONCLUSION, C’EST VRAI QUE LETDD …
parce que très souvent on en fait mal
Bruno BOUCARD - t @brunoboucard Thomas PIERRAIN - t @tpierrain
On n’en fait pas …
Bruno BOUCARD - t @brunoboucard Thomas PIERRAIN - t @tpierrain
GREEN
RED
REFACTOR
RED, GREEN, REFACTOR …
Ce n’est que l’ossature,
ce n’est pas l’âme duTDD …
Ce n’est pas suffisant !
L’ESSENTIEL N’ESTPASVISIBLE …
MAIS NEVOUS LAISSEZ PAS
IMPRESSIONNER !
Bruno BOUCARD - t @brunoboucard Thomas PIERRAIN - t @tpierrain
CAR SI ON SUITQUELQUES PRATIQUES …
1
DOUBLE
BOUCLE
-
OUTSIDE-IN
COMMUNICATION
ORALE
-
SHOULD
2 3
METHODES
-
BEHAVIOURS
0 CREUSER SON SUJET
Bruno BOUCARD - t @brunoboucard Thomas PIERRAIN - t @tpierrain
4 S’ENTRAÎNER RÉGULIÈREMENT
Bruno BOUCARD - t @brunoboucard Thomas PIERRAIN - t @tpierrain
MERCI AVOUS !
Bruno BOUCARD - t @brunoboucard Thomas PIERRAIN - t @tpierrain
NOS OUVRAGES

Contenu connexe

En vedette

Mocking Demystified
Mocking DemystifiedMocking Demystified
Mocking Demystified
Marcello Duarte
 
Top tips my_sql_performance
Top tips my_sql_performanceTop tips my_sql_performance
Top tips my_sql_performance
afup Paris
 
Why elasticsearch rocks!
Why elasticsearch rocks!Why elasticsearch rocks!
Why elasticsearch rocks!
tlrx
 
Understanding Craftsmanship SwanseaCon2015
Understanding Craftsmanship SwanseaCon2015Understanding Craftsmanship SwanseaCon2015
Understanding Craftsmanship SwanseaCon2015
Marcello Duarte
 
Writing infinite scalability web applications with PHP and PostgreSQL
Writing infinite scalability web applications with PHP and PostgreSQLWriting infinite scalability web applications with PHP and PostgreSQL
Writing infinite scalability web applications with PHP and PostgreSQL
Gabriele Bartolini
 
L'ABC du BDD (Behavior Driven Development)
L'ABC du BDD (Behavior Driven Development)L'ABC du BDD (Behavior Driven Development)
L'ABC du BDD (Behavior Driven Development)
Arnauld Loyer
 
Behat 3.0 meetup (March)
Behat 3.0 meetup (March)Behat 3.0 meetup (March)
Behat 3.0 meetup (March)
Konstantin Kudryashov
 
Performance serveur et apache
Performance serveur et apachePerformance serveur et apache
Performance serveur et apache
afup Paris
 
TDD with PhpSpec - Lone Star PHP 2016
TDD with PhpSpec - Lone Star PHP 2016TDD with PhpSpec - Lone Star PHP 2016
TDD with PhpSpec - Lone Star PHP 2016
CiaranMcNulty
 
Caching on the Edge
Caching on the EdgeCaching on the Edge
Caching on the Edge
Fabien Potencier
 
The Wonderful World of Symfony Components
The Wonderful World of Symfony ComponentsThe Wonderful World of Symfony Components
The Wonderful World of Symfony Components
Ryan Weaver
 
PHPSpec - the only Design Tool you need - 4Developers
PHPSpec - the only Design Tool you need - 4DevelopersPHPSpec - the only Design Tool you need - 4Developers
PHPSpec - the only Design Tool you need - 4Developers
Kacper Gunia
 
Design how your objects talk through mocking
Design how your objects talk through mockingDesign how your objects talk through mocking
Design how your objects talk through mocking
Konstantin Kudryashov
 
Password (in)security
Password (in)securityPassword (in)security
Password (in)security
Enrico Zimuel
 
Measuring Web Performance - HighEdWeb Edition
Measuring Web Performance - HighEdWeb EditionMeasuring Web Performance - HighEdWeb Edition
Measuring Web Performance - HighEdWeb Edition
Dave Olsen
 
Composer in monolithic repositories
Composer in monolithic repositoriesComposer in monolithic repositories
Composer in monolithic repositories
Sten Hiedel
 
I.T.A.K.E Unconference - Mutation testing to the rescue of your tests
I.T.A.K.E Unconference - Mutation testing to the rescue of your testsI.T.A.K.E Unconference - Mutation testing to the rescue of your tests
I.T.A.K.E Unconference - Mutation testing to the rescue of your tests
Nicolas Fränkel
 
Love and Loss: A Symfony Security Play
Love and Loss: A Symfony Security PlayLove and Loss: A Symfony Security Play
Love and Loss: A Symfony Security Play
Kris Wallsmith
 
Command Bus To Awesome Town
Command Bus To Awesome TownCommand Bus To Awesome Town
Command Bus To Awesome Town
Ross Tuck
 
Driving Design through Examples
Driving Design through ExamplesDriving Design through Examples
Driving Design through Examples
CiaranMcNulty
 

En vedette (20)

Mocking Demystified
Mocking DemystifiedMocking Demystified
Mocking Demystified
 
Top tips my_sql_performance
Top tips my_sql_performanceTop tips my_sql_performance
Top tips my_sql_performance
 
Why elasticsearch rocks!
Why elasticsearch rocks!Why elasticsearch rocks!
Why elasticsearch rocks!
 
Understanding Craftsmanship SwanseaCon2015
Understanding Craftsmanship SwanseaCon2015Understanding Craftsmanship SwanseaCon2015
Understanding Craftsmanship SwanseaCon2015
 
Writing infinite scalability web applications with PHP and PostgreSQL
Writing infinite scalability web applications with PHP and PostgreSQLWriting infinite scalability web applications with PHP and PostgreSQL
Writing infinite scalability web applications with PHP and PostgreSQL
 
L'ABC du BDD (Behavior Driven Development)
L'ABC du BDD (Behavior Driven Development)L'ABC du BDD (Behavior Driven Development)
L'ABC du BDD (Behavior Driven Development)
 
Behat 3.0 meetup (March)
Behat 3.0 meetup (March)Behat 3.0 meetup (March)
Behat 3.0 meetup (March)
 
Performance serveur et apache
Performance serveur et apachePerformance serveur et apache
Performance serveur et apache
 
TDD with PhpSpec - Lone Star PHP 2016
TDD with PhpSpec - Lone Star PHP 2016TDD with PhpSpec - Lone Star PHP 2016
TDD with PhpSpec - Lone Star PHP 2016
 
Caching on the Edge
Caching on the EdgeCaching on the Edge
Caching on the Edge
 
The Wonderful World of Symfony Components
The Wonderful World of Symfony ComponentsThe Wonderful World of Symfony Components
The Wonderful World of Symfony Components
 
PHPSpec - the only Design Tool you need - 4Developers
PHPSpec - the only Design Tool you need - 4DevelopersPHPSpec - the only Design Tool you need - 4Developers
PHPSpec - the only Design Tool you need - 4Developers
 
Design how your objects talk through mocking
Design how your objects talk through mockingDesign how your objects talk through mocking
Design how your objects talk through mocking
 
Password (in)security
Password (in)securityPassword (in)security
Password (in)security
 
Measuring Web Performance - HighEdWeb Edition
Measuring Web Performance - HighEdWeb EditionMeasuring Web Performance - HighEdWeb Edition
Measuring Web Performance - HighEdWeb Edition
 
Composer in monolithic repositories
Composer in monolithic repositoriesComposer in monolithic repositories
Composer in monolithic repositories
 
I.T.A.K.E Unconference - Mutation testing to the rescue of your tests
I.T.A.K.E Unconference - Mutation testing to the rescue of your testsI.T.A.K.E Unconference - Mutation testing to the rescue of your tests
I.T.A.K.E Unconference - Mutation testing to the rescue of your tests
 
Love and Loss: A Symfony Security Play
Love and Loss: A Symfony Security PlayLove and Loss: A Symfony Security Play
Love and Loss: A Symfony Security Play
 
Command Bus To Awesome Town
Command Bus To Awesome TownCommand Bus To Awesome Town
Command Bus To Awesome Town
 
Driving Design through Examples
Driving Design through ExamplesDriving Design through Examples
Driving Design through Examples
 

Plus de Bruno Boucard

Boostez votre processus de découverte avec Example Mapping.pdf
Boostez votre processus de découverte avec Example Mapping.pdfBoostez votre processus de découverte avec Example Mapping.pdf
Boostez votre processus de découverte avec Example Mapping.pdf
Bruno Boucard
 
Continuous Discovery is it future of Continuous Delivery.pdf
Continuous Discovery is it future of Continuous Delivery.pdfContinuous Discovery is it future of Continuous Delivery.pdf
Continuous Discovery is it future of Continuous Delivery.pdf
Bruno Boucard
 
Combine workshops to boost business understanding.pdf
Combine workshops to boost business understanding.pdfCombine workshops to boost business understanding.pdf
Combine workshops to boost business understanding.pdf
Bruno Boucard
 
How to test untestable code at apidays Paris 2017
How to test untestable code at apidays Paris 2017 How to test untestable code at apidays Paris 2017
How to test untestable code at apidays Paris 2017
Bruno Boucard
 
How to test untestable code
How to test untestable codeHow to test untestable code
How to test untestable code
Bruno Boucard
 
Diamond kata agile tour lille
Diamond kata agile tour lilleDiamond kata agile tour lille
Diamond kata agile tour lille
Bruno Boucard
 
Fruit shop techdays 2015
Fruit shop techdays 2015Fruit shop techdays 2015
Fruit shop techdays 2015
Bruno Boucard
 
How to turn your developers in less than 6 months in perfect software craftsmen
How to turn your developers in less than 6 months in perfect software craftsmenHow to turn your developers in less than 6 months in perfect software craftsmen
How to turn your developers in less than 6 months in perfect software craftsmen
Bruno Boucard
 
ALT.NET Modéliser Parallèle avec C# 4.0
ALT.NET Modéliser Parallèle avec C# 4.0ALT.NET Modéliser Parallèle avec C# 4.0
ALT.NET Modéliser Parallèle avec C# 4.0
Bruno Boucard
 

Plus de Bruno Boucard (9)

Boostez votre processus de découverte avec Example Mapping.pdf
Boostez votre processus de découverte avec Example Mapping.pdfBoostez votre processus de découverte avec Example Mapping.pdf
Boostez votre processus de découverte avec Example Mapping.pdf
 
Continuous Discovery is it future of Continuous Delivery.pdf
Continuous Discovery is it future of Continuous Delivery.pdfContinuous Discovery is it future of Continuous Delivery.pdf
Continuous Discovery is it future of Continuous Delivery.pdf
 
Combine workshops to boost business understanding.pdf
Combine workshops to boost business understanding.pdfCombine workshops to boost business understanding.pdf
Combine workshops to boost business understanding.pdf
 
How to test untestable code at apidays Paris 2017
How to test untestable code at apidays Paris 2017 How to test untestable code at apidays Paris 2017
How to test untestable code at apidays Paris 2017
 
How to test untestable code
How to test untestable codeHow to test untestable code
How to test untestable code
 
Diamond kata agile tour lille
Diamond kata agile tour lilleDiamond kata agile tour lille
Diamond kata agile tour lille
 
Fruit shop techdays 2015
Fruit shop techdays 2015Fruit shop techdays 2015
Fruit shop techdays 2015
 
How to turn your developers in less than 6 months in perfect software craftsmen
How to turn your developers in less than 6 months in perfect software craftsmenHow to turn your developers in less than 6 months in perfect software craftsmen
How to turn your developers in less than 6 months in perfect software craftsmen
 
ALT.NET Modéliser Parallèle avec C# 4.0
ALT.NET Modéliser Parallèle avec C# 4.0ALT.NET Modéliser Parallèle avec C# 4.0
ALT.NET Modéliser Parallèle avec C# 4.0
 

Si le tdd est mort alors pratiquons une autopsie mix-it 2015

  • 1. SI LE TDD EST MORT… ALORS PRATIQUONS UNE AUTOPSIE Bruno BOUCARD - t @brunoboucard Thomas PIERRAIN - t @tpierrain learn.tocraft.fr
  • 2. Aujourd’hui, très peu de gens pratiquent leTDD ! Bruno BOUCARD - t @brunoboucard Thomas PIERRAIN - t @tpierrain GREEN All tests are passed Test runs and fails RED REFACTOR Next test UN CONSTAT
  • 3. DOMMAGE … RASSURANT EFFICACE ENCOURAGEANT … car quand on y arrive, leTDD c’est Bruno BOUCARD - t @brunoboucard Thomas PIERRAIN - t @tpierrain
  • 4. CONSTAT#1 “Par où on commence ?” Bruno BOUCARD - t @brunoboucard Thomas PIERRAIN - t @tpierrain
  • 5. PAS DE PRÉCIPITATION POUR CODER ! CREUSER SON SUJET FORMULER A HAUTEVOIX UTILISER LE “SHOULD” Bruno BOUCARD - t @brunoboucard Thomas PIERRAIN - t @tpierrain PRÉPARER SON CERVEAU ESTESSENTIEL
  • 6. POURQUOI « SHOULD » ? Bruno BOUCARD - t @brunoboucard Thomas PIERRAIN - t @tpierrain “SHOULD” COMME UN MESSAGE À SOI-MÊME AFIN DE CIBLER LE COMPORTEMENTÀTESTER
  • 7. Bruno BOUCARD - t @brunoboucard Thomas PIERRAIN - t @tpierrain
  • 8. Bruno BOUCARD - t @brunoboucard Thomas PIERRAIN - t @tpierrain
  • 9. INTERRESSANT, MAIS… “En tant que développeur …” Bruno BOUCARD - t @brunoboucard Thomas PIERRAIN - t @tpierrain
  • 10. UN SACRE BOSSEUR CE MICHEL-ANGE … Bruno BOUCARD - t @brunoboucard Thomas PIERRAIN - t @tpierrain
  • 11. ALORSTRAVAILLONS NOS AUTOMATISMES ! AS A JITCOMPILER FOR OUR BRAIN! Bruno BOUCARD - t @brunoboucard Thomas PIERRAIN - t @tpierrain
  • 12. AVEC COMME OUTIL Bruno BOUCARD - t @brunoboucard Thomas PIERRAIN - t @tpierrain CODE KATA CODING DOJO
  • 13. MAIS LETDD ESTUN ARTDIFFICILE … Bruno BOUCARD - t @brunoboucard Thomas PIERRAIN - t @tpierrain QUI COMPREND PLUSIEURS SOUS-DICIPLINES Designing Clean Code DesigningTest Cases Driving Development withTests Refactoring Safely
  • 14. CONSTAT#2 “Si je ne comprends toujours pas ce qu’on me demande de faire …” Bruno BOUCARD - t @brunoboucard Thomas PIERRAIN - t @tpierrain
  • 15. CHANGEONS DE POSTURE ! Bruno BOUCARD - t @brunoboucard Thomas PIERRAIN - t @tpierrain
  • 16. CHALLENGEONS LES ACTEURS DU DOMAINE Bruno BOUCARD - t @brunoboucard Thomas PIERRAIN - t @tpierrain À travers des conversations avec … En mode 3 amigos ses collègues ses utilisateurs équipes connexes
  • 17. QUELQUES OUTILS POUR ÇA LES 5 « POURQUOI ?» IMPACTMAPPING Bruno BOUCARD - t @brunoboucard Thomas PIERRAIN - t @tpierrain
  • 18. REDONNONS DU SENS AU DEV Bruno BOUCARD - t @brunoboucard Thomas PIERRAIN - t @tpierrain
  • 19. OK MAIS… “Comment être efficace dans nos efforts et notre investissement ?” Bruno BOUCARD - t @brunoboucard Thomas PIERRAIN - t @tpierrain
  • 20. TDD MINIMALISME ETEFFICACITE Bruno BOUCARD - t @brunoboucard Thomas PIERRAIN - t @tpierrain
  • 21. DOUBLE LOOP- OUTSIDE-IN Bruno BOUCARD - t @brunoboucard Thomas PIERRAIN - t @tpierrain
  • 22. CONSTAT#3 “Au bout d’un moment, leTDD et nos tests nous ont ralentis … … sont devenus un problème pour toute l’équipe.” Bruno BOUCARD - t @brunoboucard Thomas PIERRAIN - t @tpierrain
  • 23. LE SECRET? TESTER … METHODES Bruno BOUCARD - t @brunoboucard Thomas PIERRAIN - t @tpierrain
  • 24. Bruno BOUCARD - t @brunoboucard Thomas PIERRAIN - t @tpierrain BEHAVIOURS!!!
  • 25. Bruno BOUCARD - t @brunoboucard Thomas PIERRAIN - t @tpierrain BEHAVIOURS!!!
  • 26. CONSTAT#4 “Ça va moins vite !” Bruno BOUCARD - t @brunoboucard Thomas PIERRAIN - t @tpierrain
  • 27. SERIEUX ?!? Bruno BOUCARD - t @brunoboucard Thomas PIERRAIN - t @tpierrain
  • 28. NE PAS NÉGLIGER NOTRE MANIÈRE DE PENSER Bruno BOUCARD - t @brunoboucard Thomas PIERRAIN - t @tpierrain SYSTÈME 1 SYSTÈME 2 17 x 24Une hirondelle ne …
  • 29. EN CONCLUSION, C’EST VRAI QUE LETDD … parce que très souvent on en fait mal Bruno BOUCARD - t @brunoboucard Thomas PIERRAIN - t @tpierrain On n’en fait pas …
  • 30. Bruno BOUCARD - t @brunoboucard Thomas PIERRAIN - t @tpierrain GREEN RED REFACTOR RED, GREEN, REFACTOR … Ce n’est que l’ossature, ce n’est pas l’âme duTDD … Ce n’est pas suffisant !
  • 31. L’ESSENTIEL N’ESTPASVISIBLE … MAIS NEVOUS LAISSEZ PAS IMPRESSIONNER ! Bruno BOUCARD - t @brunoboucard Thomas PIERRAIN - t @tpierrain
  • 32. CAR SI ON SUITQUELQUES PRATIQUES … 1 DOUBLE BOUCLE - OUTSIDE-IN COMMUNICATION ORALE - SHOULD 2 3 METHODES - BEHAVIOURS 0 CREUSER SON SUJET Bruno BOUCARD - t @brunoboucard Thomas PIERRAIN - t @tpierrain 4 S’ENTRAÎNER RÉGULIÈREMENT
  • 33. Bruno BOUCARD - t @brunoboucard Thomas PIERRAIN - t @tpierrain MERCI AVOUS !
  • 34. Bruno BOUCARD - t @brunoboucard Thomas PIERRAIN - t @tpierrain NOS OUVRAGES