YOU ARE DOWNLOADING DOCUMENT

Please tick the box to continue:

Transcript
Page 1: Balancing the Pendulum: Reflecting on BDD in Practice

Balancing the PendulumReflecting on BDD in practiceZach Dennis, Mutually Human SoftwareGreat Lakes Ruby Bash 2010

Page 2: Balancing the Pendulum: Reflecting on BDD in Practice

BDDImplementing an applicationby describing its behaviour from the stakeholders perspective

Page 3: Balancing the Pendulum: Reflecting on BDD in Practice

3 Principles1. Enough is enough2. Deliver stakeholder value3. It’s all behaviour

Page 4: Balancing the Pendulum: Reflecting on BDD in Practice

TrustThe glue that holds it together

Page 5: Balancing the Pendulum: Reflecting on BDD in Practice

7 areasof reflection

Page 6: Balancing the Pendulum: Reflecting on BDD in Practice

Outside-inUI/UXStakeholderStories & Acceptance CriteriaAutomationDoing it example firstSpikes

Page 7: Balancing the Pendulum: Reflecting on BDD in Practice

Pre Outside-in

Page 8: Balancing the Pendulum: Reflecting on BDD in Practice

“A man without a purpose is like a ship without a rudder.”

-- THOMAS CARLYLE

Page 9: Balancing the Pendulum: Reflecting on BDD in Practice
Page 10: Balancing the Pendulum: Reflecting on BDD in Practice

It’s easy to write code you don’t need

Page 11: Balancing the Pendulum: Reflecting on BDD in Practice

It’s easy to invent code you think you’ll need

Page 12: Balancing the Pendulum: Reflecting on BDD in Practice

It’s easy to write code that is awkward to use

Page 13: Balancing the Pendulum: Reflecting on BDD in Practice

Outside-in acts as the rudder, steering the boat.

Page 14: Balancing the Pendulum: Reflecting on BDD in Practice

Outside-in

Page 15: Balancing the Pendulum: Reflecting on BDD in Practice
Page 16: Balancing the Pendulum: Reflecting on BDD in Practice

Outside-inSTAKEHOLDER PERSPECTIVE

ACCEPTANCE CRITERIA

UI/UX

VIEWS

CONTROLLERS

MODELS

DATABASE

STORIES

FEATURES

Page 17: Balancing the Pendulum: Reflecting on BDD in Practice

Outside-inis value/need driven from the stakeholder perspective

Page 18: Balancing the Pendulum: Reflecting on BDD in Practice

Outside-inprovides a starting point

Page 19: Balancing the Pendulum: Reflecting on BDD in Practice

Outside-inidentifies where to go next

Page 20: Balancing the Pendulum: Reflecting on BDD in Practice

Outside-inhelps define done-ness

Page 21: Balancing the Pendulum: Reflecting on BDD in Practice

UI/UX

Page 22: Balancing the Pendulum: Reflecting on BDD in Practice

UI/UXThe invisible elephant(except to designers)

Page 23: Balancing the Pendulum: Reflecting on BDD in Practice

Developers are not designers.

Page 24: Balancing the Pendulum: Reflecting on BDD in Practice

Different hats entirely.

Page 25: Balancing the Pendulum: Reflecting on BDD in Practice

Switch if necessary, but don’t develop + design.

Page 26: Balancing the Pendulum: Reflecting on BDD in Practice

Usability matters

Page 27: Balancing the Pendulum: Reflecting on BDD in Practice

Tracking expensesA real world example

Page 28: Balancing the Pendulum: Reflecting on BDD in Practice
Page 29: Balancing the Pendulum: Reflecting on BDD in Practice
Page 30: Balancing the Pendulum: Reflecting on BDD in Practice
Page 31: Balancing the Pendulum: Reflecting on BDD in Practice

Agile + UX: ConvergenceJohn Hwang has a great talk

Page 32: Balancing the Pendulum: Reflecting on BDD in Practice

Stakeholders

Page 33: Balancing the Pendulum: Reflecting on BDD in Practice

Expect to fight for stakeholder involvement

Page 34: Balancing the Pendulum: Reflecting on BDD in Practice

Most stakeholdersdon’t care about BDD

Page 35: Balancing the Pendulum: Reflecting on BDD in Practice

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.

Page 36: Balancing the Pendulum: Reflecting on BDD in Practice

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.

Page 37: Balancing the Pendulum: Reflecting on BDD in Practice

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.

Page 38: Balancing the Pendulum: Reflecting on BDD in Practice

Stories & Acceptance Criteria

Page 39: Balancing the Pendulum: Reflecting on BDD in Practice

9 out of 10 stakeholdersdon’t author stories or acceptance criteria

Page 40: Balancing the Pendulum: Reflecting on BDD in Practice

Stakeholdersprefer other communicationmethods

Page 41: Balancing the Pendulum: Reflecting on BDD in Practice

Stories & acceptance criteriaare natural to developersnot stakeholders

Page 42: Balancing the Pendulum: Reflecting on BDD in Practice

Having 2 folks helps to converse and record

Page 43: Balancing the Pendulum: Reflecting on BDD in Practice

Popping the “why” stack

Page 44: Balancing the Pendulum: Reflecting on BDD in Practice

SPOILER ALERT

Page 45: Balancing the Pendulum: Reflecting on BDD in Practice

Not every answer is a going to be a good one

Page 46: Balancing the Pendulum: Reflecting on BDD in Practice

Automation

Page 47: Balancing the Pendulum: Reflecting on BDD in Practice

Not everythinghas to be automated

Page 48: Balancing the Pendulum: Reflecting on BDD in Practice

Unit-level examplesYES

Page 49: Balancing the Pendulum: Reflecting on BDD in Practice

DeploymentsYES

Page 50: Balancing the Pendulum: Reflecting on BDD in Practice

Acceptance-level examplesMAYBE

Page 51: Balancing the Pendulum: Reflecting on BDD in Practice

Automation isn’t free.time, moneyvalue, riskcommitment, requirement

Page 52: Balancing the Pendulum: Reflecting on BDD in Practice

Goalsfail fast, feedbackreflect, adaptimprove, balance(iterate)

Page 53: Balancing the Pendulum: Reflecting on BDD in Practice

Unit-level examplesAutomateAutomateAutomate

Page 54: Balancing the Pendulum: Reflecting on BDD in Practice

High level scenariosAutomateExploreScript

Page 55: Balancing the Pendulum: Reflecting on BDD in Practice

Computers do it “... faster, better, stronger.”

Page 56: Balancing the Pendulum: Reflecting on BDD in Practice

They also don’t notice anything you don’t tell them to notice.

Page 57: Balancing the Pendulum: Reflecting on BDD in Practice

In-browser automationis still evolving

Page 58: Balancing the Pendulum: Reflecting on BDD in Practice

Doing it example first(er... TDD)

Page 59: Balancing the Pendulum: Reflecting on BDD in Practice

Example firstdrives out design,less code,better code,regression

Page 60: Balancing the Pendulum: Reflecting on BDD in Practice

Doing it welltakes experience,exploration,reflection,courage,willingness to change

Page 61: Balancing the Pendulum: Reflecting on BDD in Practice

Peoplehave varying levels of experience

Page 62: Balancing the Pendulum: Reflecting on BDD in Practice

Inexperiencebad examplesbrittle exampleshard to maintain

Page 63: Balancing the Pendulum: Reflecting on BDD in Practice

Outside-in is a way of thinkingbefore it is a hard-fast rule

Page 64: Balancing the Pendulum: Reflecting on BDD in Practice

Higher level examplesprovide implementation flexibility

Page 65: Balancing the Pendulum: Reflecting on BDD in Practice

When in doubt spikenot test

Page 66: Balancing the Pendulum: Reflecting on BDD in Practice

Spikes

Page 67: Balancing the Pendulum: Reflecting on BDD in Practice

A 15 minute spike can save you 15% or more on your next feature

Page 68: Balancing the Pendulum: Reflecting on BDD in Practice

Spikes aren’t BDD per-sayjust simple awesome

Page 69: Balancing the Pendulum: Reflecting on BDD in Practice

Spikes aren’t this complex

Page 70: Balancing the Pendulum: Reflecting on BDD in Practice

A spike istime-boxed,communicated,example / test free,exploratory

Page 71: Balancing the Pendulum: Reflecting on BDD in Practice

A spikesaves time,save money,provide learning,provides experience

Page 72: Balancing the Pendulum: Reflecting on BDD in Practice

Recap

Page 73: Balancing the Pendulum: Reflecting on BDD in Practice

Outside-inUI/UXStakeholderStories & Acceptance CriteriaAutomationDoing it example firstSpikes

Page 74: Balancing the Pendulum: Reflecting on BDD in Practice

Thank you

Page 75: Balancing the Pendulum: Reflecting on BDD in Practice