Upload
jennyjmar
View
524
Download
0
Embed Size (px)
Citation preview
Analysis
Break down and examine
Put conclusions together and form a coherent whole
Synthesis
Functional Decomposition Tree
Code
Requirements
Functional Specification
High Level Design
Detailed Design
Unit Tests
Component Integration Tests
System Tests
Acceptance Tests
The V Model
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
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 lessDocumentation!
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 lessDocumentation!
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 lessDocumentation!
Unit tests inform the implementation and we can make changes more confidently
Less ambiguity
Solution Focus
BA
Deve
lope
r
Test
er
Use
r
Requirement
Specification
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
Design Thinking
DIVERGE CONVERGE
Create Choices
Make Choices
In order to contribute to high value business outcomes
As a motivated team member
I need purpose, direction, context and shared understanding
Getting the Balance Right
Getting the Balance Rightis hard if our only tools are
As a… In order to… I want…
and
Given… When… Then…
BDD practitioners use conversationsabout concrete examples
to build up a common understanding of what features will deliver real value
to the organisation
@wakaleo
Activity 4
InputsInputs
OutcomesIn 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
ScenariosScenarios4
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 packetBDD Analysis
OutcomesOutputsProcessScenariosInputs
Activity 4
InputsInputs
OutcomesIn 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
ScenariosScenarios4
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 packetBDD Analysis
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
Invest in Outcomes
vs
Estimate Cost of Features
Why?
Who?
Who?
How?
How?
What?
What?
What?
Impact Mapping
Investment Game – Round 1
Investment Game – Round 1
Investment Game – Round 1
Investment Game – Round 1
Investment Game – Round 1
Investment Game – Round 2
Investment Game – Round 2
Investment Game – Round 2
Investment Game – Round 2
Investment Game – Round 2
You could get this starting point from the ‘How’ level of an Impact Map. The ‘Impacts’
InputsInputs
OutcomesIn 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
ScenariosScenarios4
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 packetBDD Analysis
Activity 4
2Outputs
These are the outputs that deliver the required outcomes
Illustrate your outputsusing concrete examples
with real-world data
£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
thanksSee www.BigMar.com/Rewards for
terms and conditions
Can you give me an example?
Activity 4
2Outputs
These are the outputs that deliver the required outcomes
Illustrate these using examples
InputsInputs
OutcomesIn 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
ScenariosScenarios4
Given xxx When xxx Then xxx
Different paths through the process to generate the outputs
Like Test Cases
Illustrate these using examples
Activity 4
2Outputs
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 packetBDD Analysis
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
Create Coupon
Issue Coupon
View Reports
Setup on portal
View on portal
Edit on Portal
Publish to till
emulatorPublish to
live tillEvaluate
RulesIssue
CouponView
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
Visualise milestonesthat deliver end-to-end value
Create Coupon
Issue Coupon
View Reports
Setup on portal
View on portal
Edit on Portal
Publish to till
emulatorPublish to
live tillEvaluate
RulesIssue
CouponView
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
Create Coupon
Issue Coupon
View Reports
Setup on portal
View on portal
Edit on Portal
Publish to till
emulatorPublish to
live tillEvaluate
RulesIssue
CouponView
Reports
backbone
Opening Game
Mid Game
End Game
Create Coupon
Issue Coupon
View Reports
Setup on portal
View on portal
Edit on Portal
Publish to till
emulatorPublish to
live tillEvaluate
RulesIssue
CouponView
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
Create Coupon
Issue Coupon
View Reports
Setup on portal
View on portal
Edit on Portal
Publish to till
emulatorPublish to
live tillEvaluate
RulesIssue
CouponView
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
Create Coupon
Issue Coupon
View Reports
Setup on portal
View on portal
Edit on Portal
Publish to till
emulatorPublish to
live tillEvaluate
RulesIssue
CouponView
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
Create Coupon
Issue Coupon
View Reports
Setup on portal
View on portal
Edit on Portal
Publish to till
emulatorPublish to
live tillEvaluate
RulesIssue
CouponView
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
Create Coupon
Issue Coupon
View Reports
Setup on portal
View on portal
Edit on Portal
Publish to till
emulatorPublish to
live tillEvaluate
RulesIssue
CouponView
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
Create Coupon
Issue Coupon
View Reports
Setup on portal
View on portal
Edit on Portal
Publish to till
emulatorPublish to
live tillEvaluate
RulesIssue
CouponView
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
Create Coupon
Issue Coupon
View Reports
Setup on portal
View on portal
Edit on Portal
Publish to till
emulatorPublish to
live tillEvaluate
RulesIssue
CouponView
Reports
backbone
View existing Coupon
Edit (without saving)
Evaluate basket from
emulator
Render coupon in emulator
Real time issuance update to
portalOpening Game
1Login as BigMart
2View Meal
Deal Coupon
3aUpdate title
3bShow use of placeholder
6View Big Days Out
Mobile coupon
4Run
lunchtime basket
5Get meal
deal coupon
8Run Big Days
out basket
9Get Big Days out Coupon
7Show Big
Days out is a higher priority
10Run Basket
that qualifies for both
11Get Big Days out Coupon
12Show 3 new
issuance records
Dream Demo makes it real
InputsInputs
OutcomesIn 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
ScenariosScenarios4
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 packetBDD Analysis
InputsInputs0.99 ✗1 ✓£$% ✗
5ScenariosScenarios 4Given 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
Ubiquitous Examples
Use the same examples to guide conversations with
different audiences
Keeping it real
The value in the example is in the data used to drive the
example
InputsInputs
OutcomesIn 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
ScenariosScenarios4
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 packetBDD Analysis
Thank you!