SlideShare a Scribd company logo
1 of 57
Download to read offline
AUTHOR OF ‘BDD IN ACTION’
@wakaleo
www.johnfergusonsmart.com
Feature Mapping
The fast track from stories to acceptance criteria
Jan Molak
Lead Developer of Serenity/JS
@janmolak
janmolak.com
Overview
Overview
What we will cover
BDD and Sprint Planning
Acceptance Criteria and the Definition of
Done
Writing acceptance criteria in Gherkin
Acceptance criteria with Feature Mapping
Overview
Overview
http://bit.ly/feature-mapping-draw
Before we finish…
Fill in the survey and win a book!
BDD and Sprint Planning

in a nutshell
Overview
Overview
Validation
The BDD Way
Collaboration
As a corporate frequent flyer
I want to earn points on my business flights
So that I can get discounts on my holiday flights
Business
Scenario: First class earns double points
Given London-Paris in economy earns 100 points
When I fly from London to Paris in First Class

Then I should earn 200 points
SHARED UNDERSTANDING
Automation
Overview
Overview
The BDD Way
BA
Business BA UX
Testers
Business Rules
Examples
A shared understanding
Executable Specifications
Wireframes
Vision
Flow
Capabilities
Features
Developers UI Designers
Define
Formalise
Automate
Automated
Acceptance
Testing
Feedback
Visibility
Valuable Software
Deliver
Discover
TDD
Overview
Overview
Shared
Understanding
and Automated
Validation
Automated
Acceptance
Criteria
A Shared
Understanding
Validation
Collaborative
Requirements
Discovery
Living
Documentation
Regression
Tests
Change with
confidence
Effective
Automation
Sustainable
Automation
Executable
Requirements
Story Mapping
3 amigos
Acceptance
Criteria
Feature
Mapping
Example
Mapping
Impact
Mapping
Sprint Planning
Gherkin
Format
Overview
Overview
Shared
Understanding
and Automated
Validation
Automated
Acceptance
Criteria
A Shared
Understanding
Validation
Collaborative
Requirements
Discovery
Living
Documentation
Regression
Tests
Change with
confidence
Effective
Automation
Sustainable
Automation
Executable
Requirements
Story Mapping
3 amigos
Acceptance
Criteria
Feature
Mapping
Example
Mapping
Impact
Mapping
Sprint 

Delivery
Gherkin
Format
Sprint Planning
Acceptance Criteria 

and the definition of done
Acceptance
Criteria
✓ Define the Definition of Done
✓ Functional and non-functional requirements
✓ Expressed in business language
✓ Describe expected outcomes, not inputs
✓ Describe intent, not solution (what, not how)
✓ Easily testable
✓ Single responsibility
Acceptance
Criteria
should be
simple
✓ Simple phrases
- “A teacher can return an essay for correction when the average
mark is under 7”
✓ Can be non-functional
- “A teacher should be able to open and record the marks of an
essay in less than 30 seconds on average with a load of 1000
simultaneous users”
Examples are
concrete
scenarios that
illustrate rules
✓ “The one where…”
- “The one where the student submits a bad essay”
✓ Given/When/Then
- “Given Stu submits an essay with an average mark of 4

When Tess records the marks

Then she has the option of returning the essay to Stu”
Writing Acceptance Criteria

in Gherkin
Gherkin

The Lingua Franca of BDD
Collaboration
Automation
Feature: Earning Frequent Flyer points through flights

Scenario: Economy flights earn points by distance
Flyers earn 1 point per kilometre travelled
Given the distance from London to Paris is 344 km
When I fly from London to Paris in Economy

Then I should earn 344 points
Overview
Overview
Scenario: Economy flights earn points by distance
Given the distance from London to Paris is 344 km
When I fly from London to Paris in Economy

Then I should earn 344 points
Preconditions
Action to illustrate
Expected outcome
Overview
Overview
Scenario Outline: Economy flights earn points by distance
Given the distance from <departure> to <dest> is <distance> km
When I fly from <departure> to <destination> in <class> class

Then I should earn <points> points
Examples:
| departure | dest | distance | class | points |
| Paris | London | 344 | economy | 344 |
| Paris | London | 344 | first | 688 |
A table of examples
Let’s give it a try!
Workshop Time! As a regular business traveller
I want to earn privileges when I fly
So that I can take my family on holiday more often
Create Acceptance criteria for the following rules
- Member privileges are based on their Frequent Flyer level
- Members can be Bronze, Silver, Gold or Platinum
- Levels are earned based on distance and cabin class
Retrospective
• How much functionality did you cover?
• How would you judge the quality of the
scenarios you wrote?
• How well did it help you understand the
problem domain?
• How many surprises did you find?
In the last exercise…

Did you spend more time
collaborating or formalising?
Overview
Overview
establishes validatesShared
Understanding
Collaboration
Formalisation
Sprint Planning
Overview
Overview
establishes validatesShared
Understanding
Collaboration
Formalisation
Sprint Delivery
Now for something different

Step Away From The Gherkin
Understanding a
requirement
As a Frequent Flyer member
I want to see where I can travel with my current point balance
So that I can plan my next holiday
Overview
Overview
As a Frequent Flyer member
I want to see where I can travel with my current point balance
So that I can plan my next holiday
“The flights available depend on the number of points” “Rule”
“The one where a member has 10000 points” “Example”
“Jackie has 10000 points, and lives in London.
“Steps”
“She chooses to view her flight options.”
“She can choose from flights to Edinburgh, Paris and Amsterdam”
Overview
Overview
As a Frequent Flyer member
I want to see where I can travel with my current point balance
So that I can plan my next holiday
“The flights available depend on the number of points” “Rule”
“The one where a member has 10000 points” “Example”
“Jackie has 10000 points, and lives in London.
“Steps”
“She chooses to view her flight options.”
“She can choose from flights to Edinburgh, Paris and Amsterdam”
What if she lives
somewhere else?
What if she wants to fly
from another city?
Are these economy
flights?
What if the wants to fly
business?
What if she wants to book a
flight for someone else?
Why these destinations?
Questions lead
to learning
Why these destinations?
“The flights available depend on the number of points”

(1 km distance for every 10 points)
New or clarified rules
points Edinburgh
1000
Paris Amsterdam
5000
10000
Yes
Yes
No
No
Yes Yes
NoNo
No
New or clarified examples
Feature Mapping
Rules explain Examples
Examples illustrate Rules
Steps explore Examples
Questions challenge everything
Four Principles
List the rules you know
Ask for examples
Explore the steps that make up each example
Question, challenge, expand
And Four Steps
Leave no assumption unchallenged
“If you do not know how to ask the right
question, you discover nothing.”
- W. Edwards Deming
Feature Mapping Building
Bricks
Overview
Overview
We start with an anchoring example
“Fred has 10000 points and lives in London. He wants to go on holidays in
August. He checks his account balance, and sees that he can go to Rome,
Aberdeen or Barcelona.”
Overview
Overview
Step 1) Find a rule
“Guideline"
Overview
Overview
Step 1) Find a rule
“Guideline"
A rule
Any economy flight
within Europe 

is 10000 points
Overview
Overview“Guideline"
A rule
Any economy flight
within Europe 

is 10000 points
Step 2) “Give me an example”An example
Member has enough to
fly to Rome
Overview
Overview“Guideline"
A rule
Any economy flight
within Europe 

is 10000 points
Step 3) Break it down
An example
Member has enough to
fly to Rome
=>

Fred has 10000
points
=>

Fred can fly to
Edinburgh, Barcelona
or Rome
Consequences
Overview
Overview
Any economy flight
within Europe 

is 10000 points
Step 4) Explore variations
Member has enough to
fly to Rome
Member doesn’t have
enough points
=> Joe has just
joined the
program and has
0 points
=> 

Joe can’t go anywhere
=>

Fred has 10000
points
=>

Fred can fly to
Edinburgh, Barcelona
or Rome
Overview
OverviewAny economy flight
within Europe 

is 10000 points
Step 5) Discover new rules
Member has enough to
fly to Rome
Member doesn’t have
enough points
A business flight within
Europe 

is 20000 points
Likes to fly in style
=> Fred can fly to
Edinburgh, Barcelona
or Rome in Business
=> Barry has
20000 points
=> Joe has just
joined the
program and has
0 points
=> 

Joe can’t go anywhere
=>

Fred has 10000
points
=>

Fred can fly to
Edinburgh, Barcelona
or Rome
Overview
OverviewAny economy flight
within Europe 

is 10000 points
Step 6) Learn and refactor
Member has enough to
fly to Rome
Member doesn’t have
enough points
A business flight within
Europe 

is 20000 points
Likes to fly in style
The available
destinations depends
on the number of
points and the cabin
class
=> Fred can fly to
Edinburgh, Barcelona
or Rome in Business
=> Barry has
20000 points
=> Joe has just
joined the
program and has
0 points
=> 

Joe can’t go anywhere
=>

Fred has 10000
points
=>

Fred can fly to
Edinburgh, Barcelona
or Rome
Overview
OverviewAny economy flight
within Europe 

is 10000 points
Questions record uncertainty
Member has enough to
fly to Rome
Member doesn’t have
enough points
A business flight within
Europe 

is 20000 points
Likes to fly in style
The available
destinations depends
on the number of
points and the cabin
class
Can he buy someone
else a ticket?
Are points
transferrable?
=> Fred can fly to
Edinburgh, Barcelona
or Rome in Business
=> Barry has
20000 points
=> Joe has just
joined the
program and has
0 points
=> 

Joe can’t go anywhere
=>

Fred has 10000
points
=>

Fred can fly to
Edinburgh, Barcelona
or Rome
Overview
OverviewAny economy flight
within Europe 

is 10000 points
Questions record uncertainty
Member has enough to
fly to Rome
Member doesn’t have
enough points
A business flight within
Europe 

is 20000 points
Likes to fly in style
The available
destinations depends
on the number of
points and the cabin
class
“Pointsperdestination”
story“Pointsperclass”
story
=> Fred can fly to
Edinburgh, Barcelona
or Rome in Business
=> Barry has
20000 points
=> Joe has just
joined the
program and has
0 points
=> 

Joe can’t go anywhere
=>

Fred has 10000
points
=>

Fred can fly to
Edinburgh, Barcelona
or Rome
Let’s give it a try!
Mob Mapping!
As a regular business traveller
I want to be able to access the lounge with my travel companions
So that I can get more work done before the flight
Overview
OverviewLounge Access
As a regular business traveller
I want to be able to access the lounge with my travel companions
So that I can get more work done before the flight
Step 1) “Tell me a story”
“Barry the business traveller is Gold status, and flying on
holidays in economy with his wife and two children. He asks to
access the lounge with his family. He is given access, but has
to use all of his yearly guest passes as he can normally only
invite one guest.”
Overview
OverviewAs a regular business traveller
I want to be able to access the lounge with my travel companions
So that I can get more work done before the flight
Step 2) “Tell me the rules you know about”
“Barry the business traveller is Gold status, and flying on
holidays in economy with his wife and two children. He asks to
access the lounge with his family. He is given access, but has
to use all of his yearly guest passes as he can normally only
invite one guest.”
What else?
Gold Frequent Flyers can come
with a guest
Gold Frequent Flyers get two
guest passes per year that they
can use for additional guests
Overview
OverviewAs a regular business traveller
I want to be able to access the lounge with my travel companions
So that I can get more work done before the flight
Step 3) Pick a rule.
“Barry the business traveller is Gold status, and flying on
holidays in economy with his wife and two children. He asks to
access the lounge with his family. He is given access, but has
to use all of his yearly guest passes as he can normally only
invite one guest.”
Gold Frequent Flyers get two
guest passes per year that they
can use for additional guests
Overview
Overview
Step 4) Give me an example
Gold Frequent Flyers get two
guest passes per year that they
can use for additional guests
Barry can invite his family
because he is a Gold FF
“The one where…”
Barry is a Gold
FF
Barry wants to
bring 3 guests
=> Everyone can
enter the lounge
=> Barry has no
guest passes left
Barry has 2 guest
passes
Barry agrees to
use his guest
passes
Overview
Overview
Step 5) Explore and challenge
Gold Frequent Flyers get two
guest passes per year that they
can use for additional guests
Barry can invite his family
because he is a Gold FF
“What if…”
Barry is a Gold
FF
Barry wants to
bring 3 guests
=> Everyone can
enter the lounge
=> Barry has no
guest passes left
Barry has 2 guest
passes
Barry agrees to
use his guest
passes
W
hatifBarry
is
Silver?
W
hatifBarry
has
only
1
guest
W
hatifBarry
doesn’twantto
use
his
guest
passes?
=> Everyone can
enter the lounge
=> Barry has no
guest passes left
Now work in
teams As a business traveller
I want to have access to a place to freshen up and work
when I land
So that I can be more productive in my work
Now work in
teams
As a business traveller
I want to have access to a place to freshen up and work when I land
So that I can be more productive in my work
“Barry has landed 6 hours ahead of his meeting, and wants to
freshen up, have breakfast and prepare his meeting. He goes to
the lounge in the arrival airport, and is granted access.”
Overview
Overview
Key Take Aways
Feature Mapping
Collaborative Iterative Exploratory
A requirements discovery practice that is…
Feature Mapping
Breadth Depth Context
Feature Mapping
More precise than
free-form
acceptance criteria
Faster than Gherkin Easy to automate
Thank You!
http://johnfergusonsmart.com
reachme@johnfergusonsmart.com

More Related Content

What's hot

쿠키런 1년, 서버개발 분투기
쿠키런 1년, 서버개발 분투기쿠키런 1년, 서버개발 분투기
쿠키런 1년, 서버개발 분투기Brian Hong
 
Specification-By-Example with Gherkin
Specification-By-Example with GherkinSpecification-By-Example with Gherkin
Specification-By-Example with GherkinChristian Hassa
 
RXJS Best (& Bad) Practices for Angular Developers
RXJS Best (& Bad) Practices for Angular DevelopersRXJS Best (& Bad) Practices for Angular Developers
RXJS Best (& Bad) Practices for Angular DevelopersFabio Biondi
 
ドメイン駆動開発 勉強会 ①
ドメイン駆動開発 勉強会 ①ドメイン駆動開発 勉強会 ①
ドメイン駆動開発 勉強会 ①Kakeru Kikuchi
 
Lean Inception: how to align people and build the right product
Lean Inception: how to align people and build the right productLean Inception: how to align people and build the right product
Lean Inception: how to align people and build the right productPaulo Caroli
 
Defensive Coding Bootcamp
Defensive Coding BootcampDefensive Coding Bootcamp
Defensive Coding BootcampHeather Downing
 
서버 개발자가 되기 위한 첫 걸음
서버 개발자가 되기 위한 첫 걸음서버 개발자가 되기 위한 첫 걸음
서버 개발자가 되기 위한 첫 걸음nexusz99
 
User Story Splitting
User Story SplittingUser Story Splitting
User Story Splittingtrishly
 
카카오스토리 웹팀의 코드리뷰 경험
카카오스토리 웹팀의 코드리뷰 경험카카오스토리 웹팀의 코드리뷰 경험
카카오스토리 웹팀의 코드리뷰 경험Ohgyun Ahn
 
Agile, User Stories, Domain Driven Design
Agile, User Stories, Domain Driven DesignAgile, User Stories, Domain Driven Design
Agile, User Stories, Domain Driven DesignAraf Karsh Hamid
 
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」Takuto Wada
 
Comparing Apache Cassandra 4.0, 3.0, and ScyllaDB
Comparing Apache Cassandra 4.0, 3.0, and ScyllaDBComparing Apache Cassandra 4.0, 3.0, and ScyllaDB
Comparing Apache Cassandra 4.0, 3.0, and ScyllaDBScyllaDB
 
React web development
React web developmentReact web development
React web developmentRully Ramanda
 
Event driven microservices with axon and spring boot-excitingly boring
Event driven microservices with axon and spring boot-excitingly boringEvent driven microservices with axon and spring boot-excitingly boring
Event driven microservices with axon and spring boot-excitingly boringAllard Buijze
 
State Management in Angular/React
State Management in Angular/ReactState Management in Angular/React
State Management in Angular/ReactDEV Cafe
 
트위터의 추천 시스템 파헤치기
트위터의 추천 시스템 파헤치기트위터의 추천 시스템 파헤치기
트위터의 추천 시스템 파헤치기Yan So
 
ペアプロするならgit-duetを使おう
ペアプロするならgit-duetを使おうペアプロするならgit-duetを使おう
ペアプロするならgit-duetを使おうShinya Nakajima
 
Coder sans peur du changement avec la meme pas mal hexagonal architecture
Coder sans peur du changement avec la meme pas mal hexagonal architectureCoder sans peur du changement avec la meme pas mal hexagonal architecture
Coder sans peur du changement avec la meme pas mal hexagonal architectureThomas Pierrain
 
Raffi Krikorian, Twitter Timelines at Scale
Raffi Krikorian, Twitter Timelines at ScaleRaffi Krikorian, Twitter Timelines at Scale
Raffi Krikorian, Twitter Timelines at ScaleMariano Amartino
 

What's hot (20)

쿠키런 1년, 서버개발 분투기
쿠키런 1년, 서버개발 분투기쿠키런 1년, 서버개발 분투기
쿠키런 1년, 서버개발 분투기
 
Specification-By-Example with Gherkin
Specification-By-Example with GherkinSpecification-By-Example with Gherkin
Specification-By-Example with Gherkin
 
RXJS Best (& Bad) Practices for Angular Developers
RXJS Best (& Bad) Practices for Angular DevelopersRXJS Best (& Bad) Practices for Angular Developers
RXJS Best (& Bad) Practices for Angular Developers
 
ドメイン駆動開発 勉強会 ①
ドメイン駆動開発 勉強会 ①ドメイン駆動開発 勉強会 ①
ドメイン駆動開発 勉強会 ①
 
Lean Inception: how to align people and build the right product
Lean Inception: how to align people and build the right productLean Inception: how to align people and build the right product
Lean Inception: how to align people and build the right product
 
Defensive Coding Bootcamp
Defensive Coding BootcampDefensive Coding Bootcamp
Defensive Coding Bootcamp
 
서버 개발자가 되기 위한 첫 걸음
서버 개발자가 되기 위한 첫 걸음서버 개발자가 되기 위한 첫 걸음
서버 개발자가 되기 위한 첫 걸음
 
User Story Splitting
User Story SplittingUser Story Splitting
User Story Splitting
 
카카오스토리 웹팀의 코드리뷰 경험
카카오스토리 웹팀의 코드리뷰 경험카카오스토리 웹팀의 코드리뷰 경험
카카오스토리 웹팀의 코드리뷰 경험
 
Agile, User Stories, Domain Driven Design
Agile, User Stories, Domain Driven DesignAgile, User Stories, Domain Driven Design
Agile, User Stories, Domain Driven Design
 
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
 
Comparing Apache Cassandra 4.0, 3.0, and ScyllaDB
Comparing Apache Cassandra 4.0, 3.0, and ScyllaDBComparing Apache Cassandra 4.0, 3.0, and ScyllaDB
Comparing Apache Cassandra 4.0, 3.0, and ScyllaDB
 
React web development
React web developmentReact web development
React web development
 
Event driven microservices with axon and spring boot-excitingly boring
Event driven microservices with axon and spring boot-excitingly boringEvent driven microservices with axon and spring boot-excitingly boring
Event driven microservices with axon and spring boot-excitingly boring
 
State Management in Angular/React
State Management in Angular/ReactState Management in Angular/React
State Management in Angular/React
 
트위터의 추천 시스템 파헤치기
트위터의 추천 시스템 파헤치기트위터의 추천 시스템 파헤치기
트위터의 추천 시스템 파헤치기
 
WebSockets with Spring 4
WebSockets with Spring 4WebSockets with Spring 4
WebSockets with Spring 4
 
ペアプロするならgit-duetを使おう
ペアプロするならgit-duetを使おうペアプロするならgit-duetを使おう
ペアプロするならgit-duetを使おう
 
Coder sans peur du changement avec la meme pas mal hexagonal architecture
Coder sans peur du changement avec la meme pas mal hexagonal architectureCoder sans peur du changement avec la meme pas mal hexagonal architecture
Coder sans peur du changement avec la meme pas mal hexagonal architecture
 
Raffi Krikorian, Twitter Timelines at Scale
Raffi Krikorian, Twitter Timelines at ScaleRaffi Krikorian, Twitter Timelines at Scale
Raffi Krikorian, Twitter Timelines at Scale
 

Similar to Feature Mapping Workshop

Refactor your Specs - 2017 Edition
Refactor your Specs - 2017 EditionRefactor your Specs - 2017 Edition
Refactor your Specs - 2017 EditionCyrille Martraire
 
Driving Design through Examples
Driving Design through ExamplesDriving Design through Examples
Driving Design through ExamplesCiaranMcNulty
 
Driving Design through Examples
Driving Design through ExamplesDriving Design through Examples
Driving Design through ExamplesCiaranMcNulty
 
Driving Design through Examples
Driving Design through ExamplesDriving Design through Examples
Driving Design through ExamplesCiaranMcNulty
 
Engage! Bringing teams together to deliver software that makes a difference
Engage! Bringing teams together to deliver software that makes a differenceEngage! Bringing teams together to deliver software that makes a difference
Engage! Bringing teams together to deliver software that makes a differenceJohn Ferguson Smart Limited
 
Driving Design through Examples - PhpCon PL 2015
Driving Design through Examples - PhpCon PL 2015Driving Design through Examples - PhpCon PL 2015
Driving Design through Examples - PhpCon PL 2015CiaranMcNulty
 
Refactor your specs! Øredev 2013
Refactor your specs! Øredev 2013Refactor your specs! Øredev 2013
Refactor your specs! Øredev 2013Cyrille Martraire
 
The Basics of OKR
The Basics of OKRThe Basics of OKR
The Basics of OKRPerdoo
 
It's Testing, Jim, but not as we know it - BDD for Testers
It's Testing, Jim, but not as we know it - BDD for TestersIt's Testing, Jim, but not as we know it - BDD for Testers
It's Testing, Jim, but not as we know it - BDD for TestersJohn Ferguson Smart Limited
 
John Glinski - The B2B Analytics Engine: How Vanguard is Measuring Marketing...
John Glinski - 	The B2B Analytics Engine: How Vanguard is Measuring Marketing...John Glinski - 	The B2B Analytics Engine: How Vanguard is Measuring Marketing...
John Glinski - The B2B Analytics Engine: How Vanguard is Measuring Marketing...Julia Grosman
 
Customer journey mapping and innovation
Customer journey mapping and innovationCustomer journey mapping and innovation
Customer journey mapping and innovationLivework Studio
 
resolvendo problemas de comunicação em equipes distribuídas com bdd
resolvendo problemas de comunicação em equipes distribuídas com bddresolvendo problemas de comunicação em equipes distribuídas com bdd
resolvendo problemas de comunicação em equipes distribuídas com bddRodrigo Urubatan
 
Making Psychometrics And Online Assessment Work In A UAE And GCC Context For ...
Making Psychometrics And Online Assessment Work In A UAE And GCC Context For ...Making Psychometrics And Online Assessment Work In A UAE And GCC Context For ...
Making Psychometrics And Online Assessment Work In A UAE And GCC Context For ...The HR Observer
 
PPC for eCommerce: Implement, Optimize, Monitor and.. repeat!
PPC for eCommerce: Implement, Optimize, Monitor and.. repeat!PPC for eCommerce: Implement, Optimize, Monitor and.. repeat!
PPC for eCommerce: Implement, Optimize, Monitor and.. repeat!Konstantinos Skianis
 
How to Build your Training Set for a Learning To Rank Project
How to Build your Training Set for a Learning To Rank ProjectHow to Build your Training Set for a Learning To Rank Project
How to Build your Training Set for a Learning To Rank ProjectSease
 
Conversion Rate Optimisation Presentation
Conversion Rate Optimisation PresentationConversion Rate Optimisation Presentation
Conversion Rate Optimisation PresentationMadhouse Associates
 
Workshop: Behavior Driven Development - Deliver value by Naveen Kumar Singh
Workshop: Behavior Driven Development - Deliver value by Naveen Kumar SinghWorkshop: Behavior Driven Development - Deliver value by Naveen Kumar Singh
Workshop: Behavior Driven Development - Deliver value by Naveen Kumar SinghAgile ME
 
Building the "right" regression suite using Behavior Driven Testing (BDT)
Building the "right" regression suite using Behavior Driven Testing (BDT)Building the "right" regression suite using Behavior Driven Testing (BDT)
Building the "right" regression suite using Behavior Driven Testing (BDT)Anand Bagmar
 

Similar to Feature Mapping Workshop (20)

Cucumber and Spock Primer
Cucumber and Spock PrimerCucumber and Spock Primer
Cucumber and Spock Primer
 
Refactor your Specs - 2017 Edition
Refactor your Specs - 2017 EditionRefactor your Specs - 2017 Edition
Refactor your Specs - 2017 Edition
 
Driving Design through Examples
Driving Design through ExamplesDriving Design through Examples
Driving Design through Examples
 
Driving Design through Examples
Driving Design through ExamplesDriving Design through Examples
Driving Design through Examples
 
Driving Design through Examples
Driving Design through ExamplesDriving Design through Examples
Driving Design through Examples
 
Engage! Bringing teams together to deliver software that makes a difference
Engage! Bringing teams together to deliver software that makes a differenceEngage! Bringing teams together to deliver software that makes a difference
Engage! Bringing teams together to deliver software that makes a difference
 
Driving Design through Examples - PhpCon PL 2015
Driving Design through Examples - PhpCon PL 2015Driving Design through Examples - PhpCon PL 2015
Driving Design through Examples - PhpCon PL 2015
 
Refactor your specs! Øredev 2013
Refactor your specs! Øredev 2013Refactor your specs! Øredev 2013
Refactor your specs! Øredev 2013
 
The Basics of OKR
The Basics of OKRThe Basics of OKR
The Basics of OKR
 
It's Testing, Jim, but not as we know it - BDD for Testers
It's Testing, Jim, but not as we know it - BDD for TestersIt's Testing, Jim, but not as we know it - BDD for Testers
It's Testing, Jim, but not as we know it - BDD for Testers
 
John Glinski - The B2B Analytics Engine: How Vanguard is Measuring Marketing...
John Glinski - 	The B2B Analytics Engine: How Vanguard is Measuring Marketing...John Glinski - 	The B2B Analytics Engine: How Vanguard is Measuring Marketing...
John Glinski - The B2B Analytics Engine: How Vanguard is Measuring Marketing...
 
Customer journey mapping and innovation
Customer journey mapping and innovationCustomer journey mapping and innovation
Customer journey mapping and innovation
 
resolvendo problemas de comunicação em equipes distribuídas com bdd
resolvendo problemas de comunicação em equipes distribuídas com bddresolvendo problemas de comunicação em equipes distribuídas com bdd
resolvendo problemas de comunicação em equipes distribuídas com bdd
 
Making Psychometrics And Online Assessment Work In A UAE And GCC Context For ...
Making Psychometrics And Online Assessment Work In A UAE And GCC Context For ...Making Psychometrics And Online Assessment Work In A UAE And GCC Context For ...
Making Psychometrics And Online Assessment Work In A UAE And GCC Context For ...
 
PPC for eCommerce: Implement, Optimize, Monitor and.. repeat!
PPC for eCommerce: Implement, Optimize, Monitor and.. repeat!PPC for eCommerce: Implement, Optimize, Monitor and.. repeat!
PPC for eCommerce: Implement, Optimize, Monitor and.. repeat!
 
How to Build your Training Set for a Learning To Rank Project
How to Build your Training Set for a Learning To Rank ProjectHow to Build your Training Set for a Learning To Rank Project
How to Build your Training Set for a Learning To Rank Project
 
Conversion Rate Optimisation Presentation
Conversion Rate Optimisation PresentationConversion Rate Optimisation Presentation
Conversion Rate Optimisation Presentation
 
Workshop: Behavior Driven Development - Deliver value by Naveen Kumar Singh
Workshop: Behavior Driven Development - Deliver value by Naveen Kumar SinghWorkshop: Behavior Driven Development - Deliver value by Naveen Kumar Singh
Workshop: Behavior Driven Development - Deliver value by Naveen Kumar Singh
 
Building the "right" regression suite using Behavior Driven Testing (BDT)
Building the "right" regression suite using Behavior Driven Testing (BDT)Building the "right" regression suite using Behavior Driven Testing (BDT)
Building the "right" regression suite using Behavior Driven Testing (BDT)
 
Marketing Tactics for Smaller Owners - 3 Presentations
Marketing Tactics for Smaller Owners - 3 PresentationsMarketing Tactics for Smaller Owners - 3 Presentations
Marketing Tactics for Smaller Owners - 3 Presentations
 

More from John Ferguson Smart Limited

My Reading Specs - Refactoring Patterns for Gherkin Scenarios
My Reading Specs - Refactoring Patterns for Gherkin ScenariosMy Reading Specs - Refactoring Patterns for Gherkin Scenarios
My Reading Specs - Refactoring Patterns for Gherkin ScenariosJohn Ferguson Smart Limited
 
Artisti e Condotierri - How can your team become artists of the 21st century ...
Artisti e Condotierri - How can your team become artists of the 21st century ...Artisti e Condotierri - How can your team become artists of the 21st century ...
Artisti e Condotierri - How can your team become artists of the 21st century ...John Ferguson Smart Limited
 
Engage! Bringing teams together to deliver software that makes a difference
Engage! Bringing teams together to deliver software that makes a differenceEngage! Bringing teams together to deliver software that makes a difference
Engage! Bringing teams together to deliver software that makes a differenceJohn Ferguson Smart Limited
 
Beyond Given/When/Then - why diving into Cucumber is the wrong approach to ad...
Beyond Given/When/Then - why diving into Cucumber is the wrong approach to ad...Beyond Given/When/Then - why diving into Cucumber is the wrong approach to ad...
Beyond Given/When/Then - why diving into Cucumber is the wrong approach to ad...John Ferguson Smart Limited
 
Beyond Given/When/Then - why diving into Cucumber is the wrong approach to ad...
Beyond Given/When/Then - why diving into Cucumber is the wrong approach to ad...Beyond Given/When/Then - why diving into Cucumber is the wrong approach to ad...
Beyond Given/When/Then - why diving into Cucumber is the wrong approach to ad...John Ferguson Smart Limited
 
Screenplay - Next generation automated acceptance testing
Screenplay - Next generation automated acceptance testingScreenplay - Next generation automated acceptance testing
Screenplay - Next generation automated acceptance testingJohn Ferguson Smart Limited
 
All the world's a stage – the next step in automated testing practices
All the world's a stage – the next step in automated testing practicesAll the world's a stage – the next step in automated testing practices
All the world's a stage – the next step in automated testing practicesJohn Ferguson Smart Limited
 
BDD in Action: Building Software Right and Building the Right Software
BDD in Action: Building Software Right and Building the Right SoftwareBDD in Action: Building Software Right and Building the Right Software
BDD in Action: Building Software Right and Building the Right SoftwareJohn Ferguson Smart Limited
 

More from John Ferguson Smart Limited (20)

My Reading Specs - Refactoring Patterns for Gherkin Scenarios
My Reading Specs - Refactoring Patterns for Gherkin ScenariosMy Reading Specs - Refactoring Patterns for Gherkin Scenarios
My Reading Specs - Refactoring Patterns for Gherkin Scenarios
 
Artisti e Condotierri - How can your team become artists of the 21st century ...
Artisti e Condotierri - How can your team become artists of the 21st century ...Artisti e Condotierri - How can your team become artists of the 21st century ...
Artisti e Condotierri - How can your team become artists of the 21st century ...
 
Engage! Bringing teams together to deliver software that makes a difference
Engage! Bringing teams together to deliver software that makes a differenceEngage! Bringing teams together to deliver software that makes a difference
Engage! Bringing teams together to deliver software that makes a difference
 
BE A POD OF DOLPHINS, NOT A DANCING ELEPHANT
BE A POD OF DOLPHINS, NOT A DANCING ELEPHANTBE A POD OF DOLPHINS, NOT A DANCING ELEPHANT
BE A POD OF DOLPHINS, NOT A DANCING ELEPHANT
 
Beyond Given/When/Then - why diving into Cucumber is the wrong approach to ad...
Beyond Given/When/Then - why diving into Cucumber is the wrong approach to ad...Beyond Given/When/Then - why diving into Cucumber is the wrong approach to ad...
Beyond Given/When/Then - why diving into Cucumber is the wrong approach to ad...
 
Beyond Given/When/Then - why diving into Cucumber is the wrong approach to ad...
Beyond Given/When/Then - why diving into Cucumber is the wrong approach to ad...Beyond Given/When/Then - why diving into Cucumber is the wrong approach to ad...
Beyond Given/When/Then - why diving into Cucumber is the wrong approach to ad...
 
Shift left-devoxx-pl
Shift left-devoxx-plShift left-devoxx-pl
Shift left-devoxx-pl
 
Screenplay - Next generation automated acceptance testing
Screenplay - Next generation automated acceptance testingScreenplay - Next generation automated acceptance testing
Screenplay - Next generation automated acceptance testing
 
All the world's a stage – the next step in automated testing practices
All the world's a stage – the next step in automated testing practicesAll the world's a stage – the next step in automated testing practices
All the world's a stage – the next step in automated testing practices
 
CukeUp 2016 Agile Product Planning Workshop
CukeUp 2016 Agile Product Planning WorkshopCukeUp 2016 Agile Product Planning Workshop
CukeUp 2016 Agile Product Planning Workshop
 
BDD Anti-patterns
BDD Anti-patternsBDD Anti-patterns
BDD Anti-patterns
 
Serenity and the Journey Pattern
Serenity and the Journey PatternSerenity and the Journey Pattern
Serenity and the Journey Pattern
 
BDD - Collaborate like you mean it!
BDD - Collaborate like you mean it!BDD - Collaborate like you mean it!
BDD - Collaborate like you mean it!
 
BDD-Driven Microservices
BDD-Driven MicroservicesBDD-Driven Microservices
BDD-Driven Microservices
 
BDD Anti-patterns
BDD Anti-patternsBDD Anti-patterns
BDD Anti-patterns
 
BDD in Action - Devoxx 2014
BDD in Action - Devoxx 2014BDD in Action - Devoxx 2014
BDD in Action - Devoxx 2014
 
BDD in Action: Building Software Right and Building the Right Software
BDD in Action: Building Software Right and Building the Right SoftwareBDD in Action: Building Software Right and Building the Right Software
BDD in Action: Building Software Right and Building the Right Software
 
BDD: The unit test of the product owner
BDD: The unit test of the product ownerBDD: The unit test of the product owner
BDD: The unit test of the product owner
 
Its testing-jim-but-not-as-we-know-it-devoxx
Its testing-jim-but-not-as-we-know-it-devoxxIts testing-jim-but-not-as-we-know-it-devoxx
Its testing-jim-but-not-as-we-know-it-devoxx
 
BDD in Action - building software that matters
BDD in Action - building software that mattersBDD in Action - building software that matters
BDD in Action - building software that matters
 

Recently uploaded

My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhisoniya singh
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...HostedbyConfluent
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Google AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGGoogle AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGSujit Pal
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Paola De la Torre
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
The Evolution of Money: Digital Transformation and CBDCs in Central Banking
The Evolution of Money: Digital Transformation and CBDCs in Central BankingThe Evolution of Money: Digital Transformation and CBDCs in Central Banking
The Evolution of Money: Digital Transformation and CBDCs in Central BankingSelcen Ozturkcan
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 

Recently uploaded (20)

My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Google AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGGoogle AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAG
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
The Evolution of Money: Digital Transformation and CBDCs in Central Banking
The Evolution of Money: Digital Transformation and CBDCs in Central BankingThe Evolution of Money: Digital Transformation and CBDCs in Central Banking
The Evolution of Money: Digital Transformation and CBDCs in Central Banking
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 

Feature Mapping Workshop

  • 1. AUTHOR OF ‘BDD IN ACTION’ @wakaleo www.johnfergusonsmart.com Feature Mapping The fast track from stories to acceptance criteria Jan Molak Lead Developer of Serenity/JS @janmolak janmolak.com
  • 2. Overview Overview What we will cover BDD and Sprint Planning Acceptance Criteria and the Definition of Done Writing acceptance criteria in Gherkin Acceptance criteria with Feature Mapping
  • 4. BDD and Sprint Planning
 in a nutshell
  • 5. Overview Overview Validation The BDD Way Collaboration As a corporate frequent flyer I want to earn points on my business flights So that I can get discounts on my holiday flights Business Scenario: First class earns double points Given London-Paris in economy earns 100 points When I fly from London to Paris in First Class
 Then I should earn 200 points SHARED UNDERSTANDING Automation
  • 6. Overview Overview The BDD Way BA Business BA UX Testers Business Rules Examples A shared understanding Executable Specifications Wireframes Vision Flow Capabilities Features Developers UI Designers Define Formalise Automate Automated Acceptance Testing Feedback Visibility Valuable Software Deliver Discover TDD
  • 7. Overview Overview Shared Understanding and Automated Validation Automated Acceptance Criteria A Shared Understanding Validation Collaborative Requirements Discovery Living Documentation Regression Tests Change with confidence Effective Automation Sustainable Automation Executable Requirements Story Mapping 3 amigos Acceptance Criteria Feature Mapping Example Mapping Impact Mapping Sprint Planning Gherkin Format
  • 8. Overview Overview Shared Understanding and Automated Validation Automated Acceptance Criteria A Shared Understanding Validation Collaborative Requirements Discovery Living Documentation Regression Tests Change with confidence Effective Automation Sustainable Automation Executable Requirements Story Mapping 3 amigos Acceptance Criteria Feature Mapping Example Mapping Impact Mapping Sprint 
 Delivery Gherkin Format Sprint Planning
  • 9. Acceptance Criteria 
 and the definition of done
  • 10. Acceptance Criteria ✓ Define the Definition of Done ✓ Functional and non-functional requirements ✓ Expressed in business language ✓ Describe expected outcomes, not inputs ✓ Describe intent, not solution (what, not how) ✓ Easily testable ✓ Single responsibility
  • 11. Acceptance Criteria should be simple ✓ Simple phrases - “A teacher can return an essay for correction when the average mark is under 7” ✓ Can be non-functional - “A teacher should be able to open and record the marks of an essay in less than 30 seconds on average with a load of 1000 simultaneous users”
  • 12. Examples are concrete scenarios that illustrate rules ✓ “The one where…” - “The one where the student submits a bad essay” ✓ Given/When/Then - “Given Stu submits an essay with an average mark of 4
 When Tess records the marks
 Then she has the option of returning the essay to Stu”
  • 14. Gherkin
 The Lingua Franca of BDD Collaboration Automation Feature: Earning Frequent Flyer points through flights
 Scenario: Economy flights earn points by distance Flyers earn 1 point per kilometre travelled Given the distance from London to Paris is 344 km When I fly from London to Paris in Economy
 Then I should earn 344 points
  • 15. Overview Overview Scenario: Economy flights earn points by distance Given the distance from London to Paris is 344 km When I fly from London to Paris in Economy
 Then I should earn 344 points Preconditions Action to illustrate Expected outcome
  • 16. Overview Overview Scenario Outline: Economy flights earn points by distance Given the distance from <departure> to <dest> is <distance> km When I fly from <departure> to <destination> in <class> class
 Then I should earn <points> points Examples: | departure | dest | distance | class | points | | Paris | London | 344 | economy | 344 | | Paris | London | 344 | first | 688 | A table of examples
  • 17. Let’s give it a try!
  • 18. Workshop Time! As a regular business traveller I want to earn privileges when I fly So that I can take my family on holiday more often Create Acceptance criteria for the following rules - Member privileges are based on their Frequent Flyer level - Members can be Bronze, Silver, Gold or Platinum - Levels are earned based on distance and cabin class
  • 19. Retrospective • How much functionality did you cover? • How would you judge the quality of the scenarios you wrote? • How well did it help you understand the problem domain? • How many surprises did you find?
  • 20. In the last exercise…
 Did you spend more time collaborating or formalising?
  • 23. Now for something different
 Step Away From The Gherkin
  • 24. Understanding a requirement As a Frequent Flyer member I want to see where I can travel with my current point balance So that I can plan my next holiday
  • 25. Overview Overview As a Frequent Flyer member I want to see where I can travel with my current point balance So that I can plan my next holiday “The flights available depend on the number of points” “Rule” “The one where a member has 10000 points” “Example” “Jackie has 10000 points, and lives in London. “Steps” “She chooses to view her flight options.” “She can choose from flights to Edinburgh, Paris and Amsterdam”
  • 26. Overview Overview As a Frequent Flyer member I want to see where I can travel with my current point balance So that I can plan my next holiday “The flights available depend on the number of points” “Rule” “The one where a member has 10000 points” “Example” “Jackie has 10000 points, and lives in London. “Steps” “She chooses to view her flight options.” “She can choose from flights to Edinburgh, Paris and Amsterdam” What if she lives somewhere else? What if she wants to fly from another city? Are these economy flights? What if the wants to fly business? What if she wants to book a flight for someone else? Why these destinations?
  • 27. Questions lead to learning Why these destinations? “The flights available depend on the number of points”
 (1 km distance for every 10 points) New or clarified rules points Edinburgh 1000 Paris Amsterdam 5000 10000 Yes Yes No No Yes Yes NoNo No New or clarified examples
  • 29. Rules explain Examples Examples illustrate Rules Steps explore Examples Questions challenge everything Four Principles
  • 30. List the rules you know Ask for examples Explore the steps that make up each example Question, challenge, expand And Four Steps
  • 31. Leave no assumption unchallenged “If you do not know how to ask the right question, you discover nothing.” - W. Edwards Deming
  • 33. Overview Overview We start with an anchoring example “Fred has 10000 points and lives in London. He wants to go on holidays in August. He checks his account balance, and sees that he can go to Rome, Aberdeen or Barcelona.”
  • 34. Overview Overview Step 1) Find a rule “Guideline"
  • 35. Overview Overview Step 1) Find a rule “Guideline" A rule Any economy flight within Europe is 10000 points
  • 36. Overview Overview“Guideline" A rule Any economy flight within Europe is 10000 points Step 2) “Give me an example”An example Member has enough to fly to Rome
  • 37. Overview Overview“Guideline" A rule Any economy flight within Europe is 10000 points Step 3) Break it down An example Member has enough to fly to Rome => Fred has 10000 points => Fred can fly to Edinburgh, Barcelona or Rome Consequences
  • 38. Overview Overview Any economy flight within Europe is 10000 points Step 4) Explore variations Member has enough to fly to Rome Member doesn’t have enough points => Joe has just joined the program and has 0 points => Joe can’t go anywhere => Fred has 10000 points => Fred can fly to Edinburgh, Barcelona or Rome
  • 39. Overview OverviewAny economy flight within Europe is 10000 points Step 5) Discover new rules Member has enough to fly to Rome Member doesn’t have enough points A business flight within Europe is 20000 points Likes to fly in style => Fred can fly to Edinburgh, Barcelona or Rome in Business => Barry has 20000 points => Joe has just joined the program and has 0 points => Joe can’t go anywhere => Fred has 10000 points => Fred can fly to Edinburgh, Barcelona or Rome
  • 40. Overview OverviewAny economy flight within Europe is 10000 points Step 6) Learn and refactor Member has enough to fly to Rome Member doesn’t have enough points A business flight within Europe is 20000 points Likes to fly in style The available destinations depends on the number of points and the cabin class => Fred can fly to Edinburgh, Barcelona or Rome in Business => Barry has 20000 points => Joe has just joined the program and has 0 points => Joe can’t go anywhere => Fred has 10000 points => Fred can fly to Edinburgh, Barcelona or Rome
  • 41. Overview OverviewAny economy flight within Europe is 10000 points Questions record uncertainty Member has enough to fly to Rome Member doesn’t have enough points A business flight within Europe is 20000 points Likes to fly in style The available destinations depends on the number of points and the cabin class Can he buy someone else a ticket? Are points transferrable? => Fred can fly to Edinburgh, Barcelona or Rome in Business => Barry has 20000 points => Joe has just joined the program and has 0 points => Joe can’t go anywhere => Fred has 10000 points => Fred can fly to Edinburgh, Barcelona or Rome
  • 42. Overview OverviewAny economy flight within Europe is 10000 points Questions record uncertainty Member has enough to fly to Rome Member doesn’t have enough points A business flight within Europe is 20000 points Likes to fly in style The available destinations depends on the number of points and the cabin class “Pointsperdestination” story“Pointsperclass” story => Fred can fly to Edinburgh, Barcelona or Rome in Business => Barry has 20000 points => Joe has just joined the program and has 0 points => Joe can’t go anywhere => Fred has 10000 points => Fred can fly to Edinburgh, Barcelona or Rome
  • 43. Let’s give it a try!
  • 44. Mob Mapping! As a regular business traveller I want to be able to access the lounge with my travel companions So that I can get more work done before the flight
  • 45. Overview OverviewLounge Access As a regular business traveller I want to be able to access the lounge with my travel companions So that I can get more work done before the flight Step 1) “Tell me a story” “Barry the business traveller is Gold status, and flying on holidays in economy with his wife and two children. He asks to access the lounge with his family. He is given access, but has to use all of his yearly guest passes as he can normally only invite one guest.”
  • 46. Overview OverviewAs a regular business traveller I want to be able to access the lounge with my travel companions So that I can get more work done before the flight Step 2) “Tell me the rules you know about” “Barry the business traveller is Gold status, and flying on holidays in economy with his wife and two children. He asks to access the lounge with his family. He is given access, but has to use all of his yearly guest passes as he can normally only invite one guest.” What else? Gold Frequent Flyers can come with a guest Gold Frequent Flyers get two guest passes per year that they can use for additional guests
  • 47. Overview OverviewAs a regular business traveller I want to be able to access the lounge with my travel companions So that I can get more work done before the flight Step 3) Pick a rule. “Barry the business traveller is Gold status, and flying on holidays in economy with his wife and two children. He asks to access the lounge with his family. He is given access, but has to use all of his yearly guest passes as he can normally only invite one guest.” Gold Frequent Flyers get two guest passes per year that they can use for additional guests
  • 48. Overview Overview Step 4) Give me an example Gold Frequent Flyers get two guest passes per year that they can use for additional guests Barry can invite his family because he is a Gold FF “The one where…” Barry is a Gold FF Barry wants to bring 3 guests => Everyone can enter the lounge => Barry has no guest passes left Barry has 2 guest passes Barry agrees to use his guest passes
  • 49. Overview Overview Step 5) Explore and challenge Gold Frequent Flyers get two guest passes per year that they can use for additional guests Barry can invite his family because he is a Gold FF “What if…” Barry is a Gold FF Barry wants to bring 3 guests => Everyone can enter the lounge => Barry has no guest passes left Barry has 2 guest passes Barry agrees to use his guest passes W hatifBarry is Silver? W hatifBarry has only 1 guest W hatifBarry doesn’twantto use his guest passes? => Everyone can enter the lounge => Barry has no guest passes left
  • 50. Now work in teams As a business traveller I want to have access to a place to freshen up and work when I land So that I can be more productive in my work
  • 51. Now work in teams As a business traveller I want to have access to a place to freshen up and work when I land So that I can be more productive in my work “Barry has landed 6 hours ahead of his meeting, and wants to freshen up, have breakfast and prepare his meeting. He goes to the lounge in the arrival airport, and is granted access.”
  • 54. Feature Mapping Collaborative Iterative Exploratory A requirements discovery practice that is…
  • 56. Feature Mapping More precise than free-form acceptance criteria Faster than Gherkin Easy to automate