Agile
since 2003 mentioned by Dan North
Favor collaboration between team actors
since 2003 mentioned by Eric Evans
Favor communication between team actors
since 2000 mentioned by Kent Beck
Favor trust between team actors
Help to understand the problem
without thinking of the technical solution.
Help to describe the problem
without thinking of the technical solution.
Help to solve the problem
through a technical solution.
Short Term And Long Term
Needs And Satisfaction
Can check before showing to the customer that the product increment suits the need and be confident
Can focus on business domain rather than
technical stuff
Can check each US complies with its own behaviors description
Can understand the need easily
Can verify the product increments easily when each US is done
Can give fast feedback :
Helped by continous delivery
Can understand the need easily
Can propose an improvement of the need
Can write code that fits the US description
Is able to prove that the product increment suits the need
Developer
Tester
Business Analyst
BDD
TDD
DDD
Product Owner
Customer
Company
Developer
Tester
Business Analyst
Customer
Product Owner
Company
Given an authenticated customer
When authorized
should access to his habitation contract
Verify that an authorized customer
can access to his habitation contract
Example :
Given Tony as customer with 1234 customer id who want to access to his habitation contract with the contract number 4321 should see his habitation contract
Test : Given an authenticated customer
When authorized
Should access to his habitation contract
Wait ...
What is an authenticated customer ? (Improve DDD)
Wait ...
When the customer can be authorized ? (Improve BDD)
Wait ...
How can i know that is a customer ? (Improve BDD, DDD)
Wait ...
How can i determine what is an habitation contract ?
(Improve BDD, DDD) ... etc
After response => little code
After response => little code
After response => little code
Define needs with BDD and DDD
Implement needs with BDD, TDD and DDD
Improve needs Spec
Ready to implement needs
Perfect response to the needs
regarding to the team knowledges
Help to focus on business need and to understand it easily
Help to share a common vision and vocabulary with every product actors
Write a failing test
Write
a code to make it pass
Make the code better
(Refactor)
Prefer fat and strong model because it's easy to :
Single responsability principle first
"Explication du métier au dev", J.A
"Plus de rigueur dans le découpage des US et la description des critères d’acceptation", J.A
"Moins de surprise (en terme de résultats attendus) après les DEV", J.A
"Une meilleure compréhension du besoin", G.M
"Connaissance partagée et maturité d'équipe importante", G.M
"Facilite le feed back", G.M
"Une colocalisation peut aider", G.M
"L'anticipation sur les jeux de données est essentielle", G.M
"S'accorder du temps pour la montée en compétence", G.M
"Travail plus collaboratif avec les DEV", J.A
" Moins d’anomalies pendant la phase de recette ", J.A
"Domain Driven Design", Eric Evans