SlideShare a Scribd company logo
1 of 36
Download to read offline
AUTHOR OF ‘BDD IN ACTION’
@wakaleo
www.johnfergusonsmart.com
Feature Mapping
The fast track from stories to acceptance criteria
BDD and Agile Requirements Discovery
BDD is what makes you be agile, not just “do agile”
Overview
Overview
www.johnfergusonsmart.comWakaleo Consulting
The
collaboration
conundrum
“So we all agree”
Overview
Overview
www.johnfergusonsmart.comWakaleo Consulting
The
Traditional
Way
Business
Stakeholders BA
Dev team
Test team
What can possibly go wrong?
Wasted time during analysis Misunderstandings and
Misinterpretations during
development
We call this approach 

“Behaviour Driven Development”
Collaborate to
discover
requirements and
identify
uncertainty
And a common
language to build
a shared
understanding
And automation
that provides
fast and relevant
feedback
To deliver
software that
matters
Using rules and
examples at
multiple levels
Overview
Overview Validation
and
Feedback
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
Collaboratively Defined Executable Specifications
Faster automated
feedback, sooner
A deeper shared
understanding of the
business domain
A single
source of truth
give us
The BDD Process
Roles and stages
Illustrate
The Three
Amigos
Business rules
and examples
Feature Mapping,
Example Mapping…
Formulate
The
Gherkin
Gang
Gherkin
Executable
Specifications
Automate
Cucumber
The
Cucumber
Club
Automated
Acceptance Tests
Amend a trade
In order to respect the orders of our clients
As a trader
I need to be able to amend incorrectly-entered
Speculate
The Value Hunters
Validate
Passing
acceptance tests
The Daring
Delivery
Team
Demonstrate
Working features and
Living Documentation
The
Contented
Customer
Feature Mapping
The bigger picture - BDD across teams
High level
business idea or
needs
Initial analysis
Principal
stakeholder,
SMEs, business
BAs,…
Strategic
Requirements
Discovery
Stakeholders, SMEs,
business BAs, team
delegates
In order to comply to CDD regulations
As a retail bank
I need to ensure that new customers do
not pose a reputational or financial risk
for the bank.
In order to comply to CDD regulations
As a retail bank
I need to ensure that new customers do
not pose a reputational or financial risk
for the bank.
In order to comply to CDD regulations
As a retail bank
I need to ensure that new customers do
not pose a reputational or financial risk
for the bank.
In order to comply to CDD regulations
As a retail bank
I need to ensure that new customers do
not pose a reputational or financial risk
for the bank.
Prioritised
backlog of high
level items
High Level
Feature Map
Team CTeam BTeam A
High level
capabilities
Feature Mapping
We question rules to find examples
We challenge examples to find counter-examples
We explain counter-examples with new rules
We start with the rules we know about
Rules explain Examples
Examples illustrate Rules
Steps explore Examples
Steps lead to Consequences
Questions challenge everything
Four Principles
Serenity Dojo www.johnfergusonsmart.com
A Simple
Feature Map
“Sally is assigned a high priority review task for a
suspicious transaction. She knows she won’t be able to
complete it today, so she delegates it to her colleague
Doug. Doug sees the review task appear in his task list,
and Sally should see the task in her ‘Pending others’ list”
Delegate a review task
As a busy regulatory supervisor
I want to be able to delegate some of my review tasks
to other users
So that the tasks will be processed in a timely manner
Delegate a review task
As a busy regulatory supervisor
I want to be able to delegate some of my review tasks
to other users
So that the tasks will be processed in a timely manner
The one where Sally
delegates a review
task to Doug
Sally is assigned a
high priority review
task
Sally assigns the
task to Doug
=> The task should
not appear in Sally’s
task list
=> The task should
be visible in Doug’s
task list
=> The task should
appear in Sally’s
Pending Others list
Start with a happy path
or a known rule
Delegate a review task
As a busy regulatory supervisor
I want to be able to delegate some of my review tasks
to other users
So that the tasks will be processed in a timely manner
The one where Sally
delegates a review
task to Doug
1) Start with an example
Delegate a review task
As a busy regulatory supervisor
I want to be able to delegate some of my review tasks
to other users
So that the tasks will be processed in a timely manner
The one where Sally
delegates a review
task to Doug
2) Break into steps
Sally is assigned a
high priority review
task
Sally assigns the
task to Doug
Delegate a review task
As a busy regulatory supervisor
I want to be able to delegate some of my review tasks
to other users
So that the tasks will be processed in a timely manner
The one where Sally
delegates a review
task to Doug
3) Identify consequences
Sally is assigned a
high priority review
task
Sally assigns the
task to Doug
=> The task should
not appear in Sally’s
task list
=> The task should
be visible in Doug’s
task list
=> The task should
appear in Sally’s
Pending Others list
Delegate a review task
As a busy regulatory supervisor
I want to be able to delegate some of my review tasks
to other users
So that the tasks will be processed in a timely manner
The one where Sally
delegates a review
task to Doug
Sally is assigned a
high priority review
task
Sally assigns the
task to Doug
=> The task should
not appear in Sally’s
task list
=> The task should
be visible in Doug’s
task list
=> The task should
appear in Sally’s
Pending Others list
“Example” “Steps” “Consequences”
Delegate a review task
As a busy regulatory supervisor
I want to be able to delegate some of my review tasks
to other users
So that the tasks will be processed in a timely manner
The one where Sally
delegates a review
task to Doug
4) Hunt for variations
Sally is assigned a
high priority review
task
Sally assigns the
task to Doug
=> The task should
not appear in Sally’s
task list
=> The task should
be visible in Doug’s
task list
=> The task should
appear in Sally’s
Pending Others list
What if Doug isn’t
authorised to handle
this task?
Delegate a review task
As a busy regulatory supervisor
I want to be able to delegate some of my review tasks
to other users
So that the tasks will be processed in a timely manner
The one where Sally
delegates a review
task to Doug
5) Find new rules
Sally is assigned a
high priority review
task
Sally assigns the
task to Doug
=> The task should
not appear in Sally’s
task list
=> The task should
be visible in Doug’s
task list
=> The task should
appear in Sally’s
Pending Others list
What if Doug isn’t
authorised to handle
this task?
Tasks can only be
delegated to
authorised users
Delegate a review task
As a busy regulatory supervisor
I want to be able to delegate some of my review tasks
to other users
So that the tasks will be processed in a timely manner
The one where Sally
delegates a review
task to Doug
6) Illustrate the rules
Sally is assigned a
high priority review
task
Sally assigns the
task to Doug
=> The task should
not appear in Sally’s
task list
=> The task should
be visible in Doug’s
task list
=> The task should
appear in Sally’s
Pending Others list
What if Doug isn’t
authorised to handle
this task?
Tasks can only be
delegated to
authorised users
The one where Sally
delegates a review
task to Indira
Sally is assigned a
Suspicious
International
Transfer review task
Indira is not authorised
to view Suspicious
International Transfer
tasks
Sally tries to
assign the task to
Indira
=> Indira does not
appear in the list of
potential delegates
Delegate a review task
As a busy regulatory supervisor
I want to be able to delegate some of my review tasks
to other users
So that the tasks will be processed in a timely manner
The one where Sally
delegates a review
task to Doug
6) Illustrate the rules
Sally is assigned a
high priority review
task
Sally assigns the
task to Doug
=> The task should
not appear in Sally’s
task list
=> The task should
be visible in Doug’s
task list
=> The task should
appear in Sally’s
Pending Others list
Tasks can only be
delegated to
authorised users
The one where Sally
delegates a review
task to Indira
Sally is assigned a
Suspicious
International
Transfer review task
Indira is not authorised
to view Suspicious
International Transfer
tasks
Sally tries to
assign the task to
Indira
=> Indira does not
appear in the list of
potential delegates
“Rule”
Delegate a review task
As a busy regulatory supervisor
I want to be able to delegate some of my review tasks
to other users
So that the tasks will be processed in a timely manner
The one where Sally
delegates a review
task to Doug
7) Keep going
Sally is assigned a
high priority review
task
Sally assigns the
task to Doug
=> The task should
not appear in Sally’s
task list
=> The task should
be visible in Doug’s
task list
=> The task should
appear in Sally’s
Pending Others list
Tasks can only be
delegated to
authorised users
The one where Sally
delegates a review
task to Indira
Sally is assigned a
Suspicious
International
Transfer review task
Indira is not authorised
to view Suspicious
International Transfer
tasks
Sally tries to
assign the task to
Indira
=> Indira does not
appear in the list of
potential delegates
What if Sally has
already completed the
task and tried to
delegate by mistake?
Only pending tasks
can be delegated
The one where Sally
has already
completed the task
Sally is assigned a
Suspicious
International
Transfer review task
Sally tries to
assign the task to
Doug
=> Sally is not given
the option to
delegate the
completed task.
Sally completes the
task
Delegate a review task
As a busy regulatory supervisor
I want to be able to delegate some of my review tasks
to other users
So that the tasks will be processed in a timely manner
The one where Sally
delegates a review
task to Doug
7) Keep going
Sally is assigned a
high priority review
task
Sally assigns the
task to Doug
=> The task should
not appear in Sally’s
task list
=> The task should
be visible in Doug’s
task list
=> The task should
appear in Sally’s
Pending Others list
Tasks can only be
delegated to
authorised users
The one where Sally
delegates a review
task to Indira
Sally is assigned a
Suspicious
International
Transfer review task
Indira is not authorised
to view Suspicious
International Transfer
tasks
Sally tries to
assign the task to
Indira
=> Indira does not
appear in the list of
potential delegates
Only pending tasks
can be delegated
The one where Sally
has already
completed the task
Sally is assigned a
Suspicious
International
Transfer review task
Sally tries to
assign the task to
Doug
=> Sally is not given
the option to
delegate the
completed task.
Sally completes the
task
The supervisor is
warned if the
delegate is absent
The one where Doug
is on holidays
Sally is assigned a
Suspicious
International
Transfer review task
Sally tries to
assign the task to
Doug
=> Sally is warned
that Doug is on
holidays
Doug is on holidays
this week
From Feature Maps to Gherkin
Serenity Dojo www.johnfergusonsmart.com
Feature Maps
and Gherkin
Feature Maps lead naturally to good
quality Gherkin
The supervisor is
warned if the
delegate is absent
The one where Doug
is on holidays
Sally is assigned a
Suspicious
International
Transfer review task
Sally tries to
assign the task to
Doug
=> Sally is warned
that Doug is on
holidays
Doug is on holidays
this week
Scenario: The one where Doug is on holidays
The supervisor is warned if the delegate is absent
Given Sally has been assigned a 'Suspicious International Transfer' review task
And Doug is on holidays until next week
When Sally tries to delegate the task
Then Sally is warned that Doug is on holidays
Let’s give it a try!
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
reachme@johnfergusonsmart.com

More Related Content

More from 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
 
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
 
BDD in Action - Automated Web Testing with WebDriver and Serenity
BDD in Action - Automated Web Testing with WebDriver and SerenityBDD in Action - Automated Web Testing with WebDriver and Serenity
BDD in Action - Automated Web Testing with WebDriver and SerenityJohn 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
 
BDD in Action – principles, practices and real-world application
BDD in Action – principles, practices and real-world applicationBDD in Action – principles, practices and real-world application
BDD in Action – principles, practices and real-world applicationJohn Ferguson Smart Limited
 

More from John Ferguson Smart Limited (20)

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
 
Cucumber and Spock Primer
Cucumber and Spock PrimerCucumber and Spock Primer
Cucumber and Spock Primer
 
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
 
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
 
BDD in Action - Automated Web Testing with WebDriver and Serenity
BDD in Action - Automated Web Testing with WebDriver and SerenityBDD in Action - Automated Web Testing with WebDriver and Serenity
BDD in Action - Automated Web Testing with WebDriver and Serenity
 
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
 
BDD in Action – principles, practices and real-world application
BDD in Action – principles, practices and real-world applicationBDD in Action – principles, practices and real-world application
BDD in Action – principles, practices and real-world application
 
TDD and BDD in Java 8 - what's in it for me?
TDD and BDD in Java 8 - what's in it for me?TDD and BDD in Java 8 - what's in it for me?
TDD and BDD in Java 8 - what's in it for me?
 

Recently uploaded

Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
[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
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
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
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
#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
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 
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
 
How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?XfilesPro
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksSoftradix Technologies
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions
 

Recently uploaded (20)

Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
[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
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
#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
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 
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...
 
How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other Frameworks
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
 

Feature Mapping - The Fast Track from Stories to Executable Specifications

  • 1. AUTHOR OF ‘BDD IN ACTION’ @wakaleo www.johnfergusonsmart.com Feature Mapping The fast track from stories to acceptance criteria
  • 2. BDD and Agile Requirements Discovery
  • 3. BDD is what makes you be agile, not just “do agile”
  • 6. What can possibly go wrong? Wasted time during analysis Misunderstandings and Misinterpretations during development
  • 7. We call this approach 
 “Behaviour Driven Development” Collaborate to discover requirements and identify uncertainty And a common language to build a shared understanding And automation that provides fast and relevant feedback To deliver software that matters Using rules and examples at multiple levels
  • 8. Overview Overview Validation and Feedback 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
  • 9. Collaboratively Defined Executable Specifications Faster automated feedback, sooner A deeper shared understanding of the business domain A single source of truth give us
  • 10. The BDD Process Roles and stages
  • 11. Illustrate The Three Amigos Business rules and examples Feature Mapping, Example Mapping… Formulate The Gherkin Gang Gherkin Executable Specifications Automate Cucumber The Cucumber Club Automated Acceptance Tests Amend a trade In order to respect the orders of our clients As a trader I need to be able to amend incorrectly-entered Speculate The Value Hunters Validate Passing acceptance tests The Daring Delivery Team Demonstrate Working features and Living Documentation The Contented Customer Feature Mapping
  • 12. The bigger picture - BDD across teams High level business idea or needs Initial analysis Principal stakeholder, SMEs, business BAs,… Strategic Requirements Discovery Stakeholders, SMEs, business BAs, team delegates In order to comply to CDD regulations As a retail bank I need to ensure that new customers do not pose a reputational or financial risk for the bank. In order to comply to CDD regulations As a retail bank I need to ensure that new customers do not pose a reputational or financial risk for the bank. In order to comply to CDD regulations As a retail bank I need to ensure that new customers do not pose a reputational or financial risk for the bank. In order to comply to CDD regulations As a retail bank I need to ensure that new customers do not pose a reputational or financial risk for the bank. Prioritised backlog of high level items High Level Feature Map Team CTeam BTeam A High level capabilities
  • 14. We question rules to find examples We challenge examples to find counter-examples We explain counter-examples with new rules We start with the rules we know about
  • 15. Rules explain Examples Examples illustrate Rules Steps explore Examples Steps lead to Consequences Questions challenge everything Four Principles
  • 16. Serenity Dojo www.johnfergusonsmart.com A Simple Feature Map “Sally is assigned a high priority review task for a suspicious transaction. She knows she won’t be able to complete it today, so she delegates it to her colleague Doug. Doug sees the review task appear in his task list, and Sally should see the task in her ‘Pending others’ list” Delegate a review task As a busy regulatory supervisor I want to be able to delegate some of my review tasks to other users So that the tasks will be processed in a timely manner
  • 17. Delegate a review task As a busy regulatory supervisor I want to be able to delegate some of my review tasks to other users So that the tasks will be processed in a timely manner The one where Sally delegates a review task to Doug Sally is assigned a high priority review task Sally assigns the task to Doug => The task should not appear in Sally’s task list => The task should be visible in Doug’s task list => The task should appear in Sally’s Pending Others list Start with a happy path or a known rule
  • 18. Delegate a review task As a busy regulatory supervisor I want to be able to delegate some of my review tasks to other users So that the tasks will be processed in a timely manner The one where Sally delegates a review task to Doug 1) Start with an example
  • 19. Delegate a review task As a busy regulatory supervisor I want to be able to delegate some of my review tasks to other users So that the tasks will be processed in a timely manner The one where Sally delegates a review task to Doug 2) Break into steps Sally is assigned a high priority review task Sally assigns the task to Doug
  • 20. Delegate a review task As a busy regulatory supervisor I want to be able to delegate some of my review tasks to other users So that the tasks will be processed in a timely manner The one where Sally delegates a review task to Doug 3) Identify consequences Sally is assigned a high priority review task Sally assigns the task to Doug => The task should not appear in Sally’s task list => The task should be visible in Doug’s task list => The task should appear in Sally’s Pending Others list
  • 21. Delegate a review task As a busy regulatory supervisor I want to be able to delegate some of my review tasks to other users So that the tasks will be processed in a timely manner The one where Sally delegates a review task to Doug Sally is assigned a high priority review task Sally assigns the task to Doug => The task should not appear in Sally’s task list => The task should be visible in Doug’s task list => The task should appear in Sally’s Pending Others list “Example” “Steps” “Consequences”
  • 22. Delegate a review task As a busy regulatory supervisor I want to be able to delegate some of my review tasks to other users So that the tasks will be processed in a timely manner The one where Sally delegates a review task to Doug 4) Hunt for variations Sally is assigned a high priority review task Sally assigns the task to Doug => The task should not appear in Sally’s task list => The task should be visible in Doug’s task list => The task should appear in Sally’s Pending Others list What if Doug isn’t authorised to handle this task?
  • 23. Delegate a review task As a busy regulatory supervisor I want to be able to delegate some of my review tasks to other users So that the tasks will be processed in a timely manner The one where Sally delegates a review task to Doug 5) Find new rules Sally is assigned a high priority review task Sally assigns the task to Doug => The task should not appear in Sally’s task list => The task should be visible in Doug’s task list => The task should appear in Sally’s Pending Others list What if Doug isn’t authorised to handle this task? Tasks can only be delegated to authorised users
  • 24. Delegate a review task As a busy regulatory supervisor I want to be able to delegate some of my review tasks to other users So that the tasks will be processed in a timely manner The one where Sally delegates a review task to Doug 6) Illustrate the rules Sally is assigned a high priority review task Sally assigns the task to Doug => The task should not appear in Sally’s task list => The task should be visible in Doug’s task list => The task should appear in Sally’s Pending Others list What if Doug isn’t authorised to handle this task? Tasks can only be delegated to authorised users The one where Sally delegates a review task to Indira Sally is assigned a Suspicious International Transfer review task Indira is not authorised to view Suspicious International Transfer tasks Sally tries to assign the task to Indira => Indira does not appear in the list of potential delegates
  • 25. Delegate a review task As a busy regulatory supervisor I want to be able to delegate some of my review tasks to other users So that the tasks will be processed in a timely manner The one where Sally delegates a review task to Doug 6) Illustrate the rules Sally is assigned a high priority review task Sally assigns the task to Doug => The task should not appear in Sally’s task list => The task should be visible in Doug’s task list => The task should appear in Sally’s Pending Others list Tasks can only be delegated to authorised users The one where Sally delegates a review task to Indira Sally is assigned a Suspicious International Transfer review task Indira is not authorised to view Suspicious International Transfer tasks Sally tries to assign the task to Indira => Indira does not appear in the list of potential delegates “Rule”
  • 26. Delegate a review task As a busy regulatory supervisor I want to be able to delegate some of my review tasks to other users So that the tasks will be processed in a timely manner The one where Sally delegates a review task to Doug 7) Keep going Sally is assigned a high priority review task Sally assigns the task to Doug => The task should not appear in Sally’s task list => The task should be visible in Doug’s task list => The task should appear in Sally’s Pending Others list Tasks can only be delegated to authorised users The one where Sally delegates a review task to Indira Sally is assigned a Suspicious International Transfer review task Indira is not authorised to view Suspicious International Transfer tasks Sally tries to assign the task to Indira => Indira does not appear in the list of potential delegates What if Sally has already completed the task and tried to delegate by mistake? Only pending tasks can be delegated The one where Sally has already completed the task Sally is assigned a Suspicious International Transfer review task Sally tries to assign the task to Doug => Sally is not given the option to delegate the completed task. Sally completes the task
  • 27. Delegate a review task As a busy regulatory supervisor I want to be able to delegate some of my review tasks to other users So that the tasks will be processed in a timely manner The one where Sally delegates a review task to Doug 7) Keep going Sally is assigned a high priority review task Sally assigns the task to Doug => The task should not appear in Sally’s task list => The task should be visible in Doug’s task list => The task should appear in Sally’s Pending Others list Tasks can only be delegated to authorised users The one where Sally delegates a review task to Indira Sally is assigned a Suspicious International Transfer review task Indira is not authorised to view Suspicious International Transfer tasks Sally tries to assign the task to Indira => Indira does not appear in the list of potential delegates Only pending tasks can be delegated The one where Sally has already completed the task Sally is assigned a Suspicious International Transfer review task Sally tries to assign the task to Doug => Sally is not given the option to delegate the completed task. Sally completes the task The supervisor is warned if the delegate is absent The one where Doug is on holidays Sally is assigned a Suspicious International Transfer review task Sally tries to assign the task to Doug => Sally is warned that Doug is on holidays Doug is on holidays this week
  • 28. From Feature Maps to Gherkin
  • 29. Serenity Dojo www.johnfergusonsmart.com Feature Maps and Gherkin Feature Maps lead naturally to good quality Gherkin
  • 30. The supervisor is warned if the delegate is absent The one where Doug is on holidays Sally is assigned a Suspicious International Transfer review task Sally tries to assign the task to Doug => Sally is warned that Doug is on holidays Doug is on holidays this week Scenario: The one where Doug is on holidays The supervisor is warned if the delegate is absent Given Sally has been assigned a 'Suspicious International Transfer' review task And Doug is on holidays until next week When Sally tries to delegate the task Then Sally is warned that Doug is on holidays
  • 31. Let’s give it a try!
  • 33. Feature Mapping Collaborative Iterative Exploratory A requirements discovery practice that is…
  • 35. Feature Mapping More precise than free-form acceptance criteria Faster than Gherkin Easy to automate