SlideShare a Scribd company logo
1 of 83
Download to read offline
Behavior Driven Development 
& 
Specification by Example 
With S 
Arnauld Loyer - @aloyer
Authentic Developer 
since 2000! 
Arnauld Loyer 
@aloyer Software Craftsman 
BDD fan boy 
@aloyer
Exercise: Draw a 12 points Star 
@aloyer
Exercise: Draw a 12 points Star 
or or 
@aloyer
"Sherlock saw the man with binoculars" 
@aloyer
Attention ceci est une « Bullet Attack » 
Un bon cahier des charges peut être caractérisé par ! 
les 7 qualificatifs suivants [IEEE 830]:! 
! 
• non ambigu! 
• complet! 
• vérifiable! 
• consistant! 
• modifiable! 
• traçable! 
• utilisable durant la maintenance 
@aloyer
Chaos Report 
@aloyer http://blog.standishgroup.com/
Project Challenged Factors 
1. Lack of User Input 12.8% 
2. Incomplete Requirements & Specifications 12.3% 
3. Changing Requirements & Specifications 11.8% 
4. Lack of Executive Support 7.5% 
5. Technology Incompetence 7.0% 
6. Lack of Resources 6.4% 
7. Unrealistic Expectations 5.9% 
8. Unclear Objectives 5.3% 
9. Unrealistic Time Frames 4.3% 
10. New Technology 3.7% 
! 
Project Impaired Factors % of 
1. Incomplete Requirements 13.1% 
2. Lack of User Involvement 12.4% 
3. Lack of Resources 10.6% 
4. Unrealistic Expectations 9.9% 
5. Lack of Executive Support 9.3% 
6. Changing Requirements & Specifications 8.7% 
7. Lack of Planning 8.1% 
8. Didn't Need It Any Longer 7.5% 
9. Lack of IT Management 6.2% 
10. Technology Illiteracy 4.3% 
Chaos Report 
http://blog.standishgroup.com/ 
@aloyer
The Bull Survey (1998) 
! 
All the managers interviewed had previously taken the lead in integrating large systems 
within organizations in the Times Top 100.! 
! 
Project Evaluation Criteria 
! 
The main IT project failure criteria identified by the IT and project managers were:! 
* missed deadlines (75%)! 
* exceeded budget (55%)! 
* poor communications (40%)! 
* inability to meet project requirements (37%).! 
! 
http://www.it-cortex.com/Stat_Failure_Cause.htm 
@aloyer
The Bull Survey (1998) 
! 
All 2005 the Survey: managers The interviewed Top had previously taken the lead in integrating large systems 
within organizations in the Challenges Times Top Facing 100.! 
Business ! 
Analysts 
Project Evaluation Criteria 
! 
The main IT project failure criteria identified by the IT and project managers were:! 
* missed deadlines (75%)! 
* exceeded budget (55%)! 
* poor communications (40%)! 
* inability to meet project requirements (37%).! 
! 
http://www.it-cortex.com/Stat_Failure_Cause.htm 
Business Improvement Architect’s research sur vey of Business Analysts attending Project World/ 
Business Analyst World 2005 in Toronto, Canada, identified that ‘Lack of Clarity in the Scope of 
the Business Functions’ and ‘Business Requirements Not Well-Defined” are the top two 
challenges facing their organizations in managing business requirements.! 
! 
-- http://www.bia.ca/articles/TheTopChallengesFacingBusinessAnalysts.htm 
@aloyer
Why IT Projects Fail 
1. Lack of Governance! 
2. Internal Politics! 
3. Poor communication between business and IT! 
4. Unclear expectations! 
The Bull Survey (1998) 
! 
All 2005 the Survey: managers The interviewed Top had previously taken the lead in integrating large systems 
within organizations in the Challenges Times Top Facing 100.! 
Business ! 
Analysts 
Project Evaluation Criteria 
! 
The main IT project failure criteria identified by the IT and project managers were:! 
* missed deadlines (75%)! 
* exceeded budget (55%)! 
* poor communications (40%)! 
* inability to meet project requirements (37%).! 
! 
http://www.it-cortex.com/Stat_Failure_Cause.htm 
Business Improvement Architect’s research sur vey of Business Analysts attending Project World/ 
Business Analyst World 2005 in Toronto, Canada, identified that ‘Lack of Clarity in the Scope of 
the Business Functions’ and ‘Business Requirements Not Well-Defined” are the top two 
challenges facing their organizations in managing business requirements.! 
! 
-- http://www.bia.ca/articles/TheTopChallengesFacingBusinessAnalysts.htm 
! 
http://www.itbusinessedge.com/slideshows/show.aspx?c=81818&slide=4 
@aloyer
Why IT Projects Fail 
1. Lack of Governance! 
2. Internal Politics! 
3. Poor communication between business and IT! 
4. Unclear expectations! 
The Bull Survey (1998) 
! 
All 2005 the Survey: managers The interviewed Top had previously taken the lead in integrating large systems 
within organizations in the Challenges Times Top Facing 100.! 
Business ! 
Analysts 
Project Evaluation Criteria 
! 
The main IT project failure criteria identified by the IT and project managers were:! 
* missed deadlines (75%)! 
* exceeded budget (55%)! 
* poor communications (40%)! 
* inability to meet project requirements (37%).! 
! 
http://www.it-cortex.com/Stat_Failure_Cause.htm 
Business Improvement Architect’s research sur vey of Business Analysts attending Project World/ 
Business Analyst World 2005 in Toronto, Canada, identified that ‘Lack of Clarity in the Scope of 
the Business Functions’ and ‘Business Requirements Not Well-Defined” are the top two 
challenges facing their organizations in managing business requirements.! 
! 
-- http://www.bia.ca/articles/TheTopChallengesFacingBusinessAnalysts.htm 
! 
http://www.itbusinessedge.com/slideshows/show.aspx?c=81818&slide=4 
Why Software Fails - We waste billions of dollars each year on entirely preventable mistakes 
(2005)! 
http://spectrum.ieee .org/computing/software/why-software-fails! 
! 
Among the most common factors:! 
* Unrealistic or unarticulated project goals! 
* Inaccurate estimates of needed resources! 
* Badly defined system requirements! 
* Poor reporting of the project's status! 
* Unmanaged risks! 
* Poor communication among customers, developers, and users! 
* Use of immature technology! 
* Inability to handle the project's complexity! 
* Sloppy development practices! 
* Poor project management! 
* Stakeholder politics! 
* Commercial pressures 
@aloyer
Why IT Projects Fail 
1. Lack of Governance! 
2. Internal Politics! 
3. Poor communication between business and IT! 
4. Unclear expectations! 
Seven Reasons IT Projects Fail - February 2012 
! 
1. Poor Project Planning and Direction 
2. Insufficient Communication 
3. Ineffective Management 
4. Failure to Align With Constituents and Stakeholders 
! 
The Bull Survey (1998) 
! 
All 2005 the Survey: managers The interviewed Top had previously taken the lead in integrating large systems 
within organizations in the Challenges Times Top Facing 100.! 
Business ! 
Analysts 
Project Evaluation Criteria 
! 
The main IT project failure criteria identified by the IT and project managers were:! 
* missed deadlines (75%)! 
* exceeded budget (55%)! 
* poor communications (40%)! 
* inability to meet project requirements (37%).! 
! 
http://www.it-cortex.com/Stat_Failure_Cause.htm 
Business http://Improvement www.ibmsystemsmag.com/power/Systems-Management/Workload-Management/ 
Architect’s research sur vey of Business Analysts attending Project World/ 
Business Analyst World 2005 in Toronto, Canada, identified that ‘Lack of Clarity in the Scope of 
the Business Functions’ and ‘Business Requirements Not Well-Defined” are the top two 
challenges facing their organizations in managing business requirements.! 
! 
-- http://www.bia.ca/articles/TheTopChallengesFacingBusinessAnalysts.htm 
! 
http://www.itbusinessedge.com/slideshows/show.aspx?c=81818&slide=4 
Why Software Fails - We waste billions of dollars each year on entirely preventable mistakes 
(2005)! 
http://spectrum.ieee .org/computing/software/why-software-fails! 
! 
Among the most common factors:! 
* Unrealistic or unarticulated project goals! 
* Inaccurate estimates of needed resources! 
* Badly defined system requirements! 
* Poor reporting of the project's status! 
* Unmanaged risks! 
* Poor communication among customers, developers, and users! 
* Use of immature technology! 
* Inability to handle the project's complexity! 
* Sloppy development practices! 
* Poor project management! 
* Stakeholder politics! 
* Commercial pressures 
project_pitfalls/?page=2! 
@aloyer
Why IT Projects Fail 
1. Lack of Governance! 
2. Internal Politics! 
3. Poor communication between business and IT! 
4. Unclear expectations! 
Seven Reasons IT Projects Fail - February 2012 
! 
1. Poor Project Planning and Direction 
2. Insufficient Communication 
3. Ineffective Management 
4. Failure to Align With Constituents and Stakeholders 
! 
The Bull Survey (1998) 
! 
All 2005 the Survey: managers The interviewed Top had previously taken the lead in integrating large systems 
within organizations in the Challenges Times Top Facing 100.! 
Business ! 
Analysts 
Project Evaluation Criteria 
! 
The main IT project failure criteria identified by the IT and project managers were:! 
* missed deadlines (75%)! 
* exceeded budget (55%)! 
* poor communications (40%)! 
* inability to meet project requirements (37%).! 
! 
http://www.it-cortex.com/Stat_Failure_Cause.htm 
Business http://Improvement www.ibmsystemsmag.com/power/Systems-Management/Workload-Management/ 
Architect’s research sur vey of Business Analysts attending Project World/ 
Business Analyst World 2005 in Toronto, Canada, identified that ‘Lack of Clarity in the Scope of 
the Business Functions’ and ‘Business Requirements Not Well-Defined” are the top two 
challenges facing their organizations in managing business requirements.! 
! 
-- http://www.bia.ca/articles/TheTopChallengesFacingBusinessAnalysts.htm 
! 
http://www.itbusinessedge.com/slideshows/show.aspx?c=81818&slide=4 
Why Software Fails - We waste billions of dollars each year on entirely preventable mistakes 
(2005)! 
http://spectrum.ieee .org/computing/software/why-software-fails! 
! 
Among the most common factors:! 
* Unrealistic or unarticulated project goals! 
* Inaccurate estimates of needed resources! 
* Badly defined system requirements! 
* Poor reporting of the project's status! 
* Unmanaged risks! 
* Poor communication among customers, developers, and users! 
* Use of immature technology! 
* Inability to handle the project's complexity! 
* Sloppy development practices! 
* Poor project management! 
* Stakeholder politics! 
* Commercial pressures 
project_pitfalls/?page=2! 
The Most Common Factors for the failure of Software Development Project 
! 
1. Lack of Customer or User Involvement 
2. Unclear goals and objectives 
3. Poor Requirement Set 
4. Lack of Resources 
5. Failure to communicate and act as a team 
! 
! 
Volume 1, No. 11, Januar y 2013 ISSN – 2278-1080 ! 
The International Journal of Computer Science & Applications! 
http://www.journalofcomputerscience.com/2013Issue/Jan13/V1No11Jan13P044.pdf 
@aloyer
I want 
« A » A 
BDD in 5 minutes @aloyer 10
I want 
« A » Let’s Specify 
« B » A 
BDD in 5 minutes @aloyer 10
I want 
« A » Let’s Specify 
« B » 
B 
A 
BDD in 5 minutes @aloyer 10
I want 
« A » 
I Will Test 
« C » 
C 
B 
A 
Let’s Specify 
« B » 
BDD in 5 minutes 11 11
I want 
« A » 
D 
B 
I Will Test 
« C » 
Let’s Develop 
« D » 
C 
A 
Let’s Specify 
« B » 
BDD in 5 minutes 12
D 
C 
B 
Wanted 
A 
Developed 
Specified 
Tested 
BDD in 5 minutes 13 13
D 
C 
B 
Wanted 
A 
Developed 
Specified 
Tested 
Humpff 
BDD in 5 minutes 13 13
BDD in 5 minutes 14
NooOOOOooo!! 
BDD in 5 minutes 14
"is this a bug or is this not a 
bug?" 
a bug? 
a feature? 
a beature? 
an enhancement?
@aloyer
@aloyer
@aloyer
3 steps 
3 models 
3 interpretations 
@aloyer
3 steps 
3 models 
3 interpretations 
@aloyer
3 visions 
1 model 
1 goal 
@aloyer
Working together to find better solutions 
Use real-world examples to build a 
shared understanding of the domain 
People understand requirements 
best using concrete examples. 
Examples clear up ambiguity and misunderstandings. 
Examples expose missing requirements. 
Examples force everyone to think harder about a problem. 
@aloyer
Behavior Driven Development! 
« 2003 » 
Test First 
Test Driven Development 
Executable Specification! 
& Automation 
Exploratory Examples! 
& Discussion 
@aloyer
It’s NOT about tools 
http://pencilink.blogspot.fr/2010/10/iron-man-160-jim-starlin-cover-steve.html 
@aloyer
It’s NOT about tools 
It’s about Communication and Behavior! 
http://pencilink.blogspot.fr/2010/10/iron-man-160-jim-starlin-cover-steve.html 
@aloyer
It’s NOT about Testing 
http://ungoliantschilde.tumblr.com/post/78793890826/ungoliantschilde-barry-windsor-smith-that 
@aloyer
It’s NOT about Testing 
It’s about Exploring the Unknown 
http://ungoliantschilde.tumblr.com/post/78793890826/ungoliantschilde-barry-windsor-smith-that 
@aloyer
It’s not about Silo!Or Acceptance 
Criteria 
@aloyer
It’s not about Silo!Or Acceptance 
Criteria 
It’s about 
Sharing 
and 
Understanding 
@aloyer
It’s about Driven Development! 
@aloyer
Examples Tests 
Requirements 
elaborate 
can become 
verify 
@aloyer
Three Amigos
@aloyer
BDD is about conversation 
@aloyer
BDD is about conversation 
BDD is not about tools 
@aloyer
@aloyer
What? 
How! 
@aloyer
Why? 
What? 
Goal? 
Business Value? 
How! 
@aloyer
Intention Why? 
What? 
How! 
Goal? 
Business Value? 
@aloyer
29
Why? 
Goal? 
Business Value? 
Feature: ... 
In order to <achieve the vision> 
As a <stakeholder> 
I want <value> 
Intention What? 
How! 
@aloyer
Why? 
Goal? 
Business Value? 
Feature: ... 
In order to <achieve the vision> 
As a <stakeholder> 
I want <value> 
Intention 
As a <role> 
I want <goal> 
So that <value> 
User focused 
What? 
How! 
@aloyer
No Narrative 
No Business Value 
Unnecessary Feature ! 
@aloyer
Feature 
Criteria! 
(Rules) 
Criteria! 
(Rules) 
What is it 
supposed to do 
Example 
Example 
Illustration of 
Example 
Example 
Example 
Acceptance Criteria vs Example @aloyer 32
Password OK/KO Reason 
Arn4uld KO No special characters 
arnauld$ KO No upper case 
Arn4ld$ OK 
Z0€ KO too short 
Last Passwords Password OK/KO 
J0hn$! 
$m1th! 
Arn4ld$ 
Arn4ld$ KO 
J0hn$! 
Arn4ld$! 
$m1th 
Arn4ld$ KO 
Arn4ld$! 
J0hn$! 
$m1th 
Arn4ld$ OK 
Examples of Examples @aloyer 33
Feature: ... 
As a... 
I want to... 
Scenario: ... 
In order to... 
@aloyer
Feature: ... 
As a... 
I want to... 
Scenario: ... 
In order to... 
Given <a context> 
When <an event happens> 
Then <an outcome should occur> 
@aloyer
BDD uses examples to illustrate 
Feature: ... 
As a... 
I want to... 
Scenario: ... 
In order to... 
behavior 
Given <a context> 
When <an event happens> 
Then <an outcome should occur> 
@aloyer
Scenario: Some determinable business situation 
Every scenario consists of a list of steps 
Given <a specific context> 
When <an action is performed on the system> 
Then <an expected outcome should be observed> 
Gherkin - Scenario - Given/When/Then 
35 
Resulting! 
State 
Initial! 
Context 
Given 
Given 
Given 
Given 
When 
Then 
When 
Then 
Then 
Transition 
@aloyer
Given! 
! 
The purpose of givens is to put the system in a known state 
before interacting with it. They defines the preconditions. 
! 
• Indicate which environment to use 
• Insert values in database 
• Fill context with predefined users 
• Log user 
• … 
Given there are no users on site! 
Given the database is clean 
Given the predefined high and volatile stocks 
Given I am logged in as "Balthazar" 
Gherkin - Scenario - Given/When/Then 
@aloyer 36
When! 
! 
The purpose of when steps is to describe the key action 
performed (the state transition). 
! 
• Trigger commands 
• Interact with the UI 
• Go to a specific page, Fill a form, Select books or CDs 
• Launch a batch 
• … 
When I log in the application as "Gaspard" 
When I look at my profile! 
When I book the deal 
When I generate the financial report 
Gherkin - Scenario - Given/When/Then 
@aloyer 37
Then! 
! 
The purpose of Then steps is to observe outcomes. The 
observations should be related to the business value/ 
benefit of the feature. 
! 
• Feedback message 
• Generated document, Mail sent 
• Command output 
• Data updated 
• … 
Gherkin - Scenario - Given/When/Then 
It should be 
something related to 
the Given/When 
Then I should see a welcome message 
Then the report should contain the created deal! 
Then the result should be 42 
@aloyer 39
Why do YOU 
like should? 
It encourages 
debate, and 
constant Questioning 
of the premise of the 
application you are 
developing. 
Dan North, March 2005 
DMZ 
BDD 
Approach 
Gherkin - Should 40 @aloyer 40
Scenario: Some determinable business situation 
! 
Given a specific context 
Given another specific context 
Given an even other specific context 
When an action is performed on the system 
When another action is performed on the system 
Then expected outcome 
Then an other expected outcome 
Then an even other expected outcome 
Gherkin - Scenario - Given/When/Then 
@aloyer 41
Scenario: Some determinable business situation 
! 
Given a specific context 
And another specific context 
But an even other specific context 
When an action is performed on the system 
And another action is performed on the system 
Then expected outcome 
And an other expected outcome 
But an even other expected outcome 
Given/When/Then + And/But 
Gherkin - Scenario - And/But 
@aloyer 42
Feature: Trade Execution 
! 
In order to reduce the risk of other clearing firm failing to honor its trade 
settlement obligations 
As a clearing firm 
I want that a clearing house stands between me and the other firm 
Scenario: New trade is confirmed between the bank and counterparty 
! 
Given A new trade between the bank and counterparty 
When the trade is captured 
Then it should be sent to clearing house for matching 
Gherkin - Sample 
@aloyer 43
Feature: Trade Execution 
! 
In order to reduce the risk of other clearing firm failing to honor its trade 
settlement obligations 
As a clearing firm 
I want that a clearing house stands between me and the other firm 
Scenario: New trade is confirmed between the bank and counterparty 
! 
Given A new trade between the bank and counterparty 
When the trade is captured 
Then it should be sent to clearing house for matching 
Gherkin - Sample 
44 
Must give a quick 
overview of what 
scenario is doing 
@aloyer
Feature: Addition feature 
! 
In order to perform mathematical operations 
As an accounting officer 
I want to be able to add numbers 
Gherkin - Sample Calculator Feature 
@aloyer 45
What could be 
the first use case? 
@aloyer 
Gherkin - Sample Calculator Feature 46
Feature: Addition feature 
! 
In order to perform mathematical operations 
As an accounting officer 
I want to be able to add numbers 
! 
Scenario: Addition of positive numbers 
! 
Given two numbers 12 and 7 
When I add them 
Then the result should be 19 
Gherkin - Sample Calculator Feature 
@aloyer 47
Feature: Addition feature 
! 
In order to perform mathematical operations 
As an accounting officer 
I want to be able to add numbers 
! 
Scenario: Addition of positive numbers 
! 
Given two numbers 12 and 7 
When I add them 
Then the result should be 19 
the Given/When ‟ 
Gherkin - Sample Calculator Feature 
47 
It should be 
something related to 
@aloyer
Feature: Addition feature 
! 
In order to perform mathematical operations 
As an accounting officer 
I want to be able to add numbers 
! 
Scenario: Addition of positive numbers 
! 
Given two numbers 12 and 7 
When I add them 
Then the result should be 19 
the Given/When ‟ 
Gherkin - Sample Calculator Feature 
48 
It should be 
something related to 
Scenario: Addition of positive numbers 
! 
Given two numbers 12 and 7 
When I add them 
Then the result should be 23 Should Fail! 
@aloyer
What could be the next 
Scenario? 
@aloyer 
Gherkin - Sample Calculator Feature 49
Feature: Addition feature 
! 
In order to perform mathematical operations 
As an accounting officer 
I want to be able to add numbers 
! 
Scenario: Addition of positive numbers 
! 
Given two numbers 12 and 7 
When I add them 
Then the result should be 19 
! 
Scenario: Addition of a positive number and a negative number 
! 
Given two numbers 11 and -3 
When I add them 
Then the result should be 8 
Gherkin - Sample Calculator Feature 
@aloyer 50
Feature: Addition feature 
! 
In order to perform mathematical operations 
As an accounting officer 
I want to be able to add numbers 
! 
Scenario: Addition of positive numbers 
! 
Given two numbers 12 and 7 
When I add them 
Then the result should be 19 
! 
Scenario: Addition of a positive number and a negative number 
! 
Given two numbers 11 and -3 
When I add them 
Then the result should be 8 
Gherkin - Sample Calculator Feature 
51 
Reusable 
Step 
@aloyer
Feature: Addition feature 
! 
In order to perform mathematical operations 
As an accounting officer 
I want to be able to add numbers 
! 
Scenario: Addition of positive numbers 
! 
Given two numbers 12 and 7 
When I add them 
Then the result should be 19 
! 
Scenario: Addition of a positive number and a negative number 
! 
Given two numbers 11 and -3 
When I add them 
Then the result should be 8 
Gherkin - Sample Calculator Feature 
52 
Parameterized 
Step 
@aloyer
@aloyer
@aloyer
@aloyer
@aloyer
Feature: ... 
As a... 
I want to... 
Scenario: ... 
In order to... 
Given <a context> 
When <an event happens> 
Then <an outcome should occur> 
@aloyer
Feature: ... 
As a... 
I want to... 
Scenario: ... 
In order to... 
Given <a context> 
When <an event happens> 
Then <an outcome should occur> 
@aloyer
Examples help discover things early 
Feature: ... 
As a... 
I want to... 
Scenario: ... 
In order to... 
Given <a context> 
When <an event happens> 
Then <an outcome should occur> 
@aloyer
One may discover that one doesn't know 
Feature: ... 
As a... 
I want to... 
Scenario: ... 
In order to... 
but others do! 
Given <a context> 
When <an event happens> 
Then <an outcome should occur> 
@aloyer

More Related Content

Viewers also liked

German Testing Day 2015 - How behavior-driven development fuses developers an...
German Testing Day 2015 - How behavior-driven development fuses developers an...German Testing Day 2015 - How behavior-driven development fuses developers an...
German Testing Day 2015 - How behavior-driven development fuses developers an...Bastian Seehaus
 
Event storming Notes
Event storming NotesEvent storming Notes
Event storming NotesArnauld Loyer
 
Making the Move to Behavior Driven Development
Making the Move to Behavior Driven DevelopmentMaking the Move to Behavior Driven Development
Making the Move to Behavior Driven DevelopmentQASymphony
 
Scrum + Behavior Driven Development (BDD) - Colombo
Scrum + Behavior Driven Development (BDD) - ColomboScrum + Behavior Driven Development (BDD) - Colombo
Scrum + Behavior Driven Development (BDD) - ColomboNaveen Kumar Singh
 
Anand Bagmar - Behavior Driven Testing (BDT) in Agile
Anand Bagmar - Behavior Driven Testing (BDT) in AgileAnand Bagmar - Behavior Driven Testing (BDT) in Agile
Anand Bagmar - Behavior Driven Testing (BDT) in AgileAnand Bagmar
 
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
 
Living Documentation (NCrafts Paris 2015, DDDx London 2015, BDX.io 2015, Code...
Living Documentation (NCrafts Paris 2015, DDDx London 2015, BDX.io 2015, Code...Living Documentation (NCrafts Paris 2015, DDDx London 2015, BDX.io 2015, Code...
Living Documentation (NCrafts Paris 2015, DDDx London 2015, BDX.io 2015, Code...Cyrille Martraire
 
Bdd training v5.2.0 - public
Bdd training   v5.2.0 - publicBdd training   v5.2.0 - public
Bdd training v5.2.0 - publicArnauld Loyer
 
Behavior Driven Development Pros and Cons
Behavior Driven Development Pros and ConsBehavior Driven Development Pros and Cons
Behavior Driven Development Pros and ConsIosif Itkin
 
Behavior Driven Development
Behavior Driven DevelopmentBehavior Driven Development
Behavior Driven DevelopmentLiz Keogh
 
Behavior Driven Development with SpecFlow
Behavior Driven Development with SpecFlowBehavior Driven Development with SpecFlow
Behavior Driven Development with SpecFlowRachid Kherrazi
 

Viewers also liked (12)

German Testing Day 2015 - How behavior-driven development fuses developers an...
German Testing Day 2015 - How behavior-driven development fuses developers an...German Testing Day 2015 - How behavior-driven development fuses developers an...
German Testing Day 2015 - How behavior-driven development fuses developers an...
 
Event storming Notes
Event storming NotesEvent storming Notes
Event storming Notes
 
Making the Move to Behavior Driven Development
Making the Move to Behavior Driven DevelopmentMaking the Move to Behavior Driven Development
Making the Move to Behavior Driven Development
 
Scrum + Behavior Driven Development (BDD) - Colombo
Scrum + Behavior Driven Development (BDD) - ColomboScrum + Behavior Driven Development (BDD) - Colombo
Scrum + Behavior Driven Development (BDD) - Colombo
 
Anand Bagmar - Behavior Driven Testing (BDT) in Agile
Anand Bagmar - Behavior Driven Testing (BDT) in AgileAnand Bagmar - Behavior Driven Testing (BDT) in Agile
Anand Bagmar - Behavior Driven Testing (BDT) in Agile
 
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)
 
Living Documentation (NCrafts Paris 2015, DDDx London 2015, BDX.io 2015, Code...
Living Documentation (NCrafts Paris 2015, DDDx London 2015, BDX.io 2015, Code...Living Documentation (NCrafts Paris 2015, DDDx London 2015, BDX.io 2015, Code...
Living Documentation (NCrafts Paris 2015, DDDx London 2015, BDX.io 2015, Code...
 
BDD training v5.0.1
BDD training  v5.0.1BDD training  v5.0.1
BDD training v5.0.1
 
Bdd training v5.2.0 - public
Bdd training   v5.2.0 - publicBdd training   v5.2.0 - public
Bdd training v5.2.0 - public
 
Behavior Driven Development Pros and Cons
Behavior Driven Development Pros and ConsBehavior Driven Development Pros and Cons
Behavior Driven Development Pros and Cons
 
Behavior Driven Development
Behavior Driven DevelopmentBehavior Driven Development
Behavior Driven Development
 
Behavior Driven Development with SpecFlow
Behavior Driven Development with SpecFlowBehavior Driven Development with SpecFlow
Behavior Driven Development with SpecFlow
 

Similar to Behavior Driven Development // Brown Bag Lunch v1.0.0

What a waste of money! Orange Paper
What a waste of money! Orange PaperWhat a waste of money! Orange Paper
What a waste of money! Orange PaperEdward Gould
 
Requirements Gathering: What Could Possibly Go Wrong?
Requirements Gathering: What Could Possibly Go Wrong?Requirements Gathering: What Could Possibly Go Wrong?
Requirements Gathering: What Could Possibly Go Wrong?Eugene O'Loughlin
 
Technical Debt: A Management Problem That Requires a Management Solution
Technical Debt: A Management Problem That Requires a Management SolutionTechnical Debt: A Management Problem That Requires a Management Solution
Technical Debt: A Management Problem That Requires a Management SolutionScott W. Ambler
 
Requirements Elicitation - Business Analysis Association of Ireland Annual Co...
Requirements Elicitation - Business Analysis Association of Ireland Annual Co...Requirements Elicitation - Business Analysis Association of Ireland Annual Co...
Requirements Elicitation - Business Analysis Association of Ireland Annual Co...Eugene O'Loughlin
 
Business Analysis Fundamentals
Business Analysis FundamentalsBusiness Analysis Fundamentals
Business Analysis Fundamentalswaelsaid75
 
Business Analyst Training
Business  Analyst  TrainingBusiness  Analyst  Training
Business Analyst TrainingCraig Brown
 
Getting Data Quality Right
Getting Data Quality RightGetting Data Quality Right
Getting Data Quality RightDATAVERSITY
 
Ba process plan- IGATE Global Solutions LTD
Ba process plan- IGATE Global Solutions LTDBa process plan- IGATE Global Solutions LTD
Ba process plan- IGATE Global Solutions LTDDebarata Basu
 
Top 5 Pitfalls to Avoid Implemeting COSO 2013
Top 5 Pitfalls to Avoid Implemeting COSO 2013Top 5 Pitfalls to Avoid Implemeting COSO 2013
Top 5 Pitfalls to Avoid Implemeting COSO 2013Aviva Spectrum™
 
Ba competencies white-paper-2-06[1]
Ba competencies white-paper-2-06[1]Ba competencies white-paper-2-06[1]
Ba competencies white-paper-2-06[1]AbhishekRaiITG
 
Lou wheatcraft
Lou wheatcraftLou wheatcraft
Lou wheatcraftNASAPMC
 
Requirements management and IBM Rational Jazz solutions
Requirements management and IBM Rational Jazz solutionsRequirements management and IBM Rational Jazz solutions
Requirements management and IBM Rational Jazz solutionsIBM Rational software
 
Enterprise architecture for an agile world - meetup
Enterprise architecture for an agile world - meetupEnterprise architecture for an agile world - meetup
Enterprise architecture for an agile world - meetupRoland Bair
 
Aliging IT with Business Goals, an Interactive Working Session
Aliging IT with Business Goals, an Interactive Working SessionAliging IT with Business Goals, an Interactive Working Session
Aliging IT with Business Goals, an Interactive Working SessionWalter Adamson
 
Klastorin parte1 1
Klastorin parte1 1Klastorin parte1 1
Klastorin parte1 1cpezoareyes
 
Sacred PM Practices
Sacred PM PracticesSacred PM Practices
Sacred PM PracticesJeff Edwards
 
Core Skills for Change Agents
Core Skills for Change AgentsCore Skills for Change Agents
Core Skills for Change AgentsCaltech
 
Keeping The Auditor Away: DevOps Audit Compliance Case Studies
Keeping The Auditor Away: DevOps Audit Compliance Case StudiesKeeping The Auditor Away: DevOps Audit Compliance Case Studies
Keeping The Auditor Away: DevOps Audit Compliance Case StudiesGene Kim
 

Similar to Behavior Driven Development // Brown Bag Lunch v1.0.0 (20)

What a waste of money! Orange Paper
What a waste of money! Orange PaperWhat a waste of money! Orange Paper
What a waste of money! Orange Paper
 
Software project management
Software project managementSoftware project management
Software project management
 
Requirements Gathering: What Could Possibly Go Wrong?
Requirements Gathering: What Could Possibly Go Wrong?Requirements Gathering: What Could Possibly Go Wrong?
Requirements Gathering: What Could Possibly Go Wrong?
 
Overcome barriers to good req mgmt
Overcome barriers to good req mgmtOvercome barriers to good req mgmt
Overcome barriers to good req mgmt
 
Technical Debt: A Management Problem That Requires a Management Solution
Technical Debt: A Management Problem That Requires a Management SolutionTechnical Debt: A Management Problem That Requires a Management Solution
Technical Debt: A Management Problem That Requires a Management Solution
 
Requirements Elicitation - Business Analysis Association of Ireland Annual Co...
Requirements Elicitation - Business Analysis Association of Ireland Annual Co...Requirements Elicitation - Business Analysis Association of Ireland Annual Co...
Requirements Elicitation - Business Analysis Association of Ireland Annual Co...
 
Business Analysis Fundamentals
Business Analysis FundamentalsBusiness Analysis Fundamentals
Business Analysis Fundamentals
 
Business Analyst Training
Business  Analyst  TrainingBusiness  Analyst  Training
Business Analyst Training
 
Getting Data Quality Right
Getting Data Quality RightGetting Data Quality Right
Getting Data Quality Right
 
Ba process plan- IGATE Global Solutions LTD
Ba process plan- IGATE Global Solutions LTDBa process plan- IGATE Global Solutions LTD
Ba process plan- IGATE Global Solutions LTD
 
Top 5 Pitfalls to Avoid Implemeting COSO 2013
Top 5 Pitfalls to Avoid Implemeting COSO 2013Top 5 Pitfalls to Avoid Implemeting COSO 2013
Top 5 Pitfalls to Avoid Implemeting COSO 2013
 
Ba competencies white-paper-2-06[1]
Ba competencies white-paper-2-06[1]Ba competencies white-paper-2-06[1]
Ba competencies white-paper-2-06[1]
 
Lou wheatcraft
Lou wheatcraftLou wheatcraft
Lou wheatcraft
 
Requirements management and IBM Rational Jazz solutions
Requirements management and IBM Rational Jazz solutionsRequirements management and IBM Rational Jazz solutions
Requirements management and IBM Rational Jazz solutions
 
Enterprise architecture for an agile world - meetup
Enterprise architecture for an agile world - meetupEnterprise architecture for an agile world - meetup
Enterprise architecture for an agile world - meetup
 
Aliging IT with Business Goals, an Interactive Working Session
Aliging IT with Business Goals, an Interactive Working SessionAliging IT with Business Goals, an Interactive Working Session
Aliging IT with Business Goals, an Interactive Working Session
 
Klastorin parte1 1
Klastorin parte1 1Klastorin parte1 1
Klastorin parte1 1
 
Sacred PM Practices
Sacred PM PracticesSacred PM Practices
Sacred PM Practices
 
Core Skills for Change Agents
Core Skills for Change AgentsCore Skills for Change Agents
Core Skills for Change Agents
 
Keeping The Auditor Away: DevOps Audit Compliance Case Studies
Keeping The Auditor Away: DevOps Audit Compliance Case StudiesKeeping The Auditor Away: DevOps Audit Compliance Case Studies
Keeping The Auditor Away: DevOps Audit Compliance Case Studies
 

Recently uploaded

Solving The Right Triangles PowerPoint 2.ppt
Solving The Right Triangles PowerPoint 2.pptSolving The Right Triangles PowerPoint 2.ppt
Solving The Right Triangles PowerPoint 2.pptJasonTagapanGulla
 
Arduino_CSE ece ppt for working and principal of arduino.ppt
Arduino_CSE ece ppt for working and principal of arduino.pptArduino_CSE ece ppt for working and principal of arduino.ppt
Arduino_CSE ece ppt for working and principal of arduino.pptSAURABHKUMAR892774
 
welding defects observed during the welding
welding defects observed during the weldingwelding defects observed during the welding
welding defects observed during the weldingMuhammadUzairLiaqat
 
Correctly Loading Incremental Data at Scale
Correctly Loading Incremental Data at ScaleCorrectly Loading Incremental Data at Scale
Correctly Loading Incremental Data at ScaleAlluxio, Inc.
 
Risk Assessment For Installation of Drainage Pipes.pdf
Risk Assessment For Installation of Drainage Pipes.pdfRisk Assessment For Installation of Drainage Pipes.pdf
Risk Assessment For Installation of Drainage Pipes.pdfROCENODodongVILLACER
 
Introduction-To-Agricultural-Surveillance-Rover.pptx
Introduction-To-Agricultural-Surveillance-Rover.pptxIntroduction-To-Agricultural-Surveillance-Rover.pptx
Introduction-To-Agricultural-Surveillance-Rover.pptxk795866
 
Instrumentation, measurement and control of bio process parameters ( Temperat...
Instrumentation, measurement and control of bio process parameters ( Temperat...Instrumentation, measurement and control of bio process parameters ( Temperat...
Instrumentation, measurement and control of bio process parameters ( Temperat...121011101441
 
Virtual memory management in Operating System
Virtual memory management in Operating SystemVirtual memory management in Operating System
Virtual memory management in Operating SystemRashmi Bhat
 
Call Girls Narol 7397865700 Independent Call Girls
Call Girls Narol 7397865700 Independent Call GirlsCall Girls Narol 7397865700 Independent Call Girls
Call Girls Narol 7397865700 Independent Call Girlsssuser7cb4ff
 
Input Output Management in Operating System
Input Output Management in Operating SystemInput Output Management in Operating System
Input Output Management in Operating SystemRashmi Bhat
 
Internet of things -Arshdeep Bahga .pptx
Internet of things -Arshdeep Bahga .pptxInternet of things -Arshdeep Bahga .pptx
Internet of things -Arshdeep Bahga .pptxVelmuruganTECE
 
Class 1 | NFPA 72 | Overview Fire Alarm System
Class 1 | NFPA 72 | Overview Fire Alarm SystemClass 1 | NFPA 72 | Overview Fire Alarm System
Class 1 | NFPA 72 | Overview Fire Alarm Systemirfanmechengr
 
Sachpazis Costas: Geotechnical Engineering: A student's Perspective Introduction
Sachpazis Costas: Geotechnical Engineering: A student's Perspective IntroductionSachpazis Costas: Geotechnical Engineering: A student's Perspective Introduction
Sachpazis Costas: Geotechnical Engineering: A student's Perspective IntroductionDr.Costas Sachpazis
 
Why does (not) Kafka need fsync: Eliminating tail latency spikes caused by fsync
Why does (not) Kafka need fsync: Eliminating tail latency spikes caused by fsyncWhy does (not) Kafka need fsync: Eliminating tail latency spikes caused by fsync
Why does (not) Kafka need fsync: Eliminating tail latency spikes caused by fsyncssuser2ae721
 
Transport layer issues and challenges - Guide
Transport layer issues and challenges - GuideTransport layer issues and challenges - Guide
Transport layer issues and challenges - GuideGOPINATHS437943
 
THE SENDAI FRAMEWORK FOR DISASTER RISK REDUCTION
THE SENDAI FRAMEWORK FOR DISASTER RISK REDUCTIONTHE SENDAI FRAMEWORK FOR DISASTER RISK REDUCTION
THE SENDAI FRAMEWORK FOR DISASTER RISK REDUCTIONjhunlian
 
Concrete Mix Design - IS 10262-2019 - .pptx
Concrete Mix Design - IS 10262-2019 - .pptxConcrete Mix Design - IS 10262-2019 - .pptx
Concrete Mix Design - IS 10262-2019 - .pptxKartikeyaDwivedi3
 
Vishratwadi & Ghorpadi Bridge Tender documents
Vishratwadi & Ghorpadi Bridge Tender documentsVishratwadi & Ghorpadi Bridge Tender documents
Vishratwadi & Ghorpadi Bridge Tender documentsSachinPawar510423
 

Recently uploaded (20)

Solving The Right Triangles PowerPoint 2.ppt
Solving The Right Triangles PowerPoint 2.pptSolving The Right Triangles PowerPoint 2.ppt
Solving The Right Triangles PowerPoint 2.ppt
 
Arduino_CSE ece ppt for working and principal of arduino.ppt
Arduino_CSE ece ppt for working and principal of arduino.pptArduino_CSE ece ppt for working and principal of arduino.ppt
Arduino_CSE ece ppt for working and principal of arduino.ppt
 
welding defects observed during the welding
welding defects observed during the weldingwelding defects observed during the welding
welding defects observed during the welding
 
Correctly Loading Incremental Data at Scale
Correctly Loading Incremental Data at ScaleCorrectly Loading Incremental Data at Scale
Correctly Loading Incremental Data at Scale
 
Risk Assessment For Installation of Drainage Pipes.pdf
Risk Assessment For Installation of Drainage Pipes.pdfRisk Assessment For Installation of Drainage Pipes.pdf
Risk Assessment For Installation of Drainage Pipes.pdf
 
Introduction-To-Agricultural-Surveillance-Rover.pptx
Introduction-To-Agricultural-Surveillance-Rover.pptxIntroduction-To-Agricultural-Surveillance-Rover.pptx
Introduction-To-Agricultural-Surveillance-Rover.pptx
 
Instrumentation, measurement and control of bio process parameters ( Temperat...
Instrumentation, measurement and control of bio process parameters ( Temperat...Instrumentation, measurement and control of bio process parameters ( Temperat...
Instrumentation, measurement and control of bio process parameters ( Temperat...
 
Virtual memory management in Operating System
Virtual memory management in Operating SystemVirtual memory management in Operating System
Virtual memory management in Operating System
 
🔝9953056974🔝!!-YOUNG call girls in Rajendra Nagar Escort rvice Shot 2000 nigh...
🔝9953056974🔝!!-YOUNG call girls in Rajendra Nagar Escort rvice Shot 2000 nigh...🔝9953056974🔝!!-YOUNG call girls in Rajendra Nagar Escort rvice Shot 2000 nigh...
🔝9953056974🔝!!-YOUNG call girls in Rajendra Nagar Escort rvice Shot 2000 nigh...
 
Call Girls Narol 7397865700 Independent Call Girls
Call Girls Narol 7397865700 Independent Call GirlsCall Girls Narol 7397865700 Independent Call Girls
Call Girls Narol 7397865700 Independent Call Girls
 
Design and analysis of solar grass cutter.pdf
Design and analysis of solar grass cutter.pdfDesign and analysis of solar grass cutter.pdf
Design and analysis of solar grass cutter.pdf
 
Input Output Management in Operating System
Input Output Management in Operating SystemInput Output Management in Operating System
Input Output Management in Operating System
 
Internet of things -Arshdeep Bahga .pptx
Internet of things -Arshdeep Bahga .pptxInternet of things -Arshdeep Bahga .pptx
Internet of things -Arshdeep Bahga .pptx
 
Class 1 | NFPA 72 | Overview Fire Alarm System
Class 1 | NFPA 72 | Overview Fire Alarm SystemClass 1 | NFPA 72 | Overview Fire Alarm System
Class 1 | NFPA 72 | Overview Fire Alarm System
 
Sachpazis Costas: Geotechnical Engineering: A student's Perspective Introduction
Sachpazis Costas: Geotechnical Engineering: A student's Perspective IntroductionSachpazis Costas: Geotechnical Engineering: A student's Perspective Introduction
Sachpazis Costas: Geotechnical Engineering: A student's Perspective Introduction
 
Why does (not) Kafka need fsync: Eliminating tail latency spikes caused by fsync
Why does (not) Kafka need fsync: Eliminating tail latency spikes caused by fsyncWhy does (not) Kafka need fsync: Eliminating tail latency spikes caused by fsync
Why does (not) Kafka need fsync: Eliminating tail latency spikes caused by fsync
 
Transport layer issues and challenges - Guide
Transport layer issues and challenges - GuideTransport layer issues and challenges - Guide
Transport layer issues and challenges - Guide
 
THE SENDAI FRAMEWORK FOR DISASTER RISK REDUCTION
THE SENDAI FRAMEWORK FOR DISASTER RISK REDUCTIONTHE SENDAI FRAMEWORK FOR DISASTER RISK REDUCTION
THE SENDAI FRAMEWORK FOR DISASTER RISK REDUCTION
 
Concrete Mix Design - IS 10262-2019 - .pptx
Concrete Mix Design - IS 10262-2019 - .pptxConcrete Mix Design - IS 10262-2019 - .pptx
Concrete Mix Design - IS 10262-2019 - .pptx
 
Vishratwadi & Ghorpadi Bridge Tender documents
Vishratwadi & Ghorpadi Bridge Tender documentsVishratwadi & Ghorpadi Bridge Tender documents
Vishratwadi & Ghorpadi Bridge Tender documents
 

Behavior Driven Development // Brown Bag Lunch v1.0.0

  • 1. Behavior Driven Development & Specification by Example With S Arnauld Loyer - @aloyer
  • 2. Authentic Developer since 2000! Arnauld Loyer @aloyer Software Craftsman BDD fan boy @aloyer
  • 3. Exercise: Draw a 12 points Star @aloyer
  • 4. Exercise: Draw a 12 points Star or or @aloyer
  • 5. "Sherlock saw the man with binoculars" @aloyer
  • 6. Attention ceci est une « Bullet Attack » Un bon cahier des charges peut être caractérisé par ! les 7 qualificatifs suivants [IEEE 830]:! ! • non ambigu! • complet! • vérifiable! • consistant! • modifiable! • traçable! • utilisable durant la maintenance @aloyer
  • 7. Chaos Report @aloyer http://blog.standishgroup.com/
  • 8. Project Challenged Factors 1. Lack of User Input 12.8% 2. Incomplete Requirements & Specifications 12.3% 3. Changing Requirements & Specifications 11.8% 4. Lack of Executive Support 7.5% 5. Technology Incompetence 7.0% 6. Lack of Resources 6.4% 7. Unrealistic Expectations 5.9% 8. Unclear Objectives 5.3% 9. Unrealistic Time Frames 4.3% 10. New Technology 3.7% ! Project Impaired Factors % of 1. Incomplete Requirements 13.1% 2. Lack of User Involvement 12.4% 3. Lack of Resources 10.6% 4. Unrealistic Expectations 9.9% 5. Lack of Executive Support 9.3% 6. Changing Requirements & Specifications 8.7% 7. Lack of Planning 8.1% 8. Didn't Need It Any Longer 7.5% 9. Lack of IT Management 6.2% 10. Technology Illiteracy 4.3% Chaos Report http://blog.standishgroup.com/ @aloyer
  • 9. The Bull Survey (1998) ! All the managers interviewed had previously taken the lead in integrating large systems within organizations in the Times Top 100.! ! Project Evaluation Criteria ! The main IT project failure criteria identified by the IT and project managers were:! * missed deadlines (75%)! * exceeded budget (55%)! * poor communications (40%)! * inability to meet project requirements (37%).! ! http://www.it-cortex.com/Stat_Failure_Cause.htm @aloyer
  • 10. The Bull Survey (1998) ! All 2005 the Survey: managers The interviewed Top had previously taken the lead in integrating large systems within organizations in the Challenges Times Top Facing 100.! Business ! Analysts Project Evaluation Criteria ! The main IT project failure criteria identified by the IT and project managers were:! * missed deadlines (75%)! * exceeded budget (55%)! * poor communications (40%)! * inability to meet project requirements (37%).! ! http://www.it-cortex.com/Stat_Failure_Cause.htm Business Improvement Architect’s research sur vey of Business Analysts attending Project World/ Business Analyst World 2005 in Toronto, Canada, identified that ‘Lack of Clarity in the Scope of the Business Functions’ and ‘Business Requirements Not Well-Defined” are the top two challenges facing their organizations in managing business requirements.! ! -- http://www.bia.ca/articles/TheTopChallengesFacingBusinessAnalysts.htm @aloyer
  • 11. Why IT Projects Fail 1. Lack of Governance! 2. Internal Politics! 3. Poor communication between business and IT! 4. Unclear expectations! The Bull Survey (1998) ! All 2005 the Survey: managers The interviewed Top had previously taken the lead in integrating large systems within organizations in the Challenges Times Top Facing 100.! Business ! Analysts Project Evaluation Criteria ! The main IT project failure criteria identified by the IT and project managers were:! * missed deadlines (75%)! * exceeded budget (55%)! * poor communications (40%)! * inability to meet project requirements (37%).! ! http://www.it-cortex.com/Stat_Failure_Cause.htm Business Improvement Architect’s research sur vey of Business Analysts attending Project World/ Business Analyst World 2005 in Toronto, Canada, identified that ‘Lack of Clarity in the Scope of the Business Functions’ and ‘Business Requirements Not Well-Defined” are the top two challenges facing their organizations in managing business requirements.! ! -- http://www.bia.ca/articles/TheTopChallengesFacingBusinessAnalysts.htm ! http://www.itbusinessedge.com/slideshows/show.aspx?c=81818&slide=4 @aloyer
  • 12. Why IT Projects Fail 1. Lack of Governance! 2. Internal Politics! 3. Poor communication between business and IT! 4. Unclear expectations! The Bull Survey (1998) ! All 2005 the Survey: managers The interviewed Top had previously taken the lead in integrating large systems within organizations in the Challenges Times Top Facing 100.! Business ! Analysts Project Evaluation Criteria ! The main IT project failure criteria identified by the IT and project managers were:! * missed deadlines (75%)! * exceeded budget (55%)! * poor communications (40%)! * inability to meet project requirements (37%).! ! http://www.it-cortex.com/Stat_Failure_Cause.htm Business Improvement Architect’s research sur vey of Business Analysts attending Project World/ Business Analyst World 2005 in Toronto, Canada, identified that ‘Lack of Clarity in the Scope of the Business Functions’ and ‘Business Requirements Not Well-Defined” are the top two challenges facing their organizations in managing business requirements.! ! -- http://www.bia.ca/articles/TheTopChallengesFacingBusinessAnalysts.htm ! http://www.itbusinessedge.com/slideshows/show.aspx?c=81818&slide=4 Why Software Fails - We waste billions of dollars each year on entirely preventable mistakes (2005)! http://spectrum.ieee .org/computing/software/why-software-fails! ! Among the most common factors:! * Unrealistic or unarticulated project goals! * Inaccurate estimates of needed resources! * Badly defined system requirements! * Poor reporting of the project's status! * Unmanaged risks! * Poor communication among customers, developers, and users! * Use of immature technology! * Inability to handle the project's complexity! * Sloppy development practices! * Poor project management! * Stakeholder politics! * Commercial pressures @aloyer
  • 13. Why IT Projects Fail 1. Lack of Governance! 2. Internal Politics! 3. Poor communication between business and IT! 4. Unclear expectations! Seven Reasons IT Projects Fail - February 2012 ! 1. Poor Project Planning and Direction 2. Insufficient Communication 3. Ineffective Management 4. Failure to Align With Constituents and Stakeholders ! The Bull Survey (1998) ! All 2005 the Survey: managers The interviewed Top had previously taken the lead in integrating large systems within organizations in the Challenges Times Top Facing 100.! Business ! Analysts Project Evaluation Criteria ! The main IT project failure criteria identified by the IT and project managers were:! * missed deadlines (75%)! * exceeded budget (55%)! * poor communications (40%)! * inability to meet project requirements (37%).! ! http://www.it-cortex.com/Stat_Failure_Cause.htm Business http://Improvement www.ibmsystemsmag.com/power/Systems-Management/Workload-Management/ Architect’s research sur vey of Business Analysts attending Project World/ Business Analyst World 2005 in Toronto, Canada, identified that ‘Lack of Clarity in the Scope of the Business Functions’ and ‘Business Requirements Not Well-Defined” are the top two challenges facing their organizations in managing business requirements.! ! -- http://www.bia.ca/articles/TheTopChallengesFacingBusinessAnalysts.htm ! http://www.itbusinessedge.com/slideshows/show.aspx?c=81818&slide=4 Why Software Fails - We waste billions of dollars each year on entirely preventable mistakes (2005)! http://spectrum.ieee .org/computing/software/why-software-fails! ! Among the most common factors:! * Unrealistic or unarticulated project goals! * Inaccurate estimates of needed resources! * Badly defined system requirements! * Poor reporting of the project's status! * Unmanaged risks! * Poor communication among customers, developers, and users! * Use of immature technology! * Inability to handle the project's complexity! * Sloppy development practices! * Poor project management! * Stakeholder politics! * Commercial pressures project_pitfalls/?page=2! @aloyer
  • 14. Why IT Projects Fail 1. Lack of Governance! 2. Internal Politics! 3. Poor communication between business and IT! 4. Unclear expectations! Seven Reasons IT Projects Fail - February 2012 ! 1. Poor Project Planning and Direction 2. Insufficient Communication 3. Ineffective Management 4. Failure to Align With Constituents and Stakeholders ! The Bull Survey (1998) ! All 2005 the Survey: managers The interviewed Top had previously taken the lead in integrating large systems within organizations in the Challenges Times Top Facing 100.! Business ! Analysts Project Evaluation Criteria ! The main IT project failure criteria identified by the IT and project managers were:! * missed deadlines (75%)! * exceeded budget (55%)! * poor communications (40%)! * inability to meet project requirements (37%).! ! http://www.it-cortex.com/Stat_Failure_Cause.htm Business http://Improvement www.ibmsystemsmag.com/power/Systems-Management/Workload-Management/ Architect’s research sur vey of Business Analysts attending Project World/ Business Analyst World 2005 in Toronto, Canada, identified that ‘Lack of Clarity in the Scope of the Business Functions’ and ‘Business Requirements Not Well-Defined” are the top two challenges facing their organizations in managing business requirements.! ! -- http://www.bia.ca/articles/TheTopChallengesFacingBusinessAnalysts.htm ! http://www.itbusinessedge.com/slideshows/show.aspx?c=81818&slide=4 Why Software Fails - We waste billions of dollars each year on entirely preventable mistakes (2005)! http://spectrum.ieee .org/computing/software/why-software-fails! ! Among the most common factors:! * Unrealistic or unarticulated project goals! * Inaccurate estimates of needed resources! * Badly defined system requirements! * Poor reporting of the project's status! * Unmanaged risks! * Poor communication among customers, developers, and users! * Use of immature technology! * Inability to handle the project's complexity! * Sloppy development practices! * Poor project management! * Stakeholder politics! * Commercial pressures project_pitfalls/?page=2! The Most Common Factors for the failure of Software Development Project ! 1. Lack of Customer or User Involvement 2. Unclear goals and objectives 3. Poor Requirement Set 4. Lack of Resources 5. Failure to communicate and act as a team ! ! Volume 1, No. 11, Januar y 2013 ISSN – 2278-1080 ! The International Journal of Computer Science & Applications! http://www.journalofcomputerscience.com/2013Issue/Jan13/V1No11Jan13P044.pdf @aloyer
  • 15. I want « A » A BDD in 5 minutes @aloyer 10
  • 16. I want « A » Let’s Specify « B » A BDD in 5 minutes @aloyer 10
  • 17. I want « A » Let’s Specify « B » B A BDD in 5 minutes @aloyer 10
  • 18. I want « A » I Will Test « C » C B A Let’s Specify « B » BDD in 5 minutes 11 11
  • 19. I want « A » D B I Will Test « C » Let’s Develop « D » C A Let’s Specify « B » BDD in 5 minutes 12
  • 20. D C B Wanted A Developed Specified Tested BDD in 5 minutes 13 13
  • 21. D C B Wanted A Developed Specified Tested Humpff BDD in 5 minutes 13 13
  • 22. BDD in 5 minutes 14
  • 23. NooOOOOooo!! BDD in 5 minutes 14
  • 24. "is this a bug or is this not a bug?" a bug? a feature? a beature? an enhancement?
  • 28. 3 steps 3 models 3 interpretations @aloyer
  • 29. 3 steps 3 models 3 interpretations @aloyer
  • 30. 3 visions 1 model 1 goal @aloyer
  • 31. Working together to find better solutions Use real-world examples to build a shared understanding of the domain People understand requirements best using concrete examples. Examples clear up ambiguity and misunderstandings. Examples expose missing requirements. Examples force everyone to think harder about a problem. @aloyer
  • 32. Behavior Driven Development! « 2003 » Test First Test Driven Development Executable Specification! & Automation Exploratory Examples! & Discussion @aloyer
  • 33. It’s NOT about tools http://pencilink.blogspot.fr/2010/10/iron-man-160-jim-starlin-cover-steve.html @aloyer
  • 34. It’s NOT about tools It’s about Communication and Behavior! http://pencilink.blogspot.fr/2010/10/iron-man-160-jim-starlin-cover-steve.html @aloyer
  • 35. It’s NOT about Testing http://ungoliantschilde.tumblr.com/post/78793890826/ungoliantschilde-barry-windsor-smith-that @aloyer
  • 36. It’s NOT about Testing It’s about Exploring the Unknown http://ungoliantschilde.tumblr.com/post/78793890826/ungoliantschilde-barry-windsor-smith-that @aloyer
  • 37. It’s not about Silo!Or Acceptance Criteria @aloyer
  • 38. It’s not about Silo!Or Acceptance Criteria It’s about Sharing and Understanding @aloyer
  • 39. It’s about Driven Development! @aloyer
  • 40. Examples Tests Requirements elaborate can become verify @aloyer
  • 43. BDD is about conversation @aloyer
  • 44. BDD is about conversation BDD is not about tools @aloyer
  • 47. Why? What? Goal? Business Value? How! @aloyer
  • 48. Intention Why? What? How! Goal? Business Value? @aloyer
  • 49. 29
  • 50. Why? Goal? Business Value? Feature: ... In order to <achieve the vision> As a <stakeholder> I want <value> Intention What? How! @aloyer
  • 51. Why? Goal? Business Value? Feature: ... In order to <achieve the vision> As a <stakeholder> I want <value> Intention As a <role> I want <goal> So that <value> User focused What? How! @aloyer
  • 52. No Narrative No Business Value Unnecessary Feature ! @aloyer
  • 53. Feature Criteria! (Rules) Criteria! (Rules) What is it supposed to do Example Example Illustration of Example Example Example Acceptance Criteria vs Example @aloyer 32
  • 54. Password OK/KO Reason Arn4uld KO No special characters arnauld$ KO No upper case Arn4ld$ OK Z0€ KO too short Last Passwords Password OK/KO J0hn$! $m1th! Arn4ld$ Arn4ld$ KO J0hn$! Arn4ld$! $m1th Arn4ld$ KO Arn4ld$! J0hn$! $m1th Arn4ld$ OK Examples of Examples @aloyer 33
  • 55. Feature: ... As a... I want to... Scenario: ... In order to... @aloyer
  • 56. Feature: ... As a... I want to... Scenario: ... In order to... Given <a context> When <an event happens> Then <an outcome should occur> @aloyer
  • 57. BDD uses examples to illustrate Feature: ... As a... I want to... Scenario: ... In order to... behavior Given <a context> When <an event happens> Then <an outcome should occur> @aloyer
  • 58. Scenario: Some determinable business situation Every scenario consists of a list of steps Given <a specific context> When <an action is performed on the system> Then <an expected outcome should be observed> Gherkin - Scenario - Given/When/Then 35 Resulting! State Initial! Context Given Given Given Given When Then When Then Then Transition @aloyer
  • 59. Given! ! The purpose of givens is to put the system in a known state before interacting with it. They defines the preconditions. ! • Indicate which environment to use • Insert values in database • Fill context with predefined users • Log user • … Given there are no users on site! Given the database is clean Given the predefined high and volatile stocks Given I am logged in as "Balthazar" Gherkin - Scenario - Given/When/Then @aloyer 36
  • 60. When! ! The purpose of when steps is to describe the key action performed (the state transition). ! • Trigger commands • Interact with the UI • Go to a specific page, Fill a form, Select books or CDs • Launch a batch • … When I log in the application as "Gaspard" When I look at my profile! When I book the deal When I generate the financial report Gherkin - Scenario - Given/When/Then @aloyer 37
  • 61. Then! ! The purpose of Then steps is to observe outcomes. The observations should be related to the business value/ benefit of the feature. ! • Feedback message • Generated document, Mail sent • Command output • Data updated • … Gherkin - Scenario - Given/When/Then It should be something related to the Given/When Then I should see a welcome message Then the report should contain the created deal! Then the result should be 42 @aloyer 39
  • 62. Why do YOU like should? It encourages debate, and constant Questioning of the premise of the application you are developing. Dan North, March 2005 DMZ BDD Approach Gherkin - Should 40 @aloyer 40
  • 63. Scenario: Some determinable business situation ! Given a specific context Given another specific context Given an even other specific context When an action is performed on the system When another action is performed on the system Then expected outcome Then an other expected outcome Then an even other expected outcome Gherkin - Scenario - Given/When/Then @aloyer 41
  • 64. Scenario: Some determinable business situation ! Given a specific context And another specific context But an even other specific context When an action is performed on the system And another action is performed on the system Then expected outcome And an other expected outcome But an even other expected outcome Given/When/Then + And/But Gherkin - Scenario - And/But @aloyer 42
  • 65. Feature: Trade Execution ! In order to reduce the risk of other clearing firm failing to honor its trade settlement obligations As a clearing firm I want that a clearing house stands between me and the other firm Scenario: New trade is confirmed between the bank and counterparty ! Given A new trade between the bank and counterparty When the trade is captured Then it should be sent to clearing house for matching Gherkin - Sample @aloyer 43
  • 66. Feature: Trade Execution ! In order to reduce the risk of other clearing firm failing to honor its trade settlement obligations As a clearing firm I want that a clearing house stands between me and the other firm Scenario: New trade is confirmed between the bank and counterparty ! Given A new trade between the bank and counterparty When the trade is captured Then it should be sent to clearing house for matching Gherkin - Sample 44 Must give a quick overview of what scenario is doing @aloyer
  • 67. Feature: Addition feature ! In order to perform mathematical operations As an accounting officer I want to be able to add numbers Gherkin - Sample Calculator Feature @aloyer 45
  • 68. What could be the first use case? @aloyer Gherkin - Sample Calculator Feature 46
  • 69. Feature: Addition feature ! In order to perform mathematical operations As an accounting officer I want to be able to add numbers ! Scenario: Addition of positive numbers ! Given two numbers 12 and 7 When I add them Then the result should be 19 Gherkin - Sample Calculator Feature @aloyer 47
  • 70. Feature: Addition feature ! In order to perform mathematical operations As an accounting officer I want to be able to add numbers ! Scenario: Addition of positive numbers ! Given two numbers 12 and 7 When I add them Then the result should be 19 the Given/When ‟ Gherkin - Sample Calculator Feature 47 It should be something related to @aloyer
  • 71. Feature: Addition feature ! In order to perform mathematical operations As an accounting officer I want to be able to add numbers ! Scenario: Addition of positive numbers ! Given two numbers 12 and 7 When I add them Then the result should be 19 the Given/When ‟ Gherkin - Sample Calculator Feature 48 It should be something related to Scenario: Addition of positive numbers ! Given two numbers 12 and 7 When I add them Then the result should be 23 Should Fail! @aloyer
  • 72. What could be the next Scenario? @aloyer Gherkin - Sample Calculator Feature 49
  • 73. Feature: Addition feature ! In order to perform mathematical operations As an accounting officer I want to be able to add numbers ! Scenario: Addition of positive numbers ! Given two numbers 12 and 7 When I add them Then the result should be 19 ! Scenario: Addition of a positive number and a negative number ! Given two numbers 11 and -3 When I add them Then the result should be 8 Gherkin - Sample Calculator Feature @aloyer 50
  • 74. Feature: Addition feature ! In order to perform mathematical operations As an accounting officer I want to be able to add numbers ! Scenario: Addition of positive numbers ! Given two numbers 12 and 7 When I add them Then the result should be 19 ! Scenario: Addition of a positive number and a negative number ! Given two numbers 11 and -3 When I add them Then the result should be 8 Gherkin - Sample Calculator Feature 51 Reusable Step @aloyer
  • 75. Feature: Addition feature ! In order to perform mathematical operations As an accounting officer I want to be able to add numbers ! Scenario: Addition of positive numbers ! Given two numbers 12 and 7 When I add them Then the result should be 19 ! Scenario: Addition of a positive number and a negative number ! Given two numbers 11 and -3 When I add them Then the result should be 8 Gherkin - Sample Calculator Feature 52 Parameterized Step @aloyer
  • 80. Feature: ... As a... I want to... Scenario: ... In order to... Given <a context> When <an event happens> Then <an outcome should occur> @aloyer
  • 81. Feature: ... As a... I want to... Scenario: ... In order to... Given <a context> When <an event happens> Then <an outcome should occur> @aloyer
  • 82. Examples help discover things early Feature: ... As a... I want to... Scenario: ... In order to... Given <a context> When <an event happens> Then <an outcome should occur> @aloyer
  • 83. One may discover that one doesn't know Feature: ... As a... I want to... Scenario: ... In order to... but others do! Given <a context> When <an event happens> Then <an outcome should occur> @aloyer