6. In order to know what the hell I’m
doing
As a disillusioned team member
I need a vast and sprawling backlog
of 50 million disembodied user
stories entered into Jira
7. Code
A conversation
Unit
Tests
Some Tests
Agile?
In order to know what the hell
I’m doing
As a disillusioned team
member
I need a vast and sprawling
backlog of 50 million user
stories entered into Jira
Better collaboration
Lots less
Documentation!
8. Code
A conversation
Unit
Tests
Some Tests
TDD?
In order to know what the hell
I’m doing
As a disillusioned team
member
I need a vast and sprawling
backlog of 50 million user
stories entered into Jira
Unit tests inform the
implementation and we can
make changes more
confidently
Better collaboration
Lots less
Documentation!
9. Code
A conversation
Unit
Tests
Examples
BDD?
In order to know what the hell
I’m doing
As a disillusioned team
member
I need a vast and sprawling
backlog of 50 million user
stories entered into Jira
The test is the
specification
Better collaboration
Lots less
Documentation!
Unit tests inform the
implementation and we can
make changes more
confidently
Less
ambiguity
14. Code and well named tests
Examples that help project teams understand the
outputs and interactions that deliver those outcomes
Examples that help development teams agree on the
scenarios, behaviours and interfaces and how to verify them
Examples that help stakeholders agree
outcomes & explore options
Nirvana
Examples that help development teams clarify
implementation of rules, and guide development
Continuous
collaboration
22. Getting the Balance Right
is hard if our only tools are
As a… In order to… I want…
and
Given… When… Then…
23. BDD practitioners use conversations
about concrete examples
to build up a common understanding
of what features will deliver real value
to the organisation
@wakaleo
24. Activity 4
Inputs
Inputs
Outcomes
In order to xxx
As a xxx
I need xxx
1
2
Illustrate these using
examples
Activity 1 Activity 2 Activity 3 Activity 4
3 Process
Outputs0.99 ✗
1 ✓
£$% ✗
5
Inputs and data attributes to
drive the scenarios.
Like Test Conditions or
detailed examples
The process or interactions required to generate the
outputs:
Like the backbone of a Story Map
Use Specification
by Example for this
Scenarios
Scenarios
4
Given xxx
When xxx
Then xxx
Different paths through the
process to generate the
outputs
Like Test Cases
These are the outputs that
deliver the required outcomes
You could get this starting point
from the ‘How’ level of an Impact
Map. The ‘Impacts’
Back of a fag packet
BDD Analysis
26. Activity 4
Inputs
Inputs
Outcomes
In order to xxx
As a xxx
I need xxx
1
2
Illustrate these using
examples
Activity 1 Activity 2 Activity 3 Activity 4
3 Process
Outputs0.99 ✗
1 ✓
£$% ✗
5
Inputs and data attributes to
drive the scenarios.
Like Test Conditions or
detailed examples
The process or interactions required to generate the
outputs:
Like the backbone of a Story Map
Use Specification
by Example for this
Scenarios
Scenarios
4
Given xxx
When xxx
Then xxx
Different paths through the
process to generate the
outputs
Like Test Cases
These are the outputs that
deliver the required outcomes
You could get this starting point
from the ‘How’ level of an Impact
Map. The ‘Impacts’
Back of a fag packet
BDD Analysis
27.
28. Doing the right thing is more important
than doing the thing right
There is nothing quite so useless as
doing with great efficiency something
that should not be done at all
-Peter Drucker
42. You could get this starting point
from the ‘How’ level of an Impact
Map. The ‘Impacts’
43. Inputs
Inputs
Outcomes
In order to xxx
As a xxx
I need xxx
1
Activity 1 Activity 2 Activity 3 Activity 4
3 Process
0.99 ✗
1 ✓
£$% ✗
5
Inputs and data attributes to
drive the scenarios.
Like Test Conditions or
detailed examples
The process or interactions required to generate the
outputs:
Like the backbone of a Story Map
Use Specification
by Example for this
Scenarios
Scenarios
4
Given xxx
When xxx
Then xxx
Different paths through the
process to generate the
outputs
Like Test Cases
Activity 4
2
Illustrate these using
examples
Outputs
These are the outputs that
deliver the required outcomes
You could get this starting point
from the ‘How’ level of an Impact
Map. The ‘Impacts’
Back of a fag packet
BDD Analysis
46. £10 off BigMart
Garden Centre
Coupon to be accepted only at BigMart stores.
Coupon cannot be exchanged for cash. This coupon
cannot be used in conjunction with any other
BigMart offer. Only one coupon used per
transaction. Coupon valid until 15/1/2015
When you Present your
BigMart Club Card
£1 off NEW Rustic
Wrap range
Coupon to be accepted only at BigMart stores.
Coupon cannot be exchanged for cash. This coupon
cannot be used in conjunction with any other
BigMart offer. Only one coupon used per
transaction. Coupon valid until 15/11/2015
Thanks Jenny!
Thanks for your loyalty to
BigMart this month, here’s
a coupon for some free
Cava to say thanks
See www.BigMar.com/Rewards for
terms and conditions
49. Inputs
Inputs
Outcomes
In order to xxx
As a xxx
I need xxx
1
Activity 1 Activity 2 Activity 3 Activity 4
3 Process
0.99 ✗
1 ✓
£$% ✗
5
Inputs and data attributes to
drive the scenarios.
Like Test Conditions or
detailed examples
The process or interactions required to generate the
outputs:
Like the backbone of a Story Map
Use Specification
by Example for this
Scenarios
Scenarios
4
Given xxx
When xxx
Then xxx
Different paths through the
process to generate the
outputs
Like Test Cases
Illustrate these using
examples
Activity 4
2
Outputs
These are the outputs that
deliver the required outcomes
You could get this starting point
from the ‘How’ level of an Impact
Map. The ‘Impacts’
Back of a fag packet
BDD Analysis
50. Activity 1 Activity 2 Activity 3 Activity 4
3 Process
The process or interactions required to
generate the outputs:
Like the backbone of a Story Map
Processes give our outputs context and relevance
51. Create
Coupon
Issue
Coupon
View
Reports
Setup on
portal
View on
portal
Edit on
Portal
Publish to
till emulator
Publish to
live till
Evaluate
Rules
Issue
Coupon
View
Reports
backbone
Setup creative
Setup
Issuance Rules
Setup
Distribution
Rules
Setup Priorities
View existing
Coupon
Edit & Save
Changes
Evaluate
basket from
emulator
Render coupon
in emulator
Real time
issuance
update to
portal
Publish without
images
Publish
multiple
coupons
Evaluate
personal offers
from emulator
Coupon
issuance report
updated
Publish with
images
Evaluate &
Prioritise
coupons
Edit & Publish
updates
Print Coupon
Issue offer to
mobile app
Sort reports by
Campaign
54. Create
Coupon
Issue
Coupon
View
Reports
Setup on
portal
View on
portal
Edit on
Portal
Publish to
till emulator
Publish to
live till
Evaluate
Rules
Issue
Coupon
View
Reports
backbone
Setup creative
Setup
Issuance Rules
Setup
Distribution
Rules
Setup Priorities
View existing
Coupon
Edit & Save
Changes
Evaluate
basket from
emulator
Render coupon
in emulator
Real time
issuance
update to
portal
Publish without
images
Publish
multiple
coupons
Evaluate
personal offers
from emulator
Coupon
issuance report
updated
Publish with
images
Evaluate &
Prioritise
coupons
Edit & Publish
updates
Print Coupon
Issue offer to
mobile app
Sort reports by
Campaign
56. Create
Coupon
Issue
Coupon
View
Reports
Setup on
portal
View on
portal
Edit on
Portal
Publish to
till emulator
Publish to
live till
Evaluate
Rules
Issue
Coupon
View
Reports
backbone
Setup creative
Setup
Issuance Rules
Setup
Distribution
Rules
Setup Priorities
View existing
Coupon
Edit & Save
Changes
Evaluate
basket from
emulator
Render coupon
in emulator
Real time
issuance
update to
portal
Publish without
images
Publish
multiple
coupons
Evaluate
personal offers
from emulator
Coupon
issuance report
updated
Publish with
images
Evaluate &
Prioritise
coupons
Edit & Publish
updates
Print Coupon
Issue offer to
mobile app
Sort reports by
Campaign
57. Create
Coupon
Issue
Coupon
View
Reports
Setup on
portal
View on
portal
Edit on
Portal
Publish to
till emulator
Publish to
live till
Evaluate
Rules
Issue
Coupon
View
Reports
backbone
Setup creative
Setup
Issuance Rules
Setup
Distribution
Rules
Setup Priorities
View existing
Coupon
Edit & Save
Changes
Evaluate
basket from
emulator
Render coupon
in emulator
Real time
issuance
update to
portal
Publish without
images
Publish
multiple
coupons
Evaluate
personal offers
from emulator
Coupon
issuance report
updated
Publish with
images
Evaluate &
Prioritise
coupons
Edit & Publish
updates
Print Coupon
Issue offer to
mobile app
Sort reports by
Campaign
58. Create
Coupon
Issue
Coupon
View
Reports
Setup on
portal
View on
portal
Edit on
Portal
Publish to
till emulator
Publish to
live till
Evaluate
Rules
Issue
Coupon
View
Reports
backbone
Setup creative
Setup
Issuance Rules
Setup
Distribution
Rules
Setup Priorities
View existing
Coupon
Edit (without
saving)
Edit & Save
Changes
Evaluate
basket from
emulator
Render coupon
in emulator
Real time
issuance
update to
portal
Publish without
images
Publish
multiple
coupons
Evaluate
personal offers
from emulator
Coupon
issuance report
updated
Publish with
images
Evaluate &
Prioritise
coupons
Edit & Publish
updates
Print Coupon
Issue offer to
mobile app
Sort reports by
Campaign
59. Create
Coupon
Issue
Coupon
View
Reports
Setup on
portal
View on
portal
Edit on
Portal
Publish to
till emulator
Publish to
live till
Evaluate
Rules
Issue
Coupon
View
Reports
backbone
Setup creative
Setup
Issuance Rules
Setup
Distribution
Rules
Setup Priorities
View existing
Coupon
Edit (without
saving)
Edit & Save
Changes
Evaluate
basket from
emulator
Render coupon
in emulator
Real time
issuance
update to
portal
Publish without
images
Publish
multiple
coupons
Evaluate
personal offers
from emulator
Coupon
issuance report
updated
Publish with
images
Evaluate &
Prioritise
coupons
Edit & Publish
updates
Print Coupon
Issue offer to
mobile app
Sort reports by
Campaign
Opening
Game
60. Create
Coupon
Issue
Coupon
View
Reports
Setup on
portal
View on
portal
Edit on
Portal
Publish to
till emulator
Publish to
live till
Evaluate
Rules
Issue
Coupon
View
Reports
backbone
Setup creative
Setup
Issuance Rules
Setup
Distribution
Rules
Setup Priorities
View existing
Coupon
Edit (without
saving)
Edit & Save
Changes
Evaluate
basket from
emulator
Render coupon
in emulator
Real time
issuance
update to
portal
Publish without
images
Publish
multiple
coupons
Evaluate
personal offers
from emulator
Coupon
issuance report
updated
Publish with
images
Evaluate &
Prioritise
coupons
Edit & Publish
updates
Print Coupon
Issue offer to
mobile app
Sort reports by
Campaign
Opening
Game
Mid Game
61. Create
Coupon
Issue
Coupon
View
Reports
Setup on
portal
View on
portal
Edit on
Portal
Publish to
till emulator
Publish to
live till
Evaluate
Rules
Issue
Coupon
View
Reports
backbone
Setup creative
Setup
Issuance Rules
Setup
Distribution
Rules
Setup Priorities
View existing
Coupon
Edit (without
saving)
Edit & Save
Changes
Evaluate
basket from
emulator
Render coupon
in emulator
Real time
issuance
update to
portal
Publish without
images
Publish
multiple
coupons
Evaluate
personal offers
from emulator
Coupon
issuance report
updated
Publish with
images
Evaluate &
Prioritise
coupons
Edit & Publish
updates
Print Coupon
Issue offer to
mobile app
Sort reports by
Campaign
Opening
Game
Mid Game
End Game
62. Create
Coupon
Issue
Coupon
View
Reports
Setup on
portal
View on
portal
Edit on
Portal
Publish to
till emulator
Publish to
live till
Evaluate
Rules
Issue
Coupon
View
Reports
backbone
View existing
Coupon
Edit (without
saving)
Evaluate
basket from
emulator
Render coupon
in emulator
Real time
issuance
update to
portal
Opening
Game
1
Login as
BigMart
2
View Meal
Deal Coupon
3a
Update title
3b
Show use of
placeholder
6
View Big Days
Out Mobile
coupon
4
Run lunchtime
basket
5
Get meal deal
coupon
8
Run Big Days
out basket
9
Get Big Days
out Coupon
7
Show Big Days
out is a higher
priority
10
Run Basket
that qualifies
for both
11
Get Big Days
out Coupon
12
Show 3 new
issuance
records
Dream Demo makes
it real
63. Inputs
Inputs
Outcomes
In order to xxx
As a xxx
I need xxx
1
Activity 1 Activity 2 Activity 3 Activity 4
3 Process
0.99 ✗
1 ✓
£$% ✗
5
Inputs and data attributes to
drive the scenarios.
Like Test Conditions or
detailed examples
The process or interactions required to generate the
outputs:
Like the backbone of a Story Map
Use Specification
by Example for this
Scenarios
Scenarios
4
Given xxx
When xxx
Then xxx
Different paths through the
process to generate the
outputs
Like Test Cases
Activity 4
2
Illustrate these using
examples
Outputs
These are the outputs that
deliver the required outcomes
You could get this starting point
from the ‘How’ level of an Impact
Map. The ‘Impacts’
Back of a fag packet
BDD Analysis
64. InputsInputs
0.99 ✗
1 ✓
£$% ✗
5ScenariosScenarios 4
Given xxx
When xxx
Then xxx
Inputs and data attributes to
drive the scenarios.
Like Test Conditions or
detailed examples
Different paths through the
process to generate the outputs
Like Test Cases
Use Specification
by Example for this
67. Keeping it real
The value in the example is in the
data used to drive the example
68. Inputs
Inputs
Outcomes
In order to xxx
As a xxx
I need xxx
1
Activity 1 Activity 2 Activity 3 Activity 4
3 Process
0.99 ✗
1 ✓
£$% ✗
5
Inputs and data attributes to
drive the scenarios.
Like Test Conditions or
detailed examples
The process or interactions required to generate the
outputs:
Like the backbone of a Story Map
Use Specification
by Example for this
Scenarios
Scenarios
4
Given xxx
When xxx
Then xxx
Different paths through the
process to generate the
outputs
Like Test Cases
Activity 4
2
Illustrate these using
examples
Outputs
These are the outputs that
deliver the required outcomes
You could get this starting point
from the ‘How’ level of an Impact
Map. The ‘Impacts’
Back of a fag packet
BDD Analysis