BDD communication bridges - Expedia TED talk

Post on 29-Oct-2014

6 views 0 download

Tags:

description

 

Transcript of BDD communication bridges - Expedia TED talk

© 2008 Expedia, Inc. Confidential & proprietary. All rights reserved.

Behaviour Driven Development

Communication Issue

They are slow!..They do not know what they need!..

Communication Issue

They are slow!..They do not know what they need!..

Building the communication bridge

Building the communication bridge

Behaviour Driven Development

Focus on delivery of

prioritised, verifiable business value by providing a

common vocabulary

BDD is an evolution in the thinking behindTest Driven Development and Acceptance Test Driven Planning.

Behaviour Driven Development practices

• Establishing the goals of different stakeholders required for a vision to be implemented

• Drawing out features which will achieve those goals using feature injection

• Involving stakeholders in the implementation process through outside-in software development (driven by business value, UI->code, YAGNI)

• Using examples to describe the behaviour of the application, or of units of code

• Automating those examples to provide quick feedback and regression testing (CI)

What BDD adds to TDD

• Stories have criteria for acceptance defined by the customer and can be specified in automated way

• Test what an object does (behaviour) instead of what it is (structural details)

• Top-down design, which is essential for YAGNI – You Aren't Gonna Need It

The BDD Cycle – “Outside-In” development

as THE IDEAL BDD SCENARIO proposed

Gherkin: Feature Title and Narrative

Feature: Adding movies to the queue

Describing Features with Cucumber

Cucumber is a BDD tool that reads plain text descriptions ofapplication features with example scenarios, which can beconverted into automation. The text is written in a businessreadable domain language, known as Gherkin.

Describing Code with RSpec

RSpec is a BDD framework, which is used to writeexecutable examples of the expected behaviour of a smallbit of code in a controlled context.

Code example:

Output:

Communications in the business org

1. Translate business goals into prioritized list of features

2. Trace required behavior within the dev team, drive design by behavior, build transparency, trust and confidence

3. Clarify business value and desired software behavior, ask “5 Why”, provide feedback if application logic appears overcomplicated

Speaking the same language = building togetherAs Expedia WWI want to build such a global online marketplaceSo that +5% of new customers are delighted and retained every month

Given the investment of 22M of bricksWhen you place all the bricks properlyThen the Expedia Tower of Babel should be visible for all people across the Globe