SlideShare a Scribd company logo
BDD for UX
Bridging the design/code chasm

with Behavior Driven Development
Jonathan Abbett · @jonabbett
UXPA Boston Conference · 19 May 2017
Why are we here?
Why are we here?
We want to design
useful things that
are possible to build
• Understanding users’ desires,
needs, motivations, and contexts
• Understanding business, technical,
and domain opportunities,
requirements, and constraints
• Using this knowledge as a
foundation for plans to create
products whose form, content, and
behavior is useful, usable, and
desirable, as well as
economically viable and
technically feasible.
—Cooper, About Face 3
How do I know something is useful?
How do I know something can be built?
Personas
Scenarios
Requirements
User

Stories
Storyboards
Prototypes
Wireframes
Sketches
Mental

Models
Journey

Maps
Goals
Personas
Scenarios
Requirements
User

Stories
Storyboards
Prototypes
Wireframes
Sketches
Mental

Models
Journey

Maps
Goals
1010101
☐ Decrease ambiguity
☐ Increase dev focus on users & goals
☐ Improve quality
☐ Guarantee UX for the long term
☐ Engage more of team in the design/dev process
• user stories as requirements
• user stories as the basis for acceptance testing
As an Account Holder

I want to withdraw cash from an ATM

So I can get money when the bank is closed
"I kept coming across the same confusion
and misunderstandings. Programmers
wanted to know where to start, what to
test and what not to test…”
"If we could develop a consistent
vocabulary for analysts, testers,
developers, and the business, then we
would be well on the way to eliminating
some of the ambiguity and
miscommunication that occur when
technical people talk to business people."
FEATURE: Account Holder withdraws cash
Scenario: Account has sufficient funds
Scenario: Account has insufficient funds
Scenario: Card has been disabled
Scenario: The ATM has insufficient funds
FEATURE: Account Holder withdraws cash
Scenario: Account has sufficient funds
Given the account balance is $100
And the card is valid
And the machine contains enough money
When the Account Holder requests $20
Then the ATM should dispense $20
And the account balance should be $80
And the card should be returned
GIVEN
describe an assumption

create the context
WHEN perform an action in the interface
THEN confirm the correct outcome
FEATURE: Account Holder withdraws cash
Scenario: Account has sufficient funds
Given the account balance is $100
And the card is valid
And the machine contains enough money
When the Account Holder requests $20
Then the ATM should dispense $20
And the account balance should be $80
And the card should be returned
ht: @kitt
IE Firefox
Chrome Safari
???
User

Stories
Acceptance
Tests
Behavioral
Scenarios
User

Stories
Acceptance
Tests
Research Goals Personas
Context
Scenarios
Requirements
Research Goals Personas
Context
Scenarios
Behavioral
Scenarios
User

Stories
Acceptance
Tests
• Persona tells us who

(really well, in fact)
• Activities in a scenario tell us what
• Context in the scenario

(from persona goals) tells us why
Pause Point
Any questions so far?
How to

BDD + UX
1. Start with a persona & context scenario
(and usually a wireframe or prototype)
2. Name your feature
3. Name your behavioral scenarios
4. When you write steps, maintain texture
Vivian is a chronic care patient
whose goal is to keep active in her
family, her work, and her community
while keeping her disease under
control.
It's easy for her to get discouraged
when permanent relief from her
symptoms is unlikely.
Once Vivian was diagnosed with Type 2 diabetes, she
and her endocrinologist set a goal in her care plan
to get her hemoglobin A1c under 7% after 3 months.
To do that, Vivian must carefully monitor her blood
glucose.
She logs into her care plan each week and marks
whether her goal is on-track or off-track.
Her endocrinologist gets notified and reaches out
with encouragement or advice as necessary.
Finally, Vivian can report that she's met her HbA1c
target. She visits her care plan, and marks her
HbA1c goal as achieved.
The system notifies her care team of the
achievement, and Vivian is delighted to see confetti
fill the background of her screen, after so many
weeks of hard work.
What’s the goal?
What’s its status?
What’s our target?
MANAGING A CARE GOAL
Requirements
• Set a due date on a goal
• Mark a goal as on track
• Mark a goal as off track
• Mark a goal as achieved
• Notify team members when a goal’s status changes
Feature: MANAGING A CARE GOAL
Requirements Scenarios
• Set a due date on a goal
• Mark a goal as on track
• Mark a goal as off track
• Mark a goal as achieved
• Notify team members when a goal’s status changes
GIVEN
describe an assumption

create the context
WHEN perform an action in the interface
THEN confirm the correct outcome
Feature: MANAGING A CARE GOAL
Scenario: Mark a goal as achieved
Given Vivian is a patient with a goal in her care plan
When she visits her care plan
Then she sees her goal displayed within it
When she chooses a goal status of 'achieved'
Then she now sees her goal has a status of 'achieved'
And the system notifies her care team of her success
And she sees celebratory confetti, which makes her smile
Given Vivian is a patient with a goal in her
care plan
Create a patient
Create a care plan for the patient
Create a goal within the care plan
Create another care team member to be notified
Log me in as the patient
When she visits her care plan
Navigate to the right screen in the interface
Then she sees her goal displayed within it
Confirm that the goal we set up in the ‘Given’
step appears on the screen before we continue
When she chooses a goal status of 'achieved'
Find the component for changing the goal’s status
Select the new status of “achieved”
Then she now sees her goal has a status of
'achieved'
Now that we’ve made the change, confirm we can
see that our change is reflected in the interface
☑ Decrease ambiguity
☑ Increase dev focus on users & goals
☐ Improve quality
☐ Guarantee UX for the long term
☐ Engage more of team in the design/dev process
Pause Point
Certainly someone has

a question now.
Make it real.
Python Behave pythonhosted.org/behave
Java JBehave jbehave.org
Ruby on Rails
Cucumber
Spinach
cukes.info
codegram.github.io/spinach
JavaScript Yadda github.com/acuminous/yadda
.NET Specflow specflow.org
PHP Behat behat.org
# Fill in a form field 

fill_in 'Name', with: 'Brady Doverspike'
# Find something by its CSS selector and click it 

find('.selector').click
# Check a checkbox/radio 

check('I agree')
# Click a button by its name 

click_button('Submit')
# Check if the page shows some text 

has_text?('Order prescription')
# Confirm the page doesn't show some text 

has_no_text?('Should not see this')
# Confirm the page has some link 

has_link?('Log Out')
# CAPYBARA SYNTAX
☑ Decrease ambiguity
☑ Increase dev focus on users & goals
☑ Improve quality
☑ Guarantee UX for the long term
☐ Engage more of team in the design/dev process
Pause Point
Anybody? Buehler?
Be inclusive.
• Who writes them?
• Where will they be stored?
• How will they be reviewed?
• What to review?
• What if things change?
Who writes them?
• Synthesis-by-receiver confirms understanding
• Draws out ambiguities sooner
• Starts transition from design to implementation
• Writing gives sense of ownership
• Collaboration vs. throwing over wall
Where will they be stored?
• Somewhere suited for collaboration?
• Close to where context scenarios were written?
• (Ultimately code base)
How will they be reviewed?
• Depends on your process.
• Right point for a broad stakeholder review?
• Sales, Accounts, Customer Support, etc.
• One-on-one iteration?
• Is your team co-located or remote?
What to review?
• Feature fully covers context scenario
• Each scenario focuses on single activity
• Givens define just enough context, not more
• Whens are not so implementation-specific
• Thens reflect persona’s goals & challenges
• Identify “non-functional” requirements
Feature: MANAGING A CARE GOAL
Scenario: Mark a goal as achieved
Given Vivian is a patient with a goal in her care plan
When she visits her care plan
Then she sees her goal displayed within it
When she chooses a goal status of 'achieved'
Then she now sees her goal has a status of 'achieved'
And the system notifies her care team of her success
And she sees celebratory confetti, which makes her smile
What if things change?
• You will learn as you build.
• You will learn as you test.
• You will learn after you release.
Pause Point
Last chance before end!
☑ Decrease ambiguity
☑ Increase dev focus on users & goals
☑ Improve quality
☑ Guarantee UX for the long term
☑ Engage more of team in the design/dev process
• Natural language descriptions of functionality
• Easy for non-developers to write, update
• Collaborate through existing tools
• BDD frameworks available in every language
• Cloud services for scalable cross-browser testing
• Stays in sync and validates UX over time
@jonabbett
jonathan@act.md
THANK YOU!
Photo Credits
• Grand Canyon: NNNN
• Chasm: NNNN
• Binary heart: https://www.neuronsnotincluded.com/products/linux-mouse-pad-for-geeks-nerds-and-
scientists
• Dan North: NNNN
• XP process: NNNN
• Automate all the things: NNNN
• Alan Cooper: NNNN
• “Vivian” Persona: https://www.flickr.com/photos/127713902@N07/34332189000

More Related Content

What's hot

Agile and user story workshop Peter Saddington
Agile and user story workshop   Peter SaddingtonAgile and user story workshop   Peter Saddington
Agile and user story workshop Peter Saddington
Peter Saddington
 
Story of user story
Story of user storyStory of user story
Story of user story
Balaji Sathram
 
User Story Mapping (2008)
User Story Mapping (2008)User Story Mapping (2008)
User Story Mapping (2008)
Jeff Patton
 
How to facilitate product backlog refinement sessions
How to facilitate product backlog refinement sessionsHow to facilitate product backlog refinement sessions
How to facilitate product backlog refinement sessions
LuxoftAgilePractice
 
User Stories explained
User Stories explainedUser Stories explained
User Stories explained
Martin Lapointe, M.T.I.
 
User Story Splitting
User Story SplittingUser Story Splitting
User Story Splitting
trishly
 
Cheat Sheet: 8 ways to split your user stories
Cheat Sheet:  8 ways to split your user storiesCheat Sheet:  8 ways to split your user stories
Cheat Sheet: 8 ways to split your user stories
Payton Consulting
 
Test cases for effective testing - part 1
Test cases for effective testing - part 1Test cases for effective testing - part 1
Test cases for effective testing - part 1
Mona M. Abd El-Rahman
 
Workshop - Writing Good User Stories
Workshop - Writing Good User Stories Workshop - Writing Good User Stories
Workshop - Writing Good User Stories
Easy Agile
 
User Story Writing & Estimation For Testers By Mahesh Varadharajan
User Story Writing & Estimation For Testers By Mahesh VaradharajanUser Story Writing & Estimation For Testers By Mahesh Varadharajan
User Story Writing & Estimation For Testers By Mahesh Varadharajan
Agile Testing Alliance
 
Scrum Meetings Infographic v12
Scrum Meetings Infographic v12Scrum Meetings Infographic v12
Scrum Meetings Infographic v12Nigel Thurlow
 
Splitting Stories with the Hamburger Method - A Simple 5 Step Process
Splitting Stories with the Hamburger Method - A Simple 5 Step ProcessSplitting Stories with the Hamburger Method - A Simple 5 Step Process
Splitting Stories with the Hamburger Method - A Simple 5 Step Process
Stephen Tucker
 
Introducing Agile User Stories
Introducing Agile User StoriesIntroducing Agile User Stories
Introducing Agile User Stories
Ram Srivastava
 
User Story Splitting.pptx
User Story Splitting.pptxUser Story Splitting.pptx
User Story Splitting.pptx
Paul Boos
 
User Stories Fundamentals
User Stories FundamentalsUser Stories Fundamentals
User Stories Fundamentals
Moisés Armani Ramírez
 
An introduction to agile estimation and release planning
An introduction to agile estimation and release planningAn introduction to agile estimation and release planning
An introduction to agile estimation and release planning
James Whitehead
 
Definition of Done
Definition of DoneDefinition of Done
Definition of Done
Marcin Niebudek
 
[HCM Scrum Breakfast] Agile estimation - Story points
[HCM Scrum Breakfast] Agile estimation - Story points[HCM Scrum Breakfast] Agile estimation - Story points
[HCM Scrum Breakfast] Agile estimation - Story points
Scrum Breakfast Vietnam
 
Estimation techniques for Scrum Teams
Estimation techniques for Scrum TeamsEstimation techniques for Scrum Teams
Estimation techniques for Scrum Teams
Jesus Mendez
 
Agile Software Estimation
Agile Software EstimationAgile Software Estimation
Agile Software Estimation
Sunil Jakkaraju
 

What's hot (20)

Agile and user story workshop Peter Saddington
Agile and user story workshop   Peter SaddingtonAgile and user story workshop   Peter Saddington
Agile and user story workshop Peter Saddington
 
Story of user story
Story of user storyStory of user story
Story of user story
 
User Story Mapping (2008)
User Story Mapping (2008)User Story Mapping (2008)
User Story Mapping (2008)
 
How to facilitate product backlog refinement sessions
How to facilitate product backlog refinement sessionsHow to facilitate product backlog refinement sessions
How to facilitate product backlog refinement sessions
 
User Stories explained
User Stories explainedUser Stories explained
User Stories explained
 
User Story Splitting
User Story SplittingUser Story Splitting
User Story Splitting
 
Cheat Sheet: 8 ways to split your user stories
Cheat Sheet:  8 ways to split your user storiesCheat Sheet:  8 ways to split your user stories
Cheat Sheet: 8 ways to split your user stories
 
Test cases for effective testing - part 1
Test cases for effective testing - part 1Test cases for effective testing - part 1
Test cases for effective testing - part 1
 
Workshop - Writing Good User Stories
Workshop - Writing Good User Stories Workshop - Writing Good User Stories
Workshop - Writing Good User Stories
 
User Story Writing & Estimation For Testers By Mahesh Varadharajan
User Story Writing & Estimation For Testers By Mahesh VaradharajanUser Story Writing & Estimation For Testers By Mahesh Varadharajan
User Story Writing & Estimation For Testers By Mahesh Varadharajan
 
Scrum Meetings Infographic v12
Scrum Meetings Infographic v12Scrum Meetings Infographic v12
Scrum Meetings Infographic v12
 
Splitting Stories with the Hamburger Method - A Simple 5 Step Process
Splitting Stories with the Hamburger Method - A Simple 5 Step ProcessSplitting Stories with the Hamburger Method - A Simple 5 Step Process
Splitting Stories with the Hamburger Method - A Simple 5 Step Process
 
Introducing Agile User Stories
Introducing Agile User StoriesIntroducing Agile User Stories
Introducing Agile User Stories
 
User Story Splitting.pptx
User Story Splitting.pptxUser Story Splitting.pptx
User Story Splitting.pptx
 
User Stories Fundamentals
User Stories FundamentalsUser Stories Fundamentals
User Stories Fundamentals
 
An introduction to agile estimation and release planning
An introduction to agile estimation and release planningAn introduction to agile estimation and release planning
An introduction to agile estimation and release planning
 
Definition of Done
Definition of DoneDefinition of Done
Definition of Done
 
[HCM Scrum Breakfast] Agile estimation - Story points
[HCM Scrum Breakfast] Agile estimation - Story points[HCM Scrum Breakfast] Agile estimation - Story points
[HCM Scrum Breakfast] Agile estimation - Story points
 
Estimation techniques for Scrum Teams
Estimation techniques for Scrum TeamsEstimation techniques for Scrum Teams
Estimation techniques for Scrum Teams
 
Agile Software Estimation
Agile Software EstimationAgile Software Estimation
Agile Software Estimation
 

Similar to Behavior-Driven Development for UX Teams

Adressing nfr-with-agile-practices (english) - dec 16th
Adressing nfr-with-agile-practices (english) - dec 16thAdressing nfr-with-agile-practices (english) - dec 16th
Adressing nfr-with-agile-practices (english) - dec 16th
marwakhalid
 
Creating Your Dashboard & Universal Measures with Userzoom – The Deep-Dive Ho...
Creating Your Dashboard & Universal Measures with Userzoom – The Deep-Dive Ho...Creating Your Dashboard & Universal Measures with Userzoom – The Deep-Dive Ho...
Creating Your Dashboard & Universal Measures with Userzoom – The Deep-Dive Ho...
UserZoom
 
UX Field Research Toolkit - A Workshop at Big Design - 2017
UX Field Research Toolkit - A Workshop at Big Design - 2017UX Field Research Toolkit - A Workshop at Big Design - 2017
UX Field Research Toolkit - A Workshop at Big Design - 2017
Kelly Moran
 
Newer way to notify customer about features
Newer way to notify customer about featuresNewer way to notify customer about features
Newer way to notify customer about featuresArunoda Susiripala
 
PM Growth Playbook: Growth Framework + Product Core Loop
PM Growth Playbook: Growth Framework + Product Core LoopPM Growth Playbook: Growth Framework + Product Core Loop
PM Growth Playbook: Growth Framework + Product Core Loop
Abishek Viswanathan
 
Intro agile for PO's
Intro agile for PO'sIntro agile for PO's
Intro agile for PO's
Anat (Alon) Salhov
 
Tech Smart - How to improve member experience
Tech Smart - How to improve member experienceTech Smart - How to improve member experience
Tech Smart - How to improve member experience
Ralph Johnson
 
Strategizing for Growth
Strategizing for GrowthStrategizing for Growth
Strategizing for Growth
Amplitude
 
Use Cases and Use in Agile world
Use Cases and Use in Agile worldUse Cases and Use in Agile world
Use Cases and Use in Agile world
Ravikanth-BA
 
Driving better requirements through DevOps
Driving better requirements through DevOpsDriving better requirements through DevOps
Driving better requirements through DevOps
Navvia
 
How to use Scenarios
How to use ScenariosHow to use Scenarios
How to use Scenarios
Peter Zalman
 
Product talks andrei karol - kano&unit economy rules
Product talks   andrei karol - kano&unit economy rulesProduct talks   andrei karol - kano&unit economy rules
Product talks andrei karol - kano&unit economy rules
Dakiry
 
[UserZoom Webinar] The Online Shopping Experience: Benchmarking Four Ecommerc...
[UserZoom Webinar] The Online Shopping Experience: Benchmarking Four Ecommerc...[UserZoom Webinar] The Online Shopping Experience: Benchmarking Four Ecommerc...
[UserZoom Webinar] The Online Shopping Experience: Benchmarking Four Ecommerc...
UserZoom
 
Webinar: Understanding Product Strategy by fmr Flipkart Sr Mgr Products
Webinar: Understanding Product Strategy by fmr Flipkart Sr Mgr ProductsWebinar: Understanding Product Strategy by fmr Flipkart Sr Mgr Products
Webinar: Understanding Product Strategy by fmr Flipkart Sr Mgr Products
Product School
 
Zero to One Startup Masterclass Series - Week Two
Zero to One Startup Masterclass Series - Week TwoZero to One Startup Masterclass Series - Week Two
Zero to One Startup Masterclass Series - Week Two
Isaac Jumba
 
ALE2012 - Pirate metrics AARRR
ALE2012 - Pirate metrics AARRRALE2012 - Pirate metrics AARRR
ALE2012 - Pirate metrics AARRR
Jürgen De Smet
 
thinkLA AdU: Digital Production 101
thinkLA AdU: Digital Production 101thinkLA AdU: Digital Production 101
thinkLA AdU: Digital Production 101
thinkLA
 
Writing User Stories (04/2012)
Writing User Stories (04/2012)Writing User Stories (04/2012)
Writing User Stories (04/2012)
Mai Quay
 
UX Webinar: Always Be Testing
UX Webinar: Always Be TestingUX Webinar: Always Be Testing
UX Webinar: Always Be Testing
Charity Dynamics
 
Andriy Korol "What is the next great feature you have to implement? Kano mode...
Andriy Korol "What is the next great feature you have to implement? Kano mode...Andriy Korol "What is the next great feature you have to implement? Kano mode...
Andriy Korol "What is the next great feature you have to implement? Kano mode...
Lviv Startup Club
 

Similar to Behavior-Driven Development for UX Teams (20)

Adressing nfr-with-agile-practices (english) - dec 16th
Adressing nfr-with-agile-practices (english) - dec 16thAdressing nfr-with-agile-practices (english) - dec 16th
Adressing nfr-with-agile-practices (english) - dec 16th
 
Creating Your Dashboard & Universal Measures with Userzoom – The Deep-Dive Ho...
Creating Your Dashboard & Universal Measures with Userzoom – The Deep-Dive Ho...Creating Your Dashboard & Universal Measures with Userzoom – The Deep-Dive Ho...
Creating Your Dashboard & Universal Measures with Userzoom – The Deep-Dive Ho...
 
UX Field Research Toolkit - A Workshop at Big Design - 2017
UX Field Research Toolkit - A Workshop at Big Design - 2017UX Field Research Toolkit - A Workshop at Big Design - 2017
UX Field Research Toolkit - A Workshop at Big Design - 2017
 
Newer way to notify customer about features
Newer way to notify customer about featuresNewer way to notify customer about features
Newer way to notify customer about features
 
PM Growth Playbook: Growth Framework + Product Core Loop
PM Growth Playbook: Growth Framework + Product Core LoopPM Growth Playbook: Growth Framework + Product Core Loop
PM Growth Playbook: Growth Framework + Product Core Loop
 
Intro agile for PO's
Intro agile for PO'sIntro agile for PO's
Intro agile for PO's
 
Tech Smart - How to improve member experience
Tech Smart - How to improve member experienceTech Smart - How to improve member experience
Tech Smart - How to improve member experience
 
Strategizing for Growth
Strategizing for GrowthStrategizing for Growth
Strategizing for Growth
 
Use Cases and Use in Agile world
Use Cases and Use in Agile worldUse Cases and Use in Agile world
Use Cases and Use in Agile world
 
Driving better requirements through DevOps
Driving better requirements through DevOpsDriving better requirements through DevOps
Driving better requirements through DevOps
 
How to use Scenarios
How to use ScenariosHow to use Scenarios
How to use Scenarios
 
Product talks andrei karol - kano&unit economy rules
Product talks   andrei karol - kano&unit economy rulesProduct talks   andrei karol - kano&unit economy rules
Product talks andrei karol - kano&unit economy rules
 
[UserZoom Webinar] The Online Shopping Experience: Benchmarking Four Ecommerc...
[UserZoom Webinar] The Online Shopping Experience: Benchmarking Four Ecommerc...[UserZoom Webinar] The Online Shopping Experience: Benchmarking Four Ecommerc...
[UserZoom Webinar] The Online Shopping Experience: Benchmarking Four Ecommerc...
 
Webinar: Understanding Product Strategy by fmr Flipkart Sr Mgr Products
Webinar: Understanding Product Strategy by fmr Flipkart Sr Mgr ProductsWebinar: Understanding Product Strategy by fmr Flipkart Sr Mgr Products
Webinar: Understanding Product Strategy by fmr Flipkart Sr Mgr Products
 
Zero to One Startup Masterclass Series - Week Two
Zero to One Startup Masterclass Series - Week TwoZero to One Startup Masterclass Series - Week Two
Zero to One Startup Masterclass Series - Week Two
 
ALE2012 - Pirate metrics AARRR
ALE2012 - Pirate metrics AARRRALE2012 - Pirate metrics AARRR
ALE2012 - Pirate metrics AARRR
 
thinkLA AdU: Digital Production 101
thinkLA AdU: Digital Production 101thinkLA AdU: Digital Production 101
thinkLA AdU: Digital Production 101
 
Writing User Stories (04/2012)
Writing User Stories (04/2012)Writing User Stories (04/2012)
Writing User Stories (04/2012)
 
UX Webinar: Always Be Testing
UX Webinar: Always Be TestingUX Webinar: Always Be Testing
UX Webinar: Always Be Testing
 
Andriy Korol "What is the next great feature you have to implement? Kano mode...
Andriy Korol "What is the next great feature you have to implement? Kano mode...Andriy Korol "What is the next great feature you have to implement? Kano mode...
Andriy Korol "What is the next great feature you have to implement? Kano mode...
 

Recently uploaded

原版定做(penn毕业证书)美国宾夕法尼亚大学毕业证文凭学历证书原版一模一样
原版定做(penn毕业证书)美国宾夕法尼亚大学毕业证文凭学历证书原版一模一样原版定做(penn毕业证书)美国宾夕法尼亚大学毕业证文凭学历证书原版一模一样
原版定做(penn毕业证书)美国宾夕法尼亚大学毕业证文凭学历证书原版一模一样
gpffo76j
 
Borys Sutkowski portfolio interior design
Borys Sutkowski portfolio interior designBorys Sutkowski portfolio interior design
Borys Sutkowski portfolio interior design
boryssutkowski
 
一比一原版(UNUK毕业证书)诺丁汉大学毕业证如何办理
一比一原版(UNUK毕业证书)诺丁汉大学毕业证如何办理一比一原版(UNUK毕业证书)诺丁汉大学毕业证如何办理
一比一原版(UNUK毕业证书)诺丁汉大学毕业证如何办理
7sd8fier
 
一比一原版(UCB毕业证书)伯明翰大学学院毕业证成绩单如何办理
一比一原版(UCB毕业证书)伯明翰大学学院毕业证成绩单如何办理一比一原版(UCB毕业证书)伯明翰大学学院毕业证成绩单如何办理
一比一原版(UCB毕业证书)伯明翰大学学院毕业证成绩单如何办理
h7j5io0
 
RTUYUIJKLDSADAGHBDJNKSMAL,D
RTUYUIJKLDSADAGHBDJNKSMAL,DRTUYUIJKLDSADAGHBDJNKSMAL,D
RTUYUIJKLDSADAGHBDJNKSMAL,D
cy0krjxt
 
Book Formatting: Quality Control Checks for Designers
Book Formatting: Quality Control Checks for DesignersBook Formatting: Quality Control Checks for Designers
Book Formatting: Quality Control Checks for Designers
Confidence Ago
 
Design Thinking Design thinking Design thinking
Design Thinking Design thinking Design thinkingDesign Thinking Design thinking Design thinking
Design Thinking Design thinking Design thinking
cy0krjxt
 
一比一原版(Columbia毕业证)哥伦比亚大学毕业证如何办理
一比一原版(Columbia毕业证)哥伦比亚大学毕业证如何办理一比一原版(Columbia毕业证)哥伦比亚大学毕业证如何办理
一比一原版(Columbia毕业证)哥伦比亚大学毕业证如何办理
asuzyq
 
一比一原版(毕业证)长崎大学毕业证成绩单如何办理
一比一原版(毕业证)长崎大学毕业证成绩单如何办理一比一原版(毕业证)长崎大学毕业证成绩单如何办理
一比一原版(毕业证)长崎大学毕业证成绩单如何办理
taqyed
 
Design Thinking Design thinking Design thinking
Design Thinking Design thinking Design thinkingDesign Thinking Design thinking Design thinking
Design Thinking Design thinking Design thinking
cy0krjxt
 
一比一原版(BU毕业证书)伯恩茅斯大学毕业证成绩单如何办理
一比一原版(BU毕业证书)伯恩茅斯大学毕业证成绩单如何办理一比一原版(BU毕业证书)伯恩茅斯大学毕业证成绩单如何办理
一比一原版(BU毕业证书)伯恩茅斯大学毕业证成绩单如何办理
h7j5io0
 
一比一原版(Glasgow毕业证书)格拉斯哥大学毕业证成绩单如何办理
一比一原版(Glasgow毕业证书)格拉斯哥大学毕业证成绩单如何办理一比一原版(Glasgow毕业证书)格拉斯哥大学毕业证成绩单如何办理
一比一原版(Glasgow毕业证书)格拉斯哥大学毕业证成绩单如何办理
n0tivyq
 
Can AI do good? at 'offtheCanvas' India HCI prelude
Can AI do good? at 'offtheCanvas' India HCI preludeCan AI do good? at 'offtheCanvas' India HCI prelude
Can AI do good? at 'offtheCanvas' India HCI prelude
Alan Dix
 
Top Israeli Products and Brands - Plan it israel.pdf
Top Israeli Products and Brands - Plan it israel.pdfTop Israeli Products and Brands - Plan it israel.pdf
Top Israeli Products and Brands - Plan it israel.pdf
PlanitIsrael
 
White wonder, Work developed by Eva Tschopp
White wonder, Work developed by Eva TschoppWhite wonder, Work developed by Eva Tschopp
White wonder, Work developed by Eva Tschopp
Mansi Shah
 
Between Filth and Fortune- Urban Cattle Foraging Realities by Devi S Nair, An...
Between Filth and Fortune- Urban Cattle Foraging Realities by Devi S Nair, An...Between Filth and Fortune- Urban Cattle Foraging Realities by Devi S Nair, An...
Between Filth and Fortune- Urban Cattle Foraging Realities by Devi S Nair, An...
Mansi Shah
 
一比一原版(Bristol毕业证书)布里斯托大学毕业证成绩单如何办理
一比一原版(Bristol毕业证书)布里斯托大学毕业证成绩单如何办理一比一原版(Bristol毕业证书)布里斯托大学毕业证成绩单如何办理
一比一原版(Bristol毕业证书)布里斯托大学毕业证成绩单如何办理
smpc3nvg
 
Common Designing Mistakes and How to avoid them
Common Designing Mistakes and How to avoid themCommon Designing Mistakes and How to avoid them
Common Designing Mistakes and How to avoid them
madhavlakhanpal29
 
Portfolio.pdf
Portfolio.pdfPortfolio.pdf
Portfolio.pdf
garcese
 
20 slides of research movie and artists .pdf
20 slides of research movie and artists .pdf20 slides of research movie and artists .pdf
20 slides of research movie and artists .pdf
ameli25062005
 

Recently uploaded (20)

原版定做(penn毕业证书)美国宾夕法尼亚大学毕业证文凭学历证书原版一模一样
原版定做(penn毕业证书)美国宾夕法尼亚大学毕业证文凭学历证书原版一模一样原版定做(penn毕业证书)美国宾夕法尼亚大学毕业证文凭学历证书原版一模一样
原版定做(penn毕业证书)美国宾夕法尼亚大学毕业证文凭学历证书原版一模一样
 
Borys Sutkowski portfolio interior design
Borys Sutkowski portfolio interior designBorys Sutkowski portfolio interior design
Borys Sutkowski portfolio interior design
 
一比一原版(UNUK毕业证书)诺丁汉大学毕业证如何办理
一比一原版(UNUK毕业证书)诺丁汉大学毕业证如何办理一比一原版(UNUK毕业证书)诺丁汉大学毕业证如何办理
一比一原版(UNUK毕业证书)诺丁汉大学毕业证如何办理
 
一比一原版(UCB毕业证书)伯明翰大学学院毕业证成绩单如何办理
一比一原版(UCB毕业证书)伯明翰大学学院毕业证成绩单如何办理一比一原版(UCB毕业证书)伯明翰大学学院毕业证成绩单如何办理
一比一原版(UCB毕业证书)伯明翰大学学院毕业证成绩单如何办理
 
RTUYUIJKLDSADAGHBDJNKSMAL,D
RTUYUIJKLDSADAGHBDJNKSMAL,DRTUYUIJKLDSADAGHBDJNKSMAL,D
RTUYUIJKLDSADAGHBDJNKSMAL,D
 
Book Formatting: Quality Control Checks for Designers
Book Formatting: Quality Control Checks for DesignersBook Formatting: Quality Control Checks for Designers
Book Formatting: Quality Control Checks for Designers
 
Design Thinking Design thinking Design thinking
Design Thinking Design thinking Design thinkingDesign Thinking Design thinking Design thinking
Design Thinking Design thinking Design thinking
 
一比一原版(Columbia毕业证)哥伦比亚大学毕业证如何办理
一比一原版(Columbia毕业证)哥伦比亚大学毕业证如何办理一比一原版(Columbia毕业证)哥伦比亚大学毕业证如何办理
一比一原版(Columbia毕业证)哥伦比亚大学毕业证如何办理
 
一比一原版(毕业证)长崎大学毕业证成绩单如何办理
一比一原版(毕业证)长崎大学毕业证成绩单如何办理一比一原版(毕业证)长崎大学毕业证成绩单如何办理
一比一原版(毕业证)长崎大学毕业证成绩单如何办理
 
Design Thinking Design thinking Design thinking
Design Thinking Design thinking Design thinkingDesign Thinking Design thinking Design thinking
Design Thinking Design thinking Design thinking
 
一比一原版(BU毕业证书)伯恩茅斯大学毕业证成绩单如何办理
一比一原版(BU毕业证书)伯恩茅斯大学毕业证成绩单如何办理一比一原版(BU毕业证书)伯恩茅斯大学毕业证成绩单如何办理
一比一原版(BU毕业证书)伯恩茅斯大学毕业证成绩单如何办理
 
一比一原版(Glasgow毕业证书)格拉斯哥大学毕业证成绩单如何办理
一比一原版(Glasgow毕业证书)格拉斯哥大学毕业证成绩单如何办理一比一原版(Glasgow毕业证书)格拉斯哥大学毕业证成绩单如何办理
一比一原版(Glasgow毕业证书)格拉斯哥大学毕业证成绩单如何办理
 
Can AI do good? at 'offtheCanvas' India HCI prelude
Can AI do good? at 'offtheCanvas' India HCI preludeCan AI do good? at 'offtheCanvas' India HCI prelude
Can AI do good? at 'offtheCanvas' India HCI prelude
 
Top Israeli Products and Brands - Plan it israel.pdf
Top Israeli Products and Brands - Plan it israel.pdfTop Israeli Products and Brands - Plan it israel.pdf
Top Israeli Products and Brands - Plan it israel.pdf
 
White wonder, Work developed by Eva Tschopp
White wonder, Work developed by Eva TschoppWhite wonder, Work developed by Eva Tschopp
White wonder, Work developed by Eva Tschopp
 
Between Filth and Fortune- Urban Cattle Foraging Realities by Devi S Nair, An...
Between Filth and Fortune- Urban Cattle Foraging Realities by Devi S Nair, An...Between Filth and Fortune- Urban Cattle Foraging Realities by Devi S Nair, An...
Between Filth and Fortune- Urban Cattle Foraging Realities by Devi S Nair, An...
 
一比一原版(Bristol毕业证书)布里斯托大学毕业证成绩单如何办理
一比一原版(Bristol毕业证书)布里斯托大学毕业证成绩单如何办理一比一原版(Bristol毕业证书)布里斯托大学毕业证成绩单如何办理
一比一原版(Bristol毕业证书)布里斯托大学毕业证成绩单如何办理
 
Common Designing Mistakes and How to avoid them
Common Designing Mistakes and How to avoid themCommon Designing Mistakes and How to avoid them
Common Designing Mistakes and How to avoid them
 
Portfolio.pdf
Portfolio.pdfPortfolio.pdf
Portfolio.pdf
 
20 slides of research movie and artists .pdf
20 slides of research movie and artists .pdf20 slides of research movie and artists .pdf
20 slides of research movie and artists .pdf
 

Behavior-Driven Development for UX Teams

  • 1. BDD for UX Bridging the design/code chasm
 with Behavior Driven Development Jonathan Abbett · @jonabbett UXPA Boston Conference · 19 May 2017
  • 2. Why are we here?
  • 3.
  • 4. Why are we here?
  • 5. We want to design useful things that are possible to build • Understanding users’ desires, needs, motivations, and contexts • Understanding business, technical, and domain opportunities, requirements, and constraints • Using this knowledge as a foundation for plans to create products whose form, content, and behavior is useful, usable, and desirable, as well as economically viable and technically feasible. —Cooper, About Face 3
  • 6. How do I know something is useful? How do I know something can be built?
  • 7.
  • 10.
  • 11. ☐ Decrease ambiguity ☐ Increase dev focus on users & goals ☐ Improve quality ☐ Guarantee UX for the long term ☐ Engage more of team in the design/dev process
  • 12.
  • 13. • user stories as requirements • user stories as the basis for acceptance testing
  • 14. As an Account Holder
 I want to withdraw cash from an ATM
 So I can get money when the bank is closed
  • 15. "I kept coming across the same confusion and misunderstandings. Programmers wanted to know where to start, what to test and what not to test…”
  • 16. "If we could develop a consistent vocabulary for analysts, testers, developers, and the business, then we would be well on the way to eliminating some of the ambiguity and miscommunication that occur when technical people talk to business people."
  • 17. FEATURE: Account Holder withdraws cash Scenario: Account has sufficient funds Scenario: Account has insufficient funds Scenario: Card has been disabled Scenario: The ATM has insufficient funds
  • 18. FEATURE: Account Holder withdraws cash Scenario: Account has sufficient funds Given the account balance is $100 And the card is valid And the machine contains enough money When the Account Holder requests $20 Then the ATM should dispense $20 And the account balance should be $80 And the card should be returned
  • 19. GIVEN describe an assumption
 create the context WHEN perform an action in the interface THEN confirm the correct outcome
  • 20. FEATURE: Account Holder withdraws cash Scenario: Account has sufficient funds Given the account balance is $100 And the card is valid And the machine contains enough money When the Account Holder requests $20 Then the ATM should dispense $20 And the account balance should be $80 And the card should be returned
  • 22.
  • 28. • Persona tells us who
 (really well, in fact) • Activities in a scenario tell us what • Context in the scenario
 (from persona goals) tells us why
  • 31.
  • 32. 1. Start with a persona & context scenario (and usually a wireframe or prototype) 2. Name your feature 3. Name your behavioral scenarios 4. When you write steps, maintain texture
  • 33. Vivian is a chronic care patient whose goal is to keep active in her family, her work, and her community while keeping her disease under control. It's easy for her to get discouraged when permanent relief from her symptoms is unlikely.
  • 34. Once Vivian was diagnosed with Type 2 diabetes, she and her endocrinologist set a goal in her care plan to get her hemoglobin A1c under 7% after 3 months. To do that, Vivian must carefully monitor her blood glucose.
  • 35. She logs into her care plan each week and marks whether her goal is on-track or off-track. Her endocrinologist gets notified and reaches out with encouragement or advice as necessary.
  • 36. Finally, Vivian can report that she's met her HbA1c target. She visits her care plan, and marks her HbA1c goal as achieved. The system notifies her care team of the achievement, and Vivian is delighted to see confetti fill the background of her screen, after so many weeks of hard work.
  • 37. What’s the goal? What’s its status? What’s our target?
  • 38. MANAGING A CARE GOAL Requirements • Set a due date on a goal • Mark a goal as on track • Mark a goal as off track • Mark a goal as achieved • Notify team members when a goal’s status changes
  • 39. Feature: MANAGING A CARE GOAL Requirements Scenarios • Set a due date on a goal • Mark a goal as on track • Mark a goal as off track • Mark a goal as achieved • Notify team members when a goal’s status changes
  • 40. GIVEN describe an assumption
 create the context WHEN perform an action in the interface THEN confirm the correct outcome
  • 41. Feature: MANAGING A CARE GOAL Scenario: Mark a goal as achieved Given Vivian is a patient with a goal in her care plan When she visits her care plan Then she sees her goal displayed within it When she chooses a goal status of 'achieved' Then she now sees her goal has a status of 'achieved' And the system notifies her care team of her success And she sees celebratory confetti, which makes her smile
  • 42. Given Vivian is a patient with a goal in her care plan Create a patient Create a care plan for the patient Create a goal within the care plan Create another care team member to be notified Log me in as the patient
  • 43. When she visits her care plan Navigate to the right screen in the interface
  • 44. Then she sees her goal displayed within it Confirm that the goal we set up in the ‘Given’ step appears on the screen before we continue
  • 45. When she chooses a goal status of 'achieved' Find the component for changing the goal’s status Select the new status of “achieved”
  • 46. Then she now sees her goal has a status of 'achieved' Now that we’ve made the change, confirm we can see that our change is reflected in the interface
  • 47. ☑ Decrease ambiguity ☑ Increase dev focus on users & goals ☐ Improve quality ☐ Guarantee UX for the long term ☐ Engage more of team in the design/dev process
  • 48. Pause Point Certainly someone has
 a question now.
  • 50.
  • 51. Python Behave pythonhosted.org/behave Java JBehave jbehave.org Ruby on Rails Cucumber Spinach cukes.info codegram.github.io/spinach JavaScript Yadda github.com/acuminous/yadda .NET Specflow specflow.org PHP Behat behat.org
  • 52. # Fill in a form field 
 fill_in 'Name', with: 'Brady Doverspike' # Find something by its CSS selector and click it 
 find('.selector').click # Check a checkbox/radio 
 check('I agree') # Click a button by its name 
 click_button('Submit') # Check if the page shows some text 
 has_text?('Order prescription') # Confirm the page doesn't show some text 
 has_no_text?('Should not see this') # Confirm the page has some link 
 has_link?('Log Out') # CAPYBARA SYNTAX
  • 53.
  • 54. ☑ Decrease ambiguity ☑ Increase dev focus on users & goals ☑ Improve quality ☑ Guarantee UX for the long term ☐ Engage more of team in the design/dev process
  • 57. • Who writes them? • Where will they be stored? • How will they be reviewed? • What to review? • What if things change?
  • 58. Who writes them? • Synthesis-by-receiver confirms understanding • Draws out ambiguities sooner • Starts transition from design to implementation • Writing gives sense of ownership • Collaboration vs. throwing over wall
  • 59. Where will they be stored? • Somewhere suited for collaboration? • Close to where context scenarios were written? • (Ultimately code base)
  • 60. How will they be reviewed? • Depends on your process. • Right point for a broad stakeholder review? • Sales, Accounts, Customer Support, etc. • One-on-one iteration? • Is your team co-located or remote?
  • 61.
  • 62. What to review? • Feature fully covers context scenario • Each scenario focuses on single activity • Givens define just enough context, not more • Whens are not so implementation-specific • Thens reflect persona’s goals & challenges • Identify “non-functional” requirements
  • 63. Feature: MANAGING A CARE GOAL Scenario: Mark a goal as achieved Given Vivian is a patient with a goal in her care plan When she visits her care plan Then she sees her goal displayed within it When she chooses a goal status of 'achieved' Then she now sees her goal has a status of 'achieved' And the system notifies her care team of her success And she sees celebratory confetti, which makes her smile
  • 64. What if things change? • You will learn as you build. • You will learn as you test. • You will learn after you release.
  • 65. Pause Point Last chance before end!
  • 66. ☑ Decrease ambiguity ☑ Increase dev focus on users & goals ☑ Improve quality ☑ Guarantee UX for the long term ☑ Engage more of team in the design/dev process
  • 67. • Natural language descriptions of functionality • Easy for non-developers to write, update • Collaborate through existing tools • BDD frameworks available in every language • Cloud services for scalable cross-browser testing • Stays in sync and validates UX over time
  • 70. Photo Credits • Grand Canyon: NNNN • Chasm: NNNN • Binary heart: https://www.neuronsnotincluded.com/products/linux-mouse-pad-for-geeks-nerds-and- scientists • Dan North: NNNN • XP process: NNNN • Automate all the things: NNNN • Alan Cooper: NNNN • “Vivian” Persona: https://www.flickr.com/photos/127713902@N07/34332189000