BDD communication bridges - Expedia TED talk
-
Upload
aliaksandr-ikhelis -
Category
Technology
-
view
6 -
download
0
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