Slides from the Feature Mapping workshop run at Agile Testing Days 2018 in Berlin.
Feature Mapping helps teams collaboratively write higher quality executable specifications.
Writing good acceptance criteria is one of the keys to effective software delivery. But it’s hard. In this workshop, you will learn about Feature Mapping, a simple but powerful technique that helps teams understand requirements at different levels and leads them naturally to write great executable specifications.
Building on Jeff Patton’s Story Mapping, Matt Wynne’s Example Mapping, and other techniques, Feature Mapping is an excellent way to build a deep shared understanding of a story's requirements and to clear a path to a smooth implementation of automated acceptance tests.
This workshop will be structured in two parts. The first will present the principles behind Feature Mapping, and the BDD requirements discovery process in general, and walk through an example of building a feature map. During the second half of the workshop, participants will work in groups of 6 to use Feature Mapping to go from a user story with a few high-level acceptance criteria, to executable specifications that could be implemented directly in Cucumber.
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
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
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