Balancing the Pendulum Reflecting on BDD in practice Zach Dennis, Mutually Human Software Great Lakes Ruby Bash 2010
Nov 18, 2014
Balancing the PendulumReflecting on BDD in practiceZach Dennis, Mutually Human SoftwareGreat Lakes Ruby Bash 2010
BDDImplementing an applicationby describing its behaviour from the stakeholders perspective
3 Principles1. Enough is enough2. Deliver stakeholder value3. It’s all behaviour
TrustThe glue that holds it together
7 areasof reflection
Outside-inUI/UXStakeholderStories & Acceptance CriteriaAutomationDoing it example firstSpikes
Pre Outside-in
“A man without a purpose is like a ship without a rudder.”
-- THOMAS CARLYLE
It’s easy to write code you don’t need
It’s easy to invent code you think you’ll need
It’s easy to write code that is awkward to use
Outside-in acts as the rudder, steering the boat.
Outside-in
Outside-inSTAKEHOLDER PERSPECTIVE
ACCEPTANCE CRITERIA
UI/UX
VIEWS
CONTROLLERS
MODELS
DATABASE
STORIES
FEATURES
Outside-inis value/need driven from the stakeholder perspective
Outside-inprovides a starting point
Outside-inidentifies where to go next
Outside-inhelps define done-ness
UI/UX
UI/UXThe invisible elephant(except to designers)
Developers are not designers.
Different hats entirely.
Switch if necessary, but don’t develop + design.
Usability matters
Tracking expensesA real world example
Agile + UX: ConvergenceJohn Hwang has a great talk
Stakeholders
Expect to fight for stakeholder involvement
Most stakeholdersdon’t care about BDD
52% of agile projects report challenges getting stakeholder involvement
SOURCE: DR DOBBS NOVEMBER STATE OF THE UNION SURVEY
SOURCE: SCOTT AMBLER, BUSTING THE MYTHS OF AGILE DEV.
15% of agile projects report resistance from stakeholders
SOURCE: DR DOBBS NOVEMBER STATE OF THE UNION SURVEY
SOURCE: SCOTT AMBLER, BUSTING THE MYTHS OF AGILE DEV.
32% of agile projects report challenges getting trust
SOURCE: DR DOBBS NOVEMBER STATE OF THE UNION SURVEY
SOURCE: SCOTT AMBLER, BUSTING THE MYTHS OF AGILE DEV.
Stories & Acceptance Criteria
9 out of 10 stakeholdersdon’t author stories or acceptance criteria
Stakeholdersprefer other communicationmethods
Stories & acceptance criteriaare natural to developersnot stakeholders
Having 2 folks helps to converse and record
Popping the “why” stack
SPOILER ALERT
Not every answer is a going to be a good one
Automation
Not everythinghas to be automated
Unit-level examplesYES
DeploymentsYES
Acceptance-level examplesMAYBE
Automation isn’t free.time, moneyvalue, riskcommitment, requirement
Goalsfail fast, feedbackreflect, adaptimprove, balance(iterate)
Unit-level examplesAutomateAutomateAutomate
High level scenariosAutomateExploreScript
Computers do it “... faster, better, stronger.”
They also don’t notice anything you don’t tell them to notice.
In-browser automationis still evolving
Doing it example first(er... TDD)
Example firstdrives out design,less code,better code,regression
Doing it welltakes experience,exploration,reflection,courage,willingness to change
Peoplehave varying levels of experience
Inexperiencebad examplesbrittle exampleshard to maintain
Outside-in is a way of thinkingbefore it is a hard-fast rule
Higher level examplesprovide implementation flexibility
When in doubt spikenot test
Spikes
A 15 minute spike can save you 15% or more on your next feature
Spikes aren’t BDD per-sayjust simple awesome
Spikes aren’t this complex
A spike istime-boxed,communicated,example / test free,exploratory
A spikesaves time,save money,provide learning,provides experience
Recap
Outside-inUI/UXStakeholderStories & Acceptance CriteriaAutomationDoing it example firstSpikes
Thank you