example mapping - jorgekotickaudy.files.wordpress.com · 29/08/2018 · • specification by...
TRANSCRIPT
![Page 1: Example Mapping - jorgekotickaudy.files.wordpress.com · 29/08/2018 · • Specification by Example help us refine requirements. • Rules that summarize examples or express constraints](https://reader036.vdocuments.net/reader036/viewer/2022062506/5f0b682b7e708231d4305dab/html5/thumbnails/1.jpg)
Example MappingThomas Haver BA Con 2018-08-29
![Page 2: Example Mapping - jorgekotickaudy.files.wordpress.com · 29/08/2018 · • Specification by Example help us refine requirements. • Rules that summarize examples or express constraints](https://reader036.vdocuments.net/reader036/viewer/2022062506/5f0b682b7e708231d4305dab/html5/thumbnails/2.jpg)
• Rachel Davies is credited with inventing:
As a [type of user]
I want [some particular feature] so that [some benefit is received]
• Example:
As a bank customer
I want to view my current account balance
so that I know my recent deposit went through.
• Sometimes features that describe technology updates or UI changes don’t really work with the model.
User Stories | Convention
!2
![Page 3: Example Mapping - jorgekotickaudy.files.wordpress.com · 29/08/2018 · • Specification by Example help us refine requirements. • Rules that summarize examples or express constraints](https://reader036.vdocuments.net/reader036/viewer/2022062506/5f0b682b7e708231d4305dab/html5/thumbnails/3.jpg)
• BDD promotes requirements by example, collaboration, lower cost in resolving defects, and automation in the form of business value.
Behavior Driven Development
!3
![Page 4: Example Mapping - jorgekotickaudy.files.wordpress.com · 29/08/2018 · • Specification by Example help us refine requirements. • Rules that summarize examples or express constraints](https://reader036.vdocuments.net/reader036/viewer/2022062506/5f0b682b7e708231d4305dab/html5/thumbnails/4.jpg)
Gherkin is a business readable, Domain Specific Language created specifically for behavior descriptions (BDD/ATDD).
!4
Requirements
TestsExamplesBecome
VerifyElaborate
![Page 5: Example Mapping - jorgekotickaudy.files.wordpress.com · 29/08/2018 · • Specification by Example help us refine requirements. • Rules that summarize examples or express constraints](https://reader036.vdocuments.net/reader036/viewer/2022062506/5f0b682b7e708231d4305dab/html5/thumbnails/5.jpg)
Gherkin is a business readable, Domain Specific Language created specifically for behavior descriptions (BDD/ATDD).
!5
User Story
• As a [type of user]
• I want [some particular feature]
• so that [some benefit is received]
Gherkin Scenario
• Given some initial context
• When an event occurs
• Then ensure some outcome(s)
![Page 6: Example Mapping - jorgekotickaudy.files.wordpress.com · 29/08/2018 · • Specification by Example help us refine requirements. • Rules that summarize examples or express constraints](https://reader036.vdocuments.net/reader036/viewer/2022062506/5f0b682b7e708231d4305dab/html5/thumbnails/6.jpg)
• BDD requires people to work together to create the requirements / tests. All roles balance each other.
Encourages Collaboration
!6
![Page 7: Example Mapping - jorgekotickaudy.files.wordpress.com · 29/08/2018 · • Specification by Example help us refine requirements. • Rules that summarize examples or express constraints](https://reader036.vdocuments.net/reader036/viewer/2022062506/5f0b682b7e708231d4305dab/html5/thumbnails/7.jpg)
Rules vs Examples: Password Activity
![Page 8: Example Mapping - jorgekotickaudy.files.wordpress.com · 29/08/2018 · • Specification by Example help us refine requirements. • Rules that summarize examples or express constraints](https://reader036.vdocuments.net/reader036/viewer/2022062506/5f0b682b7e708231d4305dab/html5/thumbnails/8.jpg)
• Form teams of 2-4
• In your team, invent THREE rules for what makes a strong password. Write them on BLUE cards.
• Keep your rules secret from other teams • Sample rules: “It must have # in the password” or “It must not
have your name in it”
Group Activity | Passwords
!8Matt Wynne, “Stories, Rules, and Examples.” (BDDx, 2014)
As a member of information security
I want to force users to create strong passwords
In order to prevent passwords from being guessed
![Page 9: Example Mapping - jorgekotickaudy.files.wordpress.com · 29/08/2018 · • Specification by Example help us refine requirements. • Rules that summarize examples or express constraints](https://reader036.vdocuments.net/reader036/viewer/2022062506/5f0b682b7e708231d4305dab/html5/thumbnails/9.jpg)
• Create THREE examples that illustrate your rules
• Write each example on a GREEN card.
• Examples:
Group Activity | Passwords
!9
“Secure#Password” is valid
“ThomasPW” is invalid
![Page 10: Example Mapping - jorgekotickaudy.files.wordpress.com · 29/08/2018 · • Specification by Example help us refine requirements. • Rules that summarize examples or express constraints](https://reader036.vdocuments.net/reader036/viewer/2022062506/5f0b682b7e708231d4305dab/html5/thumbnails/10.jpg)
• Pass your EXAMPLES to another team.
• Attempt to guess the other team’s rules.
• The guessing team may create new examples and ask the RULES team to confirm the examples meet the requirements, without showing the RULES.
• How many examples did it take to guess the rules correctly?
Group Activity | Passwords
!10
![Page 11: Example Mapping - jorgekotickaudy.files.wordpress.com · 29/08/2018 · • Specification by Example help us refine requirements. • Rules that summarize examples or express constraints](https://reader036.vdocuments.net/reader036/viewer/2022062506/5f0b682b7e708231d4305dab/html5/thumbnails/11.jpg)
Why do we need both RULES and EXAMPLES?
Group Activity | Passwords
!11“Strong Passwords Get Hacked” at https://blog.drhack.net/strong-passwords-get-hacked/
![Page 12: Example Mapping - jorgekotickaudy.files.wordpress.com · 29/08/2018 · • Specification by Example help us refine requirements. • Rules that summarize examples or express constraints](https://reader036.vdocuments.net/reader036/viewer/2022062506/5f0b682b7e708231d4305dab/html5/thumbnails/12.jpg)
Use the EXAMPLES to illustrate the RULES of USER STORIES.
Group Activity | Passwords
!12
ExamplesRules /
Acceptance Criteria
User Stories
![Page 13: Example Mapping - jorgekotickaudy.files.wordpress.com · 29/08/2018 · • Specification by Example help us refine requirements. • Rules that summarize examples or express constraints](https://reader036.vdocuments.net/reader036/viewer/2022062506/5f0b682b7e708231d4305dab/html5/thumbnails/13.jpg)
Example Mapping
![Page 14: Example Mapping - jorgekotickaudy.files.wordpress.com · 29/08/2018 · • Specification by Example help us refine requirements. • Rules that summarize examples or express constraints](https://reader036.vdocuments.net/reader036/viewer/2022062506/5f0b682b7e708231d4305dab/html5/thumbnails/14.jpg)
• Before development starts, have a conversation to Clarify and Confirm
• The Three C’s – Card
– Conversation
– Confirmation
From a User Story to Specifications
!14https://ronjeffries.com/xprog/articles/expcardconversationconfirmation/
![Page 15: Example Mapping - jorgekotickaudy.files.wordpress.com · 29/08/2018 · • Specification by Example help us refine requirements. • Rules that summarize examples or express constraints](https://reader036.vdocuments.net/reader036/viewer/2022062506/5f0b682b7e708231d4305dab/html5/thumbnails/15.jpg)
• User stories are written on cards.
• The card does not contain all the information in the requirement.
• The card has just enough content to identify the requirement.
• The card is a token that represents the requirement.
Card
!15
![Page 16: Example Mapping - jorgekotickaudy.files.wordpress.com · 29/08/2018 · • Specification by Example help us refine requirements. • Rules that summarize examples or express constraints](https://reader036.vdocuments.net/reader036/viewer/2022062506/5f0b682b7e708231d4305dab/html5/thumbnails/16.jpg)
• The conversation is an exchange of ideas and opinions.
• This conversation takes place over time: during estimation and planning before implementation.
• The conversation is verbal and often supported by documentation. The best supplements are examples – specifically executable examples.
Conversation
!16
![Page 17: Example Mapping - jorgekotickaudy.files.wordpress.com · 29/08/2018 · • Specification by Example help us refine requirements. • Rules that summarize examples or express constraints](https://reader036.vdocuments.net/reader036/viewer/2022062506/5f0b682b7e708231d4305dab/html5/thumbnails/17.jpg)
• An acceptance test.
• For complex stories, confirmation using examples (and automation) is preferred.
• The confirmation provided by the executable specification steers the approach of card and conversation.
Confirmation
!17
![Page 18: Example Mapping - jorgekotickaudy.files.wordpress.com · 29/08/2018 · • Specification by Example help us refine requirements. • Rules that summarize examples or express constraints](https://reader036.vdocuments.net/reader036/viewer/2022062506/5f0b682b7e708231d4305dab/html5/thumbnails/18.jpg)
• Three Amigos
• Specification Workshop
• Discovery Workshop
• Whichever method is used, these activities must be done regularly!
Other Common Refinement Activities
!18
Workshop Background Materials: http://www.velocitypartners.net/blog/2014/02/11/the-3-amigos-in-agile-teams/ https://gojko.net/2008/11/12/specification-workshops-an-agile-way-to-get-better-requirements/ https://dannorth.net/2010/08/30/introducing-deliberate-discovery/
![Page 19: Example Mapping - jorgekotickaudy.files.wordpress.com · 29/08/2018 · • Specification by Example help us refine requirements. • Rules that summarize examples or express constraints](https://reader036.vdocuments.net/reader036/viewer/2022062506/5f0b682b7e708231d4305dab/html5/thumbnails/19.jpg)
• Specification by Example help us refine requirements.
• Rules that summarize examples or express constraints about the story.
• Questions about scenarios concerning the outcomes or dependencies of the story that no one in the workshop can answer.
• New User Stories either sliced or deferred as out of scope.
Example Mapping by Matt Wynne of Cucumber Ltd.
!19https://cucumber.io/blog/2015/12/08/example-mapping-introduction
![Page 20: Example Mapping - jorgekotickaudy.files.wordpress.com · 29/08/2018 · • Specification by Example help us refine requirements. • Rules that summarize examples or express constraints](https://reader036.vdocuments.net/reader036/viewer/2022062506/5f0b682b7e708231d4305dab/html5/thumbnails/20.jpg)
The Example Map
!20https://speakerdeck.com/mattwynne/rules-vs-examples-bddx-london-2014
![Page 21: Example Mapping - jorgekotickaudy.files.wordpress.com · 29/08/2018 · • Specification by Example help us refine requirements. • Rules that summarize examples or express constraints](https://reader036.vdocuments.net/reader036/viewer/2022062506/5f0b682b7e708231d4305dab/html5/thumbnails/21.jpg)
• The single USER STORY is written on YELLOW card and placed at the top of the map.
• The acceptance criteria as a RULE is written on a BLUE card placed below the User Story.
• Create one or more EXAMPLES written on GREEN cards placed below each rule.
• Any QUESTION that no one in the workshop can answer is written on a RED card.
• Continue the session until a Time-box is met or everyone believes the story is elaborated sufficiently.
Process
!21
![Page 22: Example Mapping - jorgekotickaudy.files.wordpress.com · 29/08/2018 · • Specification by Example help us refine requirements. • Rules that summarize examples or express constraints](https://reader036.vdocuments.net/reader036/viewer/2022062506/5f0b682b7e708231d4305dab/html5/thumbnails/22.jpg)
• The Example Map represents the teams understanding of the story:
– A map with many RED cards mean development work is not ready to begin. Seek out answers outside the workshop.
– A map with many BLUE cards means the User Story is perhaps too large. Try to slice the User Story into two or more.
– A single rule with too many GREEN cards might be too dense. Try to slice the Rule into two or more.
Feedback
!22
![Page 23: Example Mapping - jorgekotickaudy.files.wordpress.com · 29/08/2018 · • Specification by Example help us refine requirements. • Rules that summarize examples or express constraints](https://reader036.vdocuments.net/reader036/viewer/2022062506/5f0b682b7e708231d4305dab/html5/thumbnails/23.jpg)
• An Example Mapping session should take 30 minutes max.
• If the time-box is not met, perhaps:
– The attendees must practice more – The USER STORY has too many RULES – The USER STORY has too many QUESTIONS
• All Example Map attendees must agree the story is ready for development.
Time-Box
!23
![Page 24: Example Mapping - jorgekotickaudy.files.wordpress.com · 29/08/2018 · • Specification by Example help us refine requirements. • Rules that summarize examples or express constraints](https://reader036.vdocuments.net/reader036/viewer/2022062506/5f0b682b7e708231d4305dab/html5/thumbnails/24.jpg)
• Creates a shared understanding among all roles on the team.
• Example Mapping promotes requirements written as user behavior.
• Each rule determines the application’s core behavior.
• Large or unclear stories are stopped from entering active development.
Benefits
!24
![Page 25: Example Mapping - jorgekotickaudy.files.wordpress.com · 29/08/2018 · • Specification by Example help us refine requirements. • Rules that summarize examples or express constraints](https://reader036.vdocuments.net/reader036/viewer/2022062506/5f0b682b7e708231d4305dab/html5/thumbnails/25.jpg)
• One person writing Gherkin scenarios based on the examples during the session while others sit idly by is not advised.
• If the team uses Gherkin standards, then individuals can quickly write the examples and split the work amongst the team.
A Word of Caution
!25
![Page 26: Example Mapping - jorgekotickaudy.files.wordpress.com · 29/08/2018 · • Specification by Example help us refine requirements. • Rules that summarize examples or express constraints](https://reader036.vdocuments.net/reader036/viewer/2022062506/5f0b682b7e708231d4305dab/html5/thumbnails/26.jpg)
An Example Example Mapping
!26
Schedule a Workshop
Workshop within normal working hours
Room must be available
At least 75% of all participants available
Core business hours between 9am and 3pm EST
Workshop scheduled on day when colleagues on-site
What if one or more Trainers are unavailable?
Is catering required?
A workshop with 4 people or fewer can be held in the atrium
A workshop with 5 people or more must be reserved in meeting room
Does the meeting room require a projector?
Scheduled during timeframe when colleagues don’t have meeting conflicts
![Page 27: Example Mapping - jorgekotickaudy.files.wordpress.com · 29/08/2018 · • Specification by Example help us refine requirements. • Rules that summarize examples or express constraints](https://reader036.vdocuments.net/reader036/viewer/2022062506/5f0b682b7e708231d4305dab/html5/thumbnails/27.jpg)
• Group Activity (time box: 30 minutes) – In your group, conduct an
Example Mapping session for one of the User Stories available.
– We’ll review each groups work together.
– Divide the EXAMPLES from your session amongst your team members. For each Example, write the Gherkin specification.
Example Mapping Group Activity
!27
![Page 28: Example Mapping - jorgekotickaudy.files.wordpress.com · 29/08/2018 · • Specification by Example help us refine requirements. • Rules that summarize examples or express constraints](https://reader036.vdocuments.net/reader036/viewer/2022062506/5f0b682b7e708231d4305dab/html5/thumbnails/28.jpg)
Questions?
!28
![Page 29: Example Mapping - jorgekotickaudy.files.wordpress.com · 29/08/2018 · • Specification by Example help us refine requirements. • Rules that summarize examples or express constraints](https://reader036.vdocuments.net/reader036/viewer/2022062506/5f0b682b7e708231d4305dab/html5/thumbnails/29.jpg)
Resources
![Page 30: Example Mapping - jorgekotickaudy.files.wordpress.com · 29/08/2018 · • Specification by Example help us refine requirements. • Rules that summarize examples or express constraints](https://reader036.vdocuments.net/reader036/viewer/2022062506/5f0b682b7e708231d4305dab/html5/thumbnails/30.jpg)
ResourcesThe Requirements
!30
![Page 31: Example Mapping - jorgekotickaudy.files.wordpress.com · 29/08/2018 · • Specification by Example help us refine requirements. • Rules that summarize examples or express constraints](https://reader036.vdocuments.net/reader036/viewer/2022062506/5f0b682b7e708231d4305dab/html5/thumbnails/31.jpg)
ResourcesThe Automation
!31
![Page 32: Example Mapping - jorgekotickaudy.files.wordpress.com · 29/08/2018 · • Specification by Example help us refine requirements. • Rules that summarize examples or express constraints](https://reader036.vdocuments.net/reader036/viewer/2022062506/5f0b682b7e708231d4305dab/html5/thumbnails/32.jpg)
ResourcesThe Quality
!32
![Page 33: Example Mapping - jorgekotickaudy.files.wordpress.com · 29/08/2018 · • Specification by Example help us refine requirements. • Rules that summarize examples or express constraints](https://reader036.vdocuments.net/reader036/viewer/2022062506/5f0b682b7e708231d4305dab/html5/thumbnails/33.jpg)
SDLC Integration“Waterfall”
![Page 34: Example Mapping - jorgekotickaudy.files.wordpress.com · 29/08/2018 · • Specification by Example help us refine requirements. • Rules that summarize examples or express constraints](https://reader036.vdocuments.net/reader036/viewer/2022062506/5f0b682b7e708231d4305dab/html5/thumbnails/34.jpg)
SDLC Integration | Waterfall
!34
Write Stories & Acceptance Criteria
Commit Requirements Develop Test Automate
Tests
![Page 35: Example Mapping - jorgekotickaudy.files.wordpress.com · 29/08/2018 · • Specification by Example help us refine requirements. • Rules that summarize examples or express constraints](https://reader036.vdocuments.net/reader036/viewer/2022062506/5f0b682b7e708231d4305dab/html5/thumbnails/35.jpg)
SDLC Integration | Analyst Writes Gherkin
!35
Write Stories in Gherkin Format
Gherkin Part of Tollgate to
DesignCommit
Requirements Develop Test Automate Tests
Incorporated into Entry Criteria
![Page 36: Example Mapping - jorgekotickaudy.files.wordpress.com · 29/08/2018 · • Specification by Example help us refine requirements. • Rules that summarize examples or express constraints](https://reader036.vdocuments.net/reader036/viewer/2022062506/5f0b682b7e708231d4305dab/html5/thumbnails/36.jpg)
SDLC Integration | Three Amigos Introduced
!36
Write Stories in Gherkin Format
Three Amigos (Example Mapping)
Commit Requirements Develop
Test Automation of
Gherkin
Incorporated into Exit Criteria
Incorporated into Entry Criteria
![Page 37: Example Mapping - jorgekotickaudy.files.wordpress.com · 29/08/2018 · • Specification by Example help us refine requirements. • Rules that summarize examples or express constraints](https://reader036.vdocuments.net/reader036/viewer/2022062506/5f0b682b7e708231d4305dab/html5/thumbnails/37.jpg)
SDLC Integration | Full BDD
!37
Write Stories in Gherkin Format
Three Amigos (Example Mapping)
Commit Requirements
Develop with Automated
Specifications
Execute all Regression & Release tests
Incorporated into Exit Criteria
Incorporated into Entry Criteria
![Page 38: Example Mapping - jorgekotickaudy.files.wordpress.com · 29/08/2018 · • Specification by Example help us refine requirements. • Rules that summarize examples or express constraints](https://reader036.vdocuments.net/reader036/viewer/2022062506/5f0b682b7e708231d4305dab/html5/thumbnails/38.jpg)
SDLC Integration“Scrum”
![Page 39: Example Mapping - jorgekotickaudy.files.wordpress.com · 29/08/2018 · • Specification by Example help us refine requirements. • Rules that summarize examples or express constraints](https://reader036.vdocuments.net/reader036/viewer/2022062506/5f0b682b7e708231d4305dab/html5/thumbnails/39.jpg)
SDLC Integration | Standard “Sprint”
!39
Write Stories & Acceptance
Criteria
Commit Stories to
SprintDevelop Test Automate
Tests
![Page 40: Example Mapping - jorgekotickaudy.files.wordpress.com · 29/08/2018 · • Specification by Example help us refine requirements. • Rules that summarize examples or express constraints](https://reader036.vdocuments.net/reader036/viewer/2022062506/5f0b682b7e708231d4305dab/html5/thumbnails/40.jpg)
SDLC Integration | Analyst Writes Gherkin
!40
Write Stories in Gherkin Format
Gherkin Part of Backlog Refinement
Commit Stories to
SprintDevelop Test Automate
Tests
Incorporated into Definition of “Ready”
![Page 41: Example Mapping - jorgekotickaudy.files.wordpress.com · 29/08/2018 · • Specification by Example help us refine requirements. • Rules that summarize examples or express constraints](https://reader036.vdocuments.net/reader036/viewer/2022062506/5f0b682b7e708231d4305dab/html5/thumbnails/41.jpg)
SDLC Integration | Three Amigos Introduced
!41
Write Stories in Gherkin Format
Three Amigos (Example Mapping)
Commit Stories to
SprintDevelop
Test Automation of
Gherkin
Incorporated into Definition of “Ready”
Incorporated into Definition of “Done”
![Page 42: Example Mapping - jorgekotickaudy.files.wordpress.com · 29/08/2018 · • Specification by Example help us refine requirements. • Rules that summarize examples or express constraints](https://reader036.vdocuments.net/reader036/viewer/2022062506/5f0b682b7e708231d4305dab/html5/thumbnails/42.jpg)
SDLC Integration | Full BDD
!42
Write Stories in Gherkin Format
Three Amigos (Example Mapping)
Commit Stories to
Sprint
Develop with Automated
Specifications
Execute all Regression & Release tests
Incorporated into Definition of “Done”
Incorporated into Definition of “Ready”