ÆGILITY

Developing Agile Organisations to Maximise Business Value

  • Training and Certification
  • Agile Coaching and Transformation
  • Articles and Posts
  • About US
    • ÆGILITY
    • Memberships and Partners
You are here: Home / Behaviour Driven Development

Behaviour Driven Development

Behaviour Driven Development (or BDD) is a powerful collaborative methodology that helps teams focus on delivering high value features sooner and more reliably. BDD builds on and extends standard agile practices such as sprint planning and backlog grooming, user stories and acceptance criteria, and makes them much more effective. 

This summary is provided courtesy of John Ferguson Smart who describes BBD as: “BDD forces you to BE AGILE, not just to ‘do’ agile.”

Teams practicing Behaviour Driven Development routinely see:

  • Fewer defects
  • Better throughput
  • Higher quality, more innovative solutions 
  • Higher quality, easier to maintain automated test suites
  • Documentation that is always up to date

How does Behaviour Driven Development work?

A typical BDD process looks something like this:

Overview of BDD

 

The BDD process

Teams practicing BDD work together to discover and understand the real business needs behind a user story or feature. They explore (or “illustrate”) the requirement by discussing examples and counter-examples of user and system behaviour with the business. This happens during a workshop often known as the “Three-Amigos” (though there can be more than three people present). The purpose of the Three Amigos workshop is not only to build up a deep shared understanding within the team, but also to uncover areas of uncertainty or incorrect assumptions that would typically only surface much later on. Teams often use techniques such as Example Mapping and Feature Mapping to facilitate the requirements discovery process.

Before development starts, team members formalise (or “formulate”) these examples into a notation that can be readily turned into automated acceptance tests. We call these tests “executable specifications”, as they are written to not only test the feature, but document the  system behaviour and business rules. Many teams use a structured language called Gherkin to express these requirements in business terms. An example of a requirement expressed in Gherkin is shown below.

Before or during the actual development, team members automate these executable specifications, wiring them to the production code and turning them into working automated tests. When requirements are expressed in Gherkin, they can be automated using tools like Cucumber or SpecFlow. But BDD is more about the general collaborative approach than about using any particular tool.

These tests are typically run as part of an automated build pipeline – when all of the automated acceptance criteria pass (validate), then the feature is ready to demonstrate, and potentially deploy.

What are the benefits of Behaviour Driven Development?

Teams that practice BDD experience a better synergy between BAs, developers and testers, leading to reduced waste and improved productivity. The deeper understanding shared across the team, and the participation of testers much earlier on in the process, leads to fewer defects and, as a result, higher throughput.

The focus on collaboration helps to avoid knowledge silos, reduces bureaucracy and making the automation of executable specifications a natural part of the development cycle. Test automation is no longer only the responsibly QA, but done both by developers and testers, often together. This in turn helps to build discipline and quality.

The automated acceptance tests provide both fast feedback about progress, and build up a set of regression tests for the whole application. Finally, these tests also act as “living documentation”, that both illustrates how the application works and describes the corresponding business rules.

 

For more information, please head over to the website of John Ferguson Smart where you will find lots more valuable information, tools and trainings on BDD.

 

This page is part of the ÆGILITY Agile Lexicon
Please advise any updates or corrections by emailing the information to lexicon@aegility.ch
Whilst every effort is made to ensure correctness of the information, ÆGILITY and Lyaeus GmbH take no responsibility for the accuracy of the information or its use

Newsletter and Updates

Sign up to get our latest news and updates on our new courses!

Your contact information will never be shared by us to anyone without your consent!

Recent Posts

  • Kanban
  • RATS and CATS: maximising value delivery
  • What is “Scrum” – The Scrum Framework
  • What are “Agile” and “DevOps”, really?
  • Certified XSCALE Product Management Coach – Prof. Dr. Andres Claudius Pfister

Tags

4 Lenses of Innovation Agile Agile Manifesto Agile Metrics Agile Organisation Agile organization Agile product management Andres Claudius Pfister Avaloq AG Ayaval AG CATS Certification Culture DevOps eXponential Agile Performance Exponential Return extropy finaplana finaplana AG Game without Thrones IAP ImpactHub Zürich - Colab Introduction to Agile Kanban Leadership as a Service Lego Philosophy Principles RATS ROI ROROI Scrum Scrum Framework Self-managing Simple Design Swiss Agile Association XAP XPM XPMC XPMP XSCALE XSCALE Alliance XSCALE Product Management ZHAW

About Us

ÆGILITY is the coaching and training arm of Lyaeus GmbH and  specializes in the application of Agile Organisational values and principles to both our own company and … Read more

  • Email
  • Facebook
  • LinkedIn
  • Twitter

Latest News

Kanban

Kanban is a strategy for optimizing the flow of stakeholder value through a process that uses a visual, work-in-progress limited, pull based system. The name comes from the … Read more

Connect With Us

Lyaeus GmbH
Bahnhofstrasse 33
8703 Erlenbach (ZH)
Switzerland

T: +41 78 600 8995

E: info[at]lyaeus.ch

Copyright © 2025 Lyaeus GmbH . Company Details . Data Security Policy · Powered by Lyæus

We use cookies on our website to give you the most relevant experience by remembering your preferences and repeat visits. By clicking “Accept”, you consent to the use of ALL the cookies. However you may visit Cookie Settings to provide a controlled consent.
Cookie settingsACCEPT
Manage consent

Privacy Overview

This website uses cookies to improve your experience while you navigate through the website. Out of these cookies, the cookies that are categorized as necessary are stored on your browser as they are essential for the working of basic functionalities of the website. We also use third-party cookies that help us analyze and understand how you use this website. These cookies will be stored in your browser only with your consent. You also have the option to opt-out of these cookies. But opting out of some of these cookies may have an effect on your browsing experience.
Necessary
Always Enabled
Necessary cookies are absolutely essential for the website to function properly. These cookies ensure basic functionalities and security features of the website, anonymously.
CookieDurationDescription
cookielawinfo-checkbox-analytics11 monthsThis cookie is set by GDPR Cookie Consent plugin. The cookie is used to store the user consent for the cookies in the category "Analytics".
cookielawinfo-checkbox-functional11 monthsThe cookie is set by GDPR cookie consent to record the user consent for the cookies in the category "Functional".
cookielawinfo-checkbox-necessary11 monthsThis cookie is set by GDPR Cookie Consent plugin. The cookies is used to store the user consent for the cookies in the category "Necessary".
cookielawinfo-checkbox-others11 monthsThis cookie is set by GDPR Cookie Consent plugin. The cookie is used to store the user consent for the cookies in the category "Other.
cookielawinfo-checkbox-performance11 monthsThis cookie is set by GDPR Cookie Consent plugin. The cookie is used to store the user consent for the cookies in the category "Performance".
viewed_cookie_policy11 monthsThe cookie is set by the GDPR Cookie Consent plugin and is used to store whether or not user has consented to the use of cookies. It does not store any personal data.
Functional
Functional cookies help to perform certain functionalities like sharing the content of the website on social media platforms, collect feedbacks, and other third-party features.
Performance
Performance cookies are used to understand and analyze the key performance indexes of the website which helps in delivering a better user experience for the visitors.
Analytics
Analytical cookies are used to understand how visitors interact with the website. These cookies help provide information on metrics the number of visitors, bounce rate, traffic source, etc.
Advertisement
Advertisement cookies are used to provide visitors with relevant ads and marketing campaigns. These cookies track visitors across websites and collect information to provide customized ads.
Others
Other uncategorized cookies are those that are being analyzed and have not been classified into a category as yet.
Save & Accept