SlideShare ist ein Scribd-Unternehmen logo
1 von 44
BEHAVIOUR DRIVEN DEVELOPMENT AKA BDD
SOFTWARE THAT MATTERS
BDD
WHY ?
WHEN ?
HOW ?
WHO BRING BDD ?
He is a technology and organizational consultant who helps business leaders, managers and software teams
deliver quickly, successfully and sustainably.
Dan’s background in software delivery, Lean operations, coaching and organizational change.
DISCONNECTS IN LAUNCHING OF A PROJECT
the business being truly able to define the desired outcomes
the developer’s understanding of what needs to be built, and
the business’ understanding of the technical challenges their requirements may present.
BDD HELPS TO CONNECT THEM
the business being truly able to define the desired outcomes
the developer’s understanding of what needs to be built, and
the business’ understanding of the technical challenges their requirements
may present.
WHAT ?
 BDD is a process designed to aid the management and
the delivery of software development projects by
improving communication between engineers and
business professionals. In so doing, BDD ensures all
development projects remain focused on delivering
what the business actually needs while meeting all
requirements of the user.
KEY BENEFITS
All development work can be traced back directly to business objectives.
Software development meets user need. Satisfied users = good business.
Efficient prioritisation - business-critical features are delivered first.
All parties have a shared understanding of the project and can be involved in the communication.
A shared language ensures everyone (technical or not) has thorough visibility into the project’s progression.
Resulting software design that matches existing and supports upcoming business needs.
Improved quality code reducing costs of maintenance and minimizing project risk.
BDD APPROACHES
Practice of using examples
written in ubiquitous language
to illustrate behaviors (how users
will interact with the product).
Practice of using those examples
as the basis of automated tests.
As well as checking functionality
for the user, this ensures the
system works as defined by the
business throughout the
project lifetime.
CO-ORDINATES OF BDD
19.0760° N, 72.8777°
E
CO-ORDINATES OF BDD
Starting with a
Goal
Impact
Mapping
Value and
Complexity
Analysis
Planning In
Examples
Usage
Centred
Design
Ubiquitous
Language
3 Amigos
Development
Through
Examples
The BDD
Loops
STARTING WITH A GOAL
Every Behaviour Change
should help the Business to
achieve its goals
Projects should delivered in
sets of Capabilities aka
Working Features.
Understand exactly what you
want the software to achieve
from a business perspective.
S.M.A.R.T GOAL
Specific
Measura
ble
Attainabl
e
Relevant
Time-
bound
S.M.A.R.T GOAL
“We are going to generate more
revenue
by making more sales”
“We are planning to achieve a 15%
increase
in revenue through our online channels
in
6 months”
Not S.M.A.R.T
S.M.A.R.T
Having a SMART goal not only helps to focus the project, but allows the impact of the
to be measured.
IMPACT MAPPING
Now we have sets our goal its time for Impact
IMPACT MAPPING
 Don’t add features to applications just for sake of more features.
 Its not always a case that to achieve a goal you have to add a new feature.
 It is important to understand that not all of these features need the same level
of attention, care, or even development practice, and it can be easy to spread
the development team’s attention too thinly across an entire backlog.
IMPACT MAPPING
 Impact Mapping is a technique that helps you to outline
all the alternative ways to reach your decided goal by
analyzing users’ behavior. We assume that software
cannot achieve business goals on its own. The only way
software can get us closer to the goal is by supporting
particular human behaviors.
LEVELS OF IMPACT MAP
One or More Ways To Support or Prevent These Impacts
One or More Impacts
One or More Actors
Business Goal
LEVELS OF IMPACT MAP
Customer or Team that could help or hinder the project from achieving the
goal.
Actors
LEVELS OF IMPACT MAP
Each actor could have multiple ways to help or hinder achieving the goal, we
call
these impacts..
Impacts
LEVELS OF IMPACT MAP
What the project or delivery team can do in order to support or prevent
particular impacts from happening.
Support or Prevent Impacts
VALUE AND COMPLEXITY ANALYSIS
Value analysis helps us to quickly identify low-cost,
high-value features in the backlog.
Complexity analysis helps us to choose the right
development and collaboration approach to the
project as a whole, as well as each individual feature.
PLANNING IN EXAMPLES
Imagine we have been given a task to add an ‘include VAT and delivery cost to the total price of the
customer basket’ feature to an existing ecommerce project with following set of business rules:
VAT is 20%
Delivery cost for small
basket (less than $20)
is $3
Delivery cost for
medium basket (more
than $20) is $2
PLANNING IN EXAMPLES
Big ?
 Rules do not specify whether to add VAT before delivery cost to
the basket total or after.
 How should you handle a situation where the basket delivery cost
is exactly $20?
 What happens if there are multiple products in the basket?
PLANNING IN EXAMPLES
 Given a product is priced at $15, when I add it to
the basket, then the total basket price should be
$21
 Given a product is priced at $25, when I add it to
the basket, then the total basket price should be
$32
 Given a product is priced at $20, when I add it to
the basket, then the total basket price should be
$26
UBIQUITOUS LANGUAGE
 Almost impossible, to form a two-way communication between
groups of people that operate in different business spheres.
 They can stumble upon situations where both sides use the same
language and even words, but imply a different meaning.
UBIQUITOUS LANGUAGE
Share
UBIQUITOUS LANGUAGE
 BDD attempts to eliminate the cost of translation by reducing the size of
feedback loops and using the example-based conversation about each
feature before they are built.
 But just asking for examples is not enough, because different sides will use
different language to produce examples, eventually causing discrepancies.
 The solution for this problem is the concept the BDD community borrowed
from DDD (Domain Driven Design): ubiquitous language.
INTRODUCING THE 3 AMIGOS
One of the core ideas behind BDD is that no single person
has the full answer to the problem.
INTRODUCING THE 3 AMIGOS
3 Amigos
Business
Roles
Developer Tester
INTRODUCING THE 3 AMIGOS
Business Roles – Product Owner or Analyst
• Business value and risk evaluation domain.
• Their insight and input is extremely important if you want to
INTRODUCING THE 3 AMIGOS
Developers
• In the most part, remain in the so-called ‘solution’ space.
• Input will give you an invaluable context into how much detail the
INTRODUCING THE 3 AMIGOS
Testers
• Usually represent the ‘problem’ space.
• They see flaws happening in the system even before development
commences.
• Plays crucial role while analysing negative impact in application.
• Identifies blanks in requirements.
3 AMIGOS
 The core premise of BDD is not to replace these different
expertise, but to move them all in one room and have a
meaningful discussion about each feature before
development starts. This process is called the Three
Amigos or an Example Workshop and must be
conducted before the team or a developer commits to
deliver the feature in question.
DEVELOPMENT THROUGH EXAMPLES
Feed an example to an
automation tool (such as
Behat, Cucumber or
SpecFlow).
• Feature
Files
Will transform it into the
automated specification.
• Step
Definitions
Can then use this automated
specification to drive the
application development.
• Developm
nt
GHERKIN FORMAT & SYNTAX
 Gherkin files are plain-text and have the extension .feature
 Keywords:
 Feature • And
 Background • But
 Scenario • *
 Given • Scenario Outline
 When
 Then
FEATURE
 The feature keyword is used to group a set of tests (scenarios)
 The text on the same line as the keyword is considered the name of the
feature
 All text between the initial line and a line that starts with Scenario,
Background, or Scenario Outline is considered part of a feature’s
description.
 It is conventional to name a .feature file by taking the name of the feature,
converting to lowercase and replacing spaces with underlines
 feedback_when_entering_invalid_credit_card_details.feature
COMING UP WITH FEATURES: THINK OF YOUR USERS
 In order to identify features in your system, you can use what the
authors describe as a “feature injection template”
 In order to <meet some goal> as a <type of user> I want <a feature>
 This is good advice
 The functional requirements of a system are determined by asking the
question
 for each type of user
 what goals are they trying to achieve?
 what tasks must they perform to achieve those goals?
 how does our system support those tasks?
SCENARIOS
 Scenarios follow a pattern
 Configure the system
 Have it perform a specific action
 Verify that the new state of the system is what we expected
 We start with a context, describe an action, and check the outcome
SCENARIOS
 Gherkin provides three keywords to describe contexts, actions, and
outcomes
 Given: establish context
 When: perform action
 Then: check outcome
 Example
 Scenario: Withdraw money from account
 Given I have $100 in my account
 When I request $20
 Then $20 should be dispensed
SCENARIOS
 Additional steps to the context, action, and outcome sections using the
keywords and and but
 They allow you to specify scenarios in more detail
 Scenario: Attempt withdrawal using stolen card
 Given I have $100 in my account
 But my card is invalid
 When I request $50
 Then my card should not be returned
 And I should be told to contact the bank
 These keywords help increase the expressiveness of the scenario
SCENARIOS
 In creating scenarios, a key design goal (indeed requirement) is
that they must be stateless; as the book says
 “Each scenario must make sense and be able to be executed
independently of any other scenario”
 You can’t have the success condition of one scenario depend on
the fact that some other scenario executed before it
 Each scenario creates its particular context, executes one thing, and
tests the result
SCENARIOS
 Having stateless scenarios provides multiple benefits
 Tests are simpler and easier to understand
 You can run just a subset of your scenarios and you don’t have to
worry about your test set breaking
 Depending on your system, you might be able to run tests in parallel
reducing the amount of time it takes to execute all of your tests
SCENARIOS
 Having stateless scenarios provides multiple benefits
 Tests are simpler and easier to understand
 You can run just a subset of your scenarios and you don’t have to
worry about your test set breaking
 Depending on your system, you might be able to run tests in parallel
reducing the amount of time it takes to execute all of your tests
To Be Continued . . .

Weitere ähnliche Inhalte

Was ist angesagt?

BDD with SpecFlow and Selenium
BDD with SpecFlow and SeleniumBDD with SpecFlow and Selenium
BDD with SpecFlow and SeleniumLiraz Shay
 
Behavior Driven Development and Automation Testing Using Cucumber
Behavior Driven Development and Automation Testing Using CucumberBehavior Driven Development and Automation Testing Using Cucumber
Behavior Driven Development and Automation Testing Using CucumberKMS Technology
 
Behavior Driven Development (BDD) and Agile Testing
Behavior Driven Development (BDD) and Agile TestingBehavior Driven Development (BDD) and Agile Testing
Behavior Driven Development (BDD) and Agile Testingdversaci
 
Automation Frame works Instruction Sheet
Automation Frame works Instruction SheetAutomation Frame works Instruction Sheet
Automation Frame works Instruction SheetvodQA
 
Behavior Driven Web UI Automation with Selenium and Cucumber/SpecFlow (BDDx L...
Behavior Driven Web UI Automation with Selenium and Cucumber/SpecFlow (BDDx L...Behavior Driven Web UI Automation with Selenium and Cucumber/SpecFlow (BDDx L...
Behavior Driven Web UI Automation with Selenium and Cucumber/SpecFlow (BDDx L...Gáspár Nagy
 
Whys and Hows of Automation
Whys and Hows of AutomationWhys and Hows of Automation
Whys and Hows of AutomationvodQA
 
Selenium Design Patterns
Selenium Design PatternsSelenium Design Patterns
Selenium Design PatternsLiraz Shay
 
Intro to Service Worker API and its use cases
Intro to Service Worker API and its use casesIntro to Service Worker API and its use cases
Intro to Service Worker API and its use casessatejsahu
 
Better Page Object Handling with Loadable Component Pattern
Better Page Object Handling with Loadable Component PatternBetter Page Object Handling with Loadable Component Pattern
Better Page Object Handling with Loadable Component PatternSQALab
 
Behaviour Driven Development (BDD) - Closing the Loop on a Great Fiori UX
Behaviour Driven Development (BDD) - Closing the Loop on a Great Fiori UXBehaviour Driven Development (BDD) - Closing the Loop on a Great Fiori UX
Behaviour Driven Development (BDD) - Closing the Loop on a Great Fiori UXJohn Patterson
 
Test Automation Framework using Cucumber BDD overview (part 1)
Test Automation Framework using Cucumber BDD overview (part 1)Test Automation Framework using Cucumber BDD overview (part 1)
Test Automation Framework using Cucumber BDD overview (part 1)Mindfire Solutions
 
Brace yourself from automation death trap
Brace yourself from automation death trapBrace yourself from automation death trap
Brace yourself from automation death trapPrasad Kalgutkar
 
Jumpstarting Testing In Your Organization with Selenium, Cucumber, & WebdriverIO
Jumpstarting Testing In Your Organization with Selenium, Cucumber, & WebdriverIOJumpstarting Testing In Your Organization with Selenium, Cucumber, & WebdriverIO
Jumpstarting Testing In Your Organization with Selenium, Cucumber, & WebdriverIOJosh Cypher
 
Automated Acceptance Tests & Tool choice
Automated Acceptance Tests & Tool choiceAutomated Acceptance Tests & Tool choice
Automated Acceptance Tests & Tool choicetoddbr
 
Perils of Page-Object Pattern
Perils of Page-Object PatternPerils of Page-Object Pattern
Perils of Page-Object PatternAnand Bagmar
 
Behavior Driven Development with Cucumber
Behavior Driven Development with CucumberBehavior Driven Development with Cucumber
Behavior Driven Development with CucumberAsheesh Mehdiratta
 
Introduction to SoapUI day 1
Introduction to SoapUI day 1Introduction to SoapUI day 1
Introduction to SoapUI day 1Qualitest
 
Behavior Driven Testing - A paradigm shift
Behavior Driven Testing - A paradigm shiftBehavior Driven Testing - A paradigm shift
Behavior Driven Testing - A paradigm shiftAspire Systems
 
From Good to Great: Functional and Acceptance Testing in WordPress.
From Good to Great: Functional and Acceptance Testing in WordPress.From Good to Great: Functional and Acceptance Testing in WordPress.
From Good to Great: Functional and Acceptance Testing in WordPress.David Aguilera
 

Was ist angesagt? (20)

BDD with SpecFlow and Selenium
BDD with SpecFlow and SeleniumBDD with SpecFlow and Selenium
BDD with SpecFlow and Selenium
 
Behavior Driven Development and Automation Testing Using Cucumber
Behavior Driven Development and Automation Testing Using CucumberBehavior Driven Development and Automation Testing Using Cucumber
Behavior Driven Development and Automation Testing Using Cucumber
 
Behavior Driven Development (BDD) and Agile Testing
Behavior Driven Development (BDD) and Agile TestingBehavior Driven Development (BDD) and Agile Testing
Behavior Driven Development (BDD) and Agile Testing
 
Automation Frame works Instruction Sheet
Automation Frame works Instruction SheetAutomation Frame works Instruction Sheet
Automation Frame works Instruction Sheet
 
Behavior Driven Web UI Automation with Selenium and Cucumber/SpecFlow (BDDx L...
Behavior Driven Web UI Automation with Selenium and Cucumber/SpecFlow (BDDx L...Behavior Driven Web UI Automation with Selenium and Cucumber/SpecFlow (BDDx L...
Behavior Driven Web UI Automation with Selenium and Cucumber/SpecFlow (BDDx L...
 
Whys and Hows of Automation
Whys and Hows of AutomationWhys and Hows of Automation
Whys and Hows of Automation
 
Selenium Design Patterns
Selenium Design PatternsSelenium Design Patterns
Selenium Design Patterns
 
Intro to Service Worker API and its use cases
Intro to Service Worker API and its use casesIntro to Service Worker API and its use cases
Intro to Service Worker API and its use cases
 
Better Page Object Handling with Loadable Component Pattern
Better Page Object Handling with Loadable Component PatternBetter Page Object Handling with Loadable Component Pattern
Better Page Object Handling with Loadable Component Pattern
 
Behaviour Driven Development (BDD) - Closing the Loop on a Great Fiori UX
Behaviour Driven Development (BDD) - Closing the Loop on a Great Fiori UXBehaviour Driven Development (BDD) - Closing the Loop on a Great Fiori UX
Behaviour Driven Development (BDD) - Closing the Loop on a Great Fiori UX
 
Test Automation Framework using Cucumber BDD overview (part 1)
Test Automation Framework using Cucumber BDD overview (part 1)Test Automation Framework using Cucumber BDD overview (part 1)
Test Automation Framework using Cucumber BDD overview (part 1)
 
Brace yourself from automation death trap
Brace yourself from automation death trapBrace yourself from automation death trap
Brace yourself from automation death trap
 
Jumpstarting Testing In Your Organization with Selenium, Cucumber, & WebdriverIO
Jumpstarting Testing In Your Organization with Selenium, Cucumber, & WebdriverIOJumpstarting Testing In Your Organization with Selenium, Cucumber, & WebdriverIO
Jumpstarting Testing In Your Organization with Selenium, Cucumber, & WebdriverIO
 
Cucumber & gherkin language
Cucumber & gherkin languageCucumber & gherkin language
Cucumber & gherkin language
 
Automated Acceptance Tests & Tool choice
Automated Acceptance Tests & Tool choiceAutomated Acceptance Tests & Tool choice
Automated Acceptance Tests & Tool choice
 
Perils of Page-Object Pattern
Perils of Page-Object PatternPerils of Page-Object Pattern
Perils of Page-Object Pattern
 
Behavior Driven Development with Cucumber
Behavior Driven Development with CucumberBehavior Driven Development with Cucumber
Behavior Driven Development with Cucumber
 
Introduction to SoapUI day 1
Introduction to SoapUI day 1Introduction to SoapUI day 1
Introduction to SoapUI day 1
 
Behavior Driven Testing - A paradigm shift
Behavior Driven Testing - A paradigm shiftBehavior Driven Testing - A paradigm shift
Behavior Driven Testing - A paradigm shift
 
From Good to Great: Functional and Acceptance Testing in WordPress.
From Good to Great: Functional and Acceptance Testing in WordPress.From Good to Great: Functional and Acceptance Testing in WordPress.
From Good to Great: Functional and Acceptance Testing in WordPress.
 

Andere mochten auch

BDD - beyond: Given, When and Then
BDD - beyond: Given, When and ThenBDD - beyond: Given, When and Then
BDD - beyond: Given, When and ThenRiverGlide
 
Scrum Bangalore 13th meet up 13 june 2015 - behaviour driven development - vi...
Scrum Bangalore 13th meet up 13 june 2015 - behaviour driven development - vi...Scrum Bangalore 13th meet up 13 june 2015 - behaviour driven development - vi...
Scrum Bangalore 13th meet up 13 june 2015 - behaviour driven development - vi...Scrum Bangalore
 
Gherkin - crash course
Gherkin - crash courseGherkin - crash course
Gherkin - crash courseMichele Costa
 
A New Dojo: The Art of Story Splitting
A New Dojo: The Art of Story SplittingA New Dojo: The Art of Story Splitting
A New Dojo: The Art of Story SplittingDr. Alexander Schwartz
 
Making the Move to Behavior Driven Development
Making the Move to Behavior Driven DevelopmentMaking the Move to Behavior Driven Development
Making the Move to Behavior Driven DevelopmentQASymphony
 
Introduction to bdd
Introduction to bddIntroduction to bdd
Introduction to bddantannatna
 
Tutorial: Implementing Specification-By-Example with Gherkin
Tutorial: Implementing Specification-By-Example with GherkinTutorial: Implementing Specification-By-Example with Gherkin
Tutorial: Implementing Specification-By-Example with GherkinChristian Hassa
 
Specification by example and agile acceptance testing
Specification by example and agile acceptance testingSpecification by example and agile acceptance testing
Specification by example and agile acceptance testinggojkoadzic
 
Using CI for continuous delivery Part 1
Using CI for continuous delivery Part 1Using CI for continuous delivery Part 1
Using CI for continuous delivery Part 1Vishal Biyani
 
Specification-By-Example with Gherkin
Specification-By-Example with GherkinSpecification-By-Example with Gherkin
Specification-By-Example with GherkinChristian Hassa
 
Introduction to BDD with Cucumber for Java
Introduction to BDD with Cucumber for JavaIntroduction to BDD with Cucumber for Java
Introduction to BDD with Cucumber for JavaSeb Rose
 

Andere mochten auch (12)

BDD - beyond: Given, When and Then
BDD - beyond: Given, When and ThenBDD - beyond: Given, When and Then
BDD - beyond: Given, When and Then
 
Scrum Bangalore 13th meet up 13 june 2015 - behaviour driven development - vi...
Scrum Bangalore 13th meet up 13 june 2015 - behaviour driven development - vi...Scrum Bangalore 13th meet up 13 june 2015 - behaviour driven development - vi...
Scrum Bangalore 13th meet up 13 june 2015 - behaviour driven development - vi...
 
Phpunit testing
Phpunit testingPhpunit testing
Phpunit testing
 
Gherkin - crash course
Gherkin - crash courseGherkin - crash course
Gherkin - crash course
 
A New Dojo: The Art of Story Splitting
A New Dojo: The Art of Story SplittingA New Dojo: The Art of Story Splitting
A New Dojo: The Art of Story Splitting
 
Making the Move to Behavior Driven Development
Making the Move to Behavior Driven DevelopmentMaking the Move to Behavior Driven Development
Making the Move to Behavior Driven Development
 
Introduction to bdd
Introduction to bddIntroduction to bdd
Introduction to bdd
 
Tutorial: Implementing Specification-By-Example with Gherkin
Tutorial: Implementing Specification-By-Example with GherkinTutorial: Implementing Specification-By-Example with Gherkin
Tutorial: Implementing Specification-By-Example with Gherkin
 
Specification by example and agile acceptance testing
Specification by example and agile acceptance testingSpecification by example and agile acceptance testing
Specification by example and agile acceptance testing
 
Using CI for continuous delivery Part 1
Using CI for continuous delivery Part 1Using CI for continuous delivery Part 1
Using CI for continuous delivery Part 1
 
Specification-By-Example with Gherkin
Specification-By-Example with GherkinSpecification-By-Example with Gherkin
Specification-By-Example with Gherkin
 
Introduction to BDD with Cucumber for Java
Introduction to BDD with Cucumber for JavaIntroduction to BDD with Cucumber for Java
Introduction to BDD with Cucumber for Java
 

Ähnlich wie BDD Basics for Better Business-Dev Communication

Product management class rookie to pro
Product management class rookie to proProduct management class rookie to pro
Product management class rookie to proBim Akinfenwa
 
Expo qa from user stories to automated acceptance tests with bdd
Expo qa   from user stories to automated acceptance tests with bddExpo qa   from user stories to automated acceptance tests with bdd
Expo qa from user stories to automated acceptance tests with bddEduardo Riol
 
Webinar-From user stories to automated acceptance tests with BDD-Eduardo Riol
Webinar-From user stories to automated acceptance tests with BDD-Eduardo RiolWebinar-From user stories to automated acceptance tests with BDD-Eduardo Riol
Webinar-From user stories to automated acceptance tests with BDD-Eduardo RiolatSistemas
 
Software product development tips to develop a quality software in 2021
Software product development  tips to develop a quality software in 2021Software product development  tips to develop a quality software in 2021
Software product development tips to develop a quality software in 2021SnehaDas60
 
Domain Driven Design Introduction
Domain Driven Design IntroductionDomain Driven Design Introduction
Domain Driven Design Introductionwojtek_s
 
Define and Manage Requirements with IBM Rational Requirements Composer
Define and Manage Requirements with IBM Rational Requirements ComposerDefine and Manage Requirements with IBM Rational Requirements Composer
Define and Manage Requirements with IBM Rational Requirements ComposerAlan Kan
 
Software design.edited (1)
Software design.edited (1)Software design.edited (1)
Software design.edited (1)FarjanaAhmed3
 
Benefits of Agile Software Development for Senior Management
Benefits of Agile Software Development for Senior ManagementBenefits of Agile Software Development for Senior Management
Benefits of Agile Software Development for Senior ManagementDavid Updike
 
Scaling Software Delivery.pdf
Scaling Software Delivery.pdfScaling Software Delivery.pdf
Scaling Software Delivery.pdfTiffany Jachja
 
Software engineering fundamentals
Software engineering fundamentalsSoftware engineering fundamentals
Software engineering fundamentalsJigyasaAgrawal7
 
Using feature teams to deliver high business value
Using feature teams to deliver high business valueUsing feature teams to deliver high business value
Using feature teams to deliver high business valueThoughtworks
 
Secrets of going codeless - How to build enterprise apps without coding
Secrets of going codeless - How to build enterprise apps without codingSecrets of going codeless - How to build enterprise apps without coding
Secrets of going codeless - How to build enterprise apps without codingNewton Day Uploads
 
Software engineering
Software engineeringSoftware engineering
Software engineeringsweetysweety8
 
How Custom is your Org? CEER at Dreamforce 2019
How Custom is your Org?  CEER at Dreamforce 2019How Custom is your Org?  CEER at Dreamforce 2019
How Custom is your Org? CEER at Dreamforce 2019Steven Herod
 
Behavior Driven Development—A Guide to Agile Practices by Josh Eastman
Behavior Driven Development—A Guide to Agile Practices by Josh EastmanBehavior Driven Development—A Guide to Agile Practices by Josh Eastman
Behavior Driven Development—A Guide to Agile Practices by Josh EastmanQA or the Highway
 
How much does it cost to build an app
How much does it cost to build an appHow much does it cost to build an app
How much does it cost to build an appCiara Hautau
 

Ähnlich wie BDD Basics for Better Business-Dev Communication (20)

Product management class rookie to pro
Product management class rookie to proProduct management class rookie to pro
Product management class rookie to pro
 
Expo qa from user stories to automated acceptance tests with bdd
Expo qa   from user stories to automated acceptance tests with bddExpo qa   from user stories to automated acceptance tests with bdd
Expo qa from user stories to automated acceptance tests with bdd
 
Webinar-From user stories to automated acceptance tests with BDD-Eduardo Riol
Webinar-From user stories to automated acceptance tests with BDD-Eduardo RiolWebinar-From user stories to automated acceptance tests with BDD-Eduardo Riol
Webinar-From user stories to automated acceptance tests with BDD-Eduardo Riol
 
Software product development tips to develop a quality software in 2021
Software product development  tips to develop a quality software in 2021Software product development  tips to develop a quality software in 2021
Software product development tips to develop a quality software in 2021
 
Domain Driven Design Introduction
Domain Driven Design IntroductionDomain Driven Design Introduction
Domain Driven Design Introduction
 
What is jad_session
What is jad_sessionWhat is jad_session
What is jad_session
 
Define and Manage Requirements with IBM Rational Requirements Composer
Define and Manage Requirements with IBM Rational Requirements ComposerDefine and Manage Requirements with IBM Rational Requirements Composer
Define and Manage Requirements with IBM Rational Requirements Composer
 
Software design.edited (1)
Software design.edited (1)Software design.edited (1)
Software design.edited (1)
 
SE-Lecture-4.pptx
SE-Lecture-4.pptxSE-Lecture-4.pptx
SE-Lecture-4.pptx
 
Benefits of Agile Software Development for Senior Management
Benefits of Agile Software Development for Senior ManagementBenefits of Agile Software Development for Senior Management
Benefits of Agile Software Development for Senior Management
 
Scaling Software Delivery.pdf
Scaling Software Delivery.pdfScaling Software Delivery.pdf
Scaling Software Delivery.pdf
 
Software engineering fundamentals
Software engineering fundamentalsSoftware engineering fundamentals
Software engineering fundamentals
 
Using feature teams to deliver high business value
Using feature teams to deliver high business valueUsing feature teams to deliver high business value
Using feature teams to deliver high business value
 
Secrets of going codeless - How to build enterprise apps without coding
Secrets of going codeless - How to build enterprise apps without codingSecrets of going codeless - How to build enterprise apps without coding
Secrets of going codeless - How to build enterprise apps without coding
 
Software engineering
Software engineeringSoftware engineering
Software engineering
 
Scrum it up!
Scrum it up!Scrum it up!
Scrum it up!
 
Designingapplswithnet
DesigningapplswithnetDesigningapplswithnet
Designingapplswithnet
 
How Custom is your Org? CEER at Dreamforce 2019
How Custom is your Org?  CEER at Dreamforce 2019How Custom is your Org?  CEER at Dreamforce 2019
How Custom is your Org? CEER at Dreamforce 2019
 
Behavior Driven Development—A Guide to Agile Practices by Josh Eastman
Behavior Driven Development—A Guide to Agile Practices by Josh EastmanBehavior Driven Development—A Guide to Agile Practices by Josh Eastman
Behavior Driven Development—A Guide to Agile Practices by Josh Eastman
 
How much does it cost to build an app
How much does it cost to build an appHow much does it cost to build an app
How much does it cost to build an app
 

Kürzlich hochgeladen

Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhisoniya singh
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Google AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGGoogle AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGSujit Pal
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...gurkirankumar98700
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxOnBoard
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 

Kürzlich hochgeladen (20)

Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Google AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGGoogle AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAG
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 

BDD Basics for Better Business-Dev Communication

  • 1. BEHAVIOUR DRIVEN DEVELOPMENT AKA BDD SOFTWARE THAT MATTERS
  • 3. WHO BRING BDD ? He is a technology and organizational consultant who helps business leaders, managers and software teams deliver quickly, successfully and sustainably. Dan’s background in software delivery, Lean operations, coaching and organizational change.
  • 4. DISCONNECTS IN LAUNCHING OF A PROJECT the business being truly able to define the desired outcomes the developer’s understanding of what needs to be built, and the business’ understanding of the technical challenges their requirements may present.
  • 5. BDD HELPS TO CONNECT THEM the business being truly able to define the desired outcomes the developer’s understanding of what needs to be built, and the business’ understanding of the technical challenges their requirements may present.
  • 6. WHAT ?  BDD is a process designed to aid the management and the delivery of software development projects by improving communication between engineers and business professionals. In so doing, BDD ensures all development projects remain focused on delivering what the business actually needs while meeting all requirements of the user.
  • 7. KEY BENEFITS All development work can be traced back directly to business objectives. Software development meets user need. Satisfied users = good business. Efficient prioritisation - business-critical features are delivered first. All parties have a shared understanding of the project and can be involved in the communication. A shared language ensures everyone (technical or not) has thorough visibility into the project’s progression. Resulting software design that matches existing and supports upcoming business needs. Improved quality code reducing costs of maintenance and minimizing project risk.
  • 8. BDD APPROACHES Practice of using examples written in ubiquitous language to illustrate behaviors (how users will interact with the product). Practice of using those examples as the basis of automated tests. As well as checking functionality for the user, this ensures the system works as defined by the business throughout the project lifetime.
  • 10. CO-ORDINATES OF BDD Starting with a Goal Impact Mapping Value and Complexity Analysis Planning In Examples Usage Centred Design Ubiquitous Language 3 Amigos Development Through Examples The BDD Loops
  • 11. STARTING WITH A GOAL Every Behaviour Change should help the Business to achieve its goals Projects should delivered in sets of Capabilities aka Working Features. Understand exactly what you want the software to achieve from a business perspective.
  • 13. S.M.A.R.T GOAL “We are going to generate more revenue by making more sales” “We are planning to achieve a 15% increase in revenue through our online channels in 6 months” Not S.M.A.R.T S.M.A.R.T Having a SMART goal not only helps to focus the project, but allows the impact of the to be measured.
  • 14. IMPACT MAPPING Now we have sets our goal its time for Impact
  • 15. IMPACT MAPPING  Don’t add features to applications just for sake of more features.  Its not always a case that to achieve a goal you have to add a new feature.  It is important to understand that not all of these features need the same level of attention, care, or even development practice, and it can be easy to spread the development team’s attention too thinly across an entire backlog.
  • 16. IMPACT MAPPING  Impact Mapping is a technique that helps you to outline all the alternative ways to reach your decided goal by analyzing users’ behavior. We assume that software cannot achieve business goals on its own. The only way software can get us closer to the goal is by supporting particular human behaviors.
  • 17. LEVELS OF IMPACT MAP One or More Ways To Support or Prevent These Impacts One or More Impacts One or More Actors Business Goal
  • 18. LEVELS OF IMPACT MAP Customer or Team that could help or hinder the project from achieving the goal. Actors
  • 19. LEVELS OF IMPACT MAP Each actor could have multiple ways to help or hinder achieving the goal, we call these impacts.. Impacts
  • 20. LEVELS OF IMPACT MAP What the project or delivery team can do in order to support or prevent particular impacts from happening. Support or Prevent Impacts
  • 21. VALUE AND COMPLEXITY ANALYSIS Value analysis helps us to quickly identify low-cost, high-value features in the backlog. Complexity analysis helps us to choose the right development and collaboration approach to the project as a whole, as well as each individual feature.
  • 22. PLANNING IN EXAMPLES Imagine we have been given a task to add an ‘include VAT and delivery cost to the total price of the customer basket’ feature to an existing ecommerce project with following set of business rules: VAT is 20% Delivery cost for small basket (less than $20) is $3 Delivery cost for medium basket (more than $20) is $2
  • 23. PLANNING IN EXAMPLES Big ?  Rules do not specify whether to add VAT before delivery cost to the basket total or after.  How should you handle a situation where the basket delivery cost is exactly $20?  What happens if there are multiple products in the basket?
  • 24. PLANNING IN EXAMPLES  Given a product is priced at $15, when I add it to the basket, then the total basket price should be $21  Given a product is priced at $25, when I add it to the basket, then the total basket price should be $32  Given a product is priced at $20, when I add it to the basket, then the total basket price should be $26
  • 25. UBIQUITOUS LANGUAGE  Almost impossible, to form a two-way communication between groups of people that operate in different business spheres.  They can stumble upon situations where both sides use the same language and even words, but imply a different meaning.
  • 27. UBIQUITOUS LANGUAGE  BDD attempts to eliminate the cost of translation by reducing the size of feedback loops and using the example-based conversation about each feature before they are built.  But just asking for examples is not enough, because different sides will use different language to produce examples, eventually causing discrepancies.  The solution for this problem is the concept the BDD community borrowed from DDD (Domain Driven Design): ubiquitous language.
  • 28. INTRODUCING THE 3 AMIGOS One of the core ideas behind BDD is that no single person has the full answer to the problem.
  • 29. INTRODUCING THE 3 AMIGOS 3 Amigos Business Roles Developer Tester
  • 30. INTRODUCING THE 3 AMIGOS Business Roles – Product Owner or Analyst • Business value and risk evaluation domain. • Their insight and input is extremely important if you want to
  • 31. INTRODUCING THE 3 AMIGOS Developers • In the most part, remain in the so-called ‘solution’ space. • Input will give you an invaluable context into how much detail the
  • 32. INTRODUCING THE 3 AMIGOS Testers • Usually represent the ‘problem’ space. • They see flaws happening in the system even before development commences. • Plays crucial role while analysing negative impact in application. • Identifies blanks in requirements.
  • 33. 3 AMIGOS  The core premise of BDD is not to replace these different expertise, but to move them all in one room and have a meaningful discussion about each feature before development starts. This process is called the Three Amigos or an Example Workshop and must be conducted before the team or a developer commits to deliver the feature in question.
  • 34. DEVELOPMENT THROUGH EXAMPLES Feed an example to an automation tool (such as Behat, Cucumber or SpecFlow). • Feature Files Will transform it into the automated specification. • Step Definitions Can then use this automated specification to drive the application development. • Developm nt
  • 35. GHERKIN FORMAT & SYNTAX  Gherkin files are plain-text and have the extension .feature  Keywords:  Feature • And  Background • But  Scenario • *  Given • Scenario Outline  When  Then
  • 36. FEATURE  The feature keyword is used to group a set of tests (scenarios)  The text on the same line as the keyword is considered the name of the feature  All text between the initial line and a line that starts with Scenario, Background, or Scenario Outline is considered part of a feature’s description.  It is conventional to name a .feature file by taking the name of the feature, converting to lowercase and replacing spaces with underlines  feedback_when_entering_invalid_credit_card_details.feature
  • 37. COMING UP WITH FEATURES: THINK OF YOUR USERS  In order to identify features in your system, you can use what the authors describe as a “feature injection template”  In order to <meet some goal> as a <type of user> I want <a feature>  This is good advice  The functional requirements of a system are determined by asking the question  for each type of user  what goals are they trying to achieve?  what tasks must they perform to achieve those goals?  how does our system support those tasks?
  • 38. SCENARIOS  Scenarios follow a pattern  Configure the system  Have it perform a specific action  Verify that the new state of the system is what we expected  We start with a context, describe an action, and check the outcome
  • 39. SCENARIOS  Gherkin provides three keywords to describe contexts, actions, and outcomes  Given: establish context  When: perform action  Then: check outcome  Example  Scenario: Withdraw money from account  Given I have $100 in my account  When I request $20  Then $20 should be dispensed
  • 40. SCENARIOS  Additional steps to the context, action, and outcome sections using the keywords and and but  They allow you to specify scenarios in more detail  Scenario: Attempt withdrawal using stolen card  Given I have $100 in my account  But my card is invalid  When I request $50  Then my card should not be returned  And I should be told to contact the bank  These keywords help increase the expressiveness of the scenario
  • 41. SCENARIOS  In creating scenarios, a key design goal (indeed requirement) is that they must be stateless; as the book says  “Each scenario must make sense and be able to be executed independently of any other scenario”  You can’t have the success condition of one scenario depend on the fact that some other scenario executed before it  Each scenario creates its particular context, executes one thing, and tests the result
  • 42. SCENARIOS  Having stateless scenarios provides multiple benefits  Tests are simpler and easier to understand  You can run just a subset of your scenarios and you don’t have to worry about your test set breaking  Depending on your system, you might be able to run tests in parallel reducing the amount of time it takes to execute all of your tests
  • 43. SCENARIOS  Having stateless scenarios provides multiple benefits  Tests are simpler and easier to understand  You can run just a subset of your scenarios and you don’t have to worry about your test set breaking  Depending on your system, you might be able to run tests in parallel reducing the amount of time it takes to execute all of your tests