Top Banner
Balancing the Pendulum Reflecting on BDD in practice Zach Dennis, Mutually Human Software Great Lakes Ruby Bash 2010
75

Balancing the Pendulum: Reflecting on BDD in Practice

Nov 18, 2014

Download

Technology

Zach Dennis

Here are the slides that I used for my talk on "Balancing the pendulum: Reflecting on BDD in Practice" at the Great Lakes Ruby Bash, April 17th, 2010 in Lansing, MI.

This talk was aimed at sharing my reflections and experiences on how BDD and outside-in development has been working over the past few years.
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
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