Example Mapping provides a structured approach to help teams tease out the essential business rules and examples that clarify a user story and improve shared understanding of story “doneness”
3. Have you seen…
• Questions come up in the middle of implementing a story?
• Questions come up while testing an implemented feature?
• Developers and Testers interpret a requirement differently?
3
4. Are we ready to
implement?
• Backlog refinement
• Three Amigos
• Planning session
“The speed of development is the speed of getting
an idea from one brain to another”
– Alistair Cockburn
4
5. What is Example Mapping?
• Structured, collaborative
conversation to discover
essential requirements
and identify uncertainty
• Rules & Examples to
illustrate desired behavior
before pulling story into
development
• Discovered and
popularized by Matt
Wynne
User Story
Rules
Abstract descriptions of how things
should work
Examples
Actual scenarios of things working
as they should
Executable Examples
Ready to automate
If reader buys
three books, the
cheapest of the
three should be
free
Cart $10, $15,
$5
Checkout
Total $26.50
5
6. Example Map - Essentials
User Story under discussion
Rules to satisfy story, or express other
constraints about the story scope
Concrete examples that
illustrate a rule
User
Story
Rule Rule Rule
Example
Example
ExampleExample
Example
Question
QuestionQuestions about scenarios where we
don’t know the right outcome
Acceptance
Criteria
Acceptance
Scenarios
6
7. …password that is
not easy to crack
Minimum of 8
characters
Alphanumeric with at least
one special character
foobar
Invalid – Too short
f00bargobble!
Shouldn’t we require a mix of
uppercase and lowercase?
The case where…
No number
No letter
No special character
7
Let’s build an Example Map!
8. …password that is
not easy to crack
f00bargobble!
Invalid – not mixed Shouldn’t we require a mix of
uppercase and lowercase?
Alphanumeric, mixed case,
with at least one special
character
F00bargobble!
Is there a
maximum length
constraint? 1AaaaaaaA!
What about this scenario? Is
this valid?
8
9. …password that is
not easy to crack
Shouldn’t we require a mix of
uppercase and lowercase?
1AaaaaaaA!
Invalid - repeating
Repeating pattern
(Less than 3
consecutive)
1AaByzdbAxt!
Are dictionary words
allowed?
What about reusing old
passwords?
9
10. Step Back & Reflect
…password that is
not easy to crack
Minimum of 8
characters
foobar
Invalid – Too short
f00bargobble!
Invalid – not mixed
Alphanumeric, mixed case,
with at least one special
character
F00bargobble!
Is there a
maximum length
constraint?
1AaaaaaaA!
Invalid - repeating
Repeating pattern
(Less than 3
consecutive)
1AaByzdbAxt!
What about
dictionary
words?
password history
policy
The case where…
No number
No letter
No special character
10
11. Build Your Example Map
• Pick a story
• Invite a small group with multiple
perspectives
• Time-box the session
• Pick a facilitator
• Bring supplies (4-colored index cards,
sharpies, flipcharts, timer)
Rule Rule Rule
Story
Example
Example
Example
Question
11
12. ATM User Story Backlog
1.
…deposit funds into my
account
Are there limits on amounts?
Number of deposits?
2.
…withdraw funds from my
account
Are there withdrawal limits?
What denominations?
3.
…transfer funds between my
primary and savings account
Any limits? Minimum balance?
Is transfer immediate?
4.
…setup my savings account to
automatically cover overdrafts
from my checking account
What if I don’t opt in?
What if savings is overdrawn?
5.
…make third-party payments
One-time or on-schedule?
12
Rule Rule Rule
Story
Example
Example
Example
Question
Question
New
Story
13. Where
does it
fit?
Scenario: Invalid example
Given I am a new user
When I select "Abc1*$!-**" as a password
Then I can access my account
Source Adaptation: George Dinwiddie & Raj Indugula
Scenario: Valid example
Given I am a new user
When I select "Abc1*$!-**" as a password
Then I can access my account
13
14. Example Mapping helps…
Focus on smallest pieces of behavior
Discover what you don’t know
Fill in the gaps (remove ambiguity)
Drive out implicit requirements
Break stories into manageable chunks
Move conversations quicker
Provide basis for automated tests
14
15. If you want to learn more…
Matt Wynne - Introducing Example Mapping
https://cucumber.io/blog/2015/12/08/example-
mapping-introduction
Aslak Hellesøy - Example Mapping
https://www.youtube.com/watch?v=VwvrGfWm
G_U
15
Raj Indugula
raj.indugula@lithespeed.com
@lithespeed, @raj_indugula