---
title: Is Behavior Driven Development Right For You and Your Team?
description: An overview of the pros and cons of behavior driven development from a software engineer's perspective.
image: https://blog.avenuecode.com/hubfs/kevin-364843-1.jpg
---

[AvenueCode.com](https://avenuecode.com) [News](https://avenuecode.com/news) [Contact](https://avenuecode.com/contact)

[![Avenue Code Snippets Logo](https://blog.avenuecode.com/hubfs/Avenue%20Code%20New%20Logos%20-%202023/AC-Snippets---Black.png)](https://blog.avenuecode.com/?hsLang=en-us) *menu*

- Technology
  
  [Cloud](https://blog.avenuecode.com/blog/topic/cloud?hsLang=en-us) [Delivery Infrastructure](https://blog.avenuecode.com/blog/topic/delivery-infrastructure?hsLang=en-us) [Web Experience](https://blog.avenuecode.com/blog/topic/web-experience?hsLang=en-us) [Agile Mindset](https://blog.avenuecode.com/blog/topic/agile-mindset?hsLang=en-us) [Quality First](https://blog.avenuecode.com/blog/topic/quality-first?hsLang=en-us)
  
  [Design](https://blog.avenuecode.com/blog/topic/design?hsLang=en-us) [Solution Architecture](https://blog.avenuecode.com/blog/topic/solution-architecture?hsLang=en-us) [Data & ML](https://blog.avenuecode.com/blog/topic/data-and-machine-learning?hsLang=en-us) [Mobile Experience](https://blog.avenuecode.com/blog/topic/mobile-experience?hsLang=en-us)
- [Whitepapers](https://blog.avenuecode.com/blog/topic/whitepapers?hsLang=en-us)
- [Spotlight](https://blog.avenuecode.com/blog/topic/spotlight?hsLang=en-us)
- [Extraordinary Women in Tech](https://blog.avenuecode.com/blog/topic/extraordinary-women-in-tech?hsLang=en-us)
- [Avenue Code Culture](https://blog.avenuecode.com/blog/topic/avenue-code-culture?hsLang=en-us)

- [Cloud](https://blog.avenuecode.com/blog/topic/cloud?hsLang=en-us)
- [Design](https://blog.avenuecode.com/blog/topic/design?hsLang=en-us)
- [Delivery Infrastructure](https://blog.avenuecode.com/blog/topic/delivery-infrastructure?hsLang=en-us)
- [Solution Architecture](https://blog.avenuecode.com/blog/topic/solution-architecture?hsLang=en-us)
- [Web Experience](https://blog.avenuecode.com/blog/topic/web-experience?hsLang=en-us)
- [Data & ML](https://blog.avenuecode.com/blog/topic/data-and-machine-learning?hsLang=en-us)
- [Agile Mindset](https://blog.avenuecode.com/blog/topic/agile-mindset?hsLang=en-us)
- [Mobile Experience](https://blog.avenuecode.com/blog/topic/mobile-experience?hsLang=en-us)
- [Quality First](https://blog.avenuecode.com/blog/topic/quality-first?hsLang=en-us)
- [Whitepapers](https://blog.avenuecode.com/blog/topic/whitepapers?hsLang=en-us)
- [Spotlight](https://blog.avenuecode.com/blog/topic/spotlight?hsLang=en-us)
- [Extraordinary Women in Tech](https://blog.avenuecode.com/blog/topic/extraordinary-women-in-tech?hsLang=en-us)
- [Avenue Code Culture](https://blog.avenuecode.com/blog/topic/avenue-code-culture?hsLang=en-us)

# [Is Behavior Driven Development Right For You and Your Team?](https://blog.avenuecode.com/a-software-engineers-thoughts-on-behavior-driven-development)

- [Tweet](https://twitter.com/share)

*perm\_identity* [Lucas Schmoeller](https://blog.avenuecode.com/a-software-engineers-thoughts-on-behavior-driven-development/author/lucas-schmoeller?hsLang=en-us)

*schedule* 10/31/17 5:00 PM

Behavior Driven Development, also known as BDD, is a software development process that can be utilized to help your team deliver value and build more reliable software. As you may have guessed, BDD incorporates various aspects from Agile and lean practices, and more importantly, [TDD](https://technologyconversations.com/2013/12/20/test-driven-development-tdd-example-walkthrough/) and [DDD](https://en.wikipedia.org/wiki/Domain-driven_design).

Just like in TDD, BDD uses tests to help specify, design, and verify application code, therefore reducing the the defect count and improving code maintainability. But what makes BDD different from TDD?

BDD differs from a simple unit test because its tests focus on the actual behavior of the system based on predefined scenarios, making the tests easier to understand and more meaningful. This results in the production of higher quality code.

So, why should you start implementing BDD? Here's a quick list of reasons why:

1. Improves team communication  
   Among the many practices of BDD, communication can be seen as the key that binds it all together. It allows business analysts to elaborate and refine requirements together with QAs and Developers, resulting in more efficiency.
2. Creates structured scenarios  
   As a result of the communication between the BAs, developers, and QAs, a structured scenario is created and used as a guide for developers to create code, and for QAs to create and automate tests. [Gherkin](http://docs.behat.org/en/v2.5/guides/1.gherkin.html) is the formula typically used for this.
3. Tests automation - Executable Specifications  
   Executable Specifications are automated tests that verify how the application delivers a specific business requirement. These tests produce reports that can be understood by everyone involved in the project, as well as serve as validators, documentation, and tools for communication.
4. Focuses on features that deliver business value  
   Teams practicing BDD will engage with stakeholders to try and understand the core business goals, this way the features delivered will be those that aggregate more value for the end-user.
5. Creates living documentation  
   Reports produced by Executable Specifications are a form of product documentation and require little to no maintenance. They're written using familiar vocabulary as well as provide insight into the current application status and project progression.
6. Results in faster releases  
   Testers will no longer need to execute long, manual tests and will have more free time to create automated acceptance tests, thus increasing the velocity of the delivery.
7. Allows easier and safer changes  
   The living documentation clarifies what the application does for the end-user so that they're able to implement improvements and changes more easily. The automated tests and unit tests also decrease the risk of regressions caused by changes in the application.
8. Results in reduced costs and waste  
   Since BDD focuses on delivering value and avoiding waste, less code and documentation are required, thus reducing the overall cost.

![Behavior_driven_development_test_driven_behaviour_agile.jpg](https://blog.avenuecode.com/hs-fs/hubfs/Behavior_driven_development_test_driven_behaviour_agile.jpg?width=640&name=Behavior_driven_development_test_driven_behaviour_agile.jpg)

 So far, I've explained why you should use BDD, but what about why you shouldn't? There are certain cases where using BDD can be counterproductive. Here are some issues that can arise when implementing BDD:

1. Lack of business engagement  
   In cases where stakeholders are not willing to engage and collaborate with the team, it is difficult to reap the benefits of BDD implementation.
2. Lack of experience with Agile  
   If the stakeholders and/or the team are not used to working in an Agile environment, BDD probably won't be as effective as it could be.
3. “Silo” development  
   Development teams, business analysts, and owners are used to working in isolation from each other; therefore, effort is required in order to change this culture so that BDD can work. 
4. Poorly written tests  
   Creating and maintaining automated tests for complex systems requires skill, but most teams starting with BDD probably don't have this skill figured out yet. That can cause tests to be fragile as well as a lot of issues in the software engineering process as a whole.
5. Teams that are too technical  
   When business analysts and owners are too focused on technical aspects, BDD most likely will not be fully adopted, even though some of its practices may still apply.

So, should you use BDD? Maybe! It depends on the team's knowledge, the company culture, and the team's openness to change. However, also keep in mind that you can always apply certain BDD practices to improve your quality of work!

---

[![LinkedIn Icon](https://blog.avenuecode.com/hubfs/Images/Blog/linkedin.png)](https://www.linkedin.com/in/lschmoeller/)

### Author

# Lucas Schmoeller

 Lucas Schmoeller is a Senior Product Owner at Avenue Code. He is also a .Net Developer, a Scrum Master, and an Agile Enthusiast. Lucas loves to learn new things, travel, cook, dive, and snowboard!

---

### Related Posts

### Value Your Time: 11 Tips for More Efficient Meetings

[READ MORE](https://blog.avenuecode.com/tips-for-more-efficient-meetings?hsLang=en-us)

### Tips for Organizing Documentation in Agile Projects

[READ MORE](https://blog.avenuecode.com/tips-for-organizing-documentation-in-agile-projects?hsLang=en-us)

### Synergistic Digital Transformation: Potentiating Results with Systems Thinking

[READ MORE](https://blog.avenuecode.com/potentiating-results-with-systems-thinking?hsLang=en-us)

### How A/B Testing Can Transform Your Business

[READ MORE](https://blog.avenuecode.com/how-a/b-testing-can-transform-your-business?hsLang=en-us)

### Leave a Comment!

### Avenue Code Social

[![Facebook Icon](https://blog.avenuecode.com/hubfs/Images/Blog/facebook.png?t=1486470796564)](https://www.facebook.com/avenuecode)

[![Twitter Icon](https://blog.avenuecode.com/hubfs/Images/Blog/twitter.png?t=1486470796842)](https://twitter.com/AvenueCode)

[![LinkedIn Icon](https://blog.avenuecode.com/hubfs/Images/Blog/linkedin.png?t=1486470796556)](https://www.linkedin.com/company/avenue-code)

### Newsletter

Want to stay on top of all tips and news from Avenue Code?

### Popular Snippets

![Primary Logo AvenueCode Inverted.png](https://blog.avenuecode.com/hs-fs/hubfs/Images/Logos/Primary%20Logo%20AvenueCode%20Inverted.png?width=1104&name=Primary%20Logo%20AvenueCode%20Inverted.png "Primary Logo AvenueCode Inverted.png")

### About Us

- [Who We Are](https://www.avenuecode.com/who-we-are)
- [What We Do](https://www.avenuecode.com/what-we-do)
- [Portfolio](https://www.avenuecode.com/portfolio)
- [Partners](https://www.avenuecode.com/partners)
- [News](https://www.avenuecode.com/news)
- [Events](https://www.avenuecode.com/events)
- [Blog](https://blog.avenuecode.com/)
- [Contact](https://www.avenuecode.com/contact)

### Our Offices

San Francisco

[+1 415 766 4178](tel:+553125161448) [ac.inquiries@avenuecode.com](mailto:brazil.info@avenuecode.com)

Belo Horizonte

[+55 31 2516 1448](tel:+553125161448) [brazil.info@avenuecode.com](mailto:brazil.info@avenuecode.com)

São Paulo

[+55 11 3205 3232](tel:+553125161448) [brazil.info@avenuecode.com](mailto:brazil.info@avenuecode.com)

### We're Hiring!

- [Belo Horizonte](https://www.avenuecode.com/who-we-are)
- [New York](https://www.avenuecode.com/what-we-do)
- [San Francisco](https://www.avenuecode.com/portfolio)
- [São Paulo](https://www.avenuecode.com/partners)

---

©2015 - 2017 Avenue Code

[![Facebook Icon](https://blog.avenuecode.com/hubfs/Images/Icons/facebook-2.png)](https://www.facebook.com/avenuecode) [![Twitter Icon](https://blog.avenuecode.com/hubfs/Images/Icons/twitter-2.png)](https://twitter.com/AvenueCode) [![LinkedIn Icon](https://blog.avenuecode.com/hubfs/Images/Icons/linkedin-2.png)](https://www.linkedin.com/company/avenue-code) [![Glassdoor Icon](https://blog.avenuecode.com/hubfs/Images/Icons/glassdoor-icon-1.png)](https://www.glassdoor.com/Overview/Working-at-Avenue-Code-EI_IE456173.11,22.htm) [![YouTube Icon](https://blog.avenuecode.com/hubfs/Images/Icons/youtube-2.png)](https://www.youtube.com/user/AvenueCodePlay)

Please enable JavaScript to view the [comments powered by Disqus.](http://disqus.com/?ref_noscript)

© 2026 Avenue Code

```json
{
  "@context" : "https://schema.org",
  "@type" : "BlogPosting",
  "author" : {
    "@type" : "Person",
    "name" : "Lucas Schmoeller",
    "url" : "https://blog.avenuecode.com/author/lucas-schmoeller"
  },
  "datePublished" : "2017-10-31T19:00:00.000Z",
  "headline" : "Is Behavior Driven Development Right For You and Your Team?",
  "image" : [ "https://blog.avenuecode.com/hubfs/kevin-364843-1.jpg" ],
  "mainEntityOfPage" : {
    "@id" : "https://blog.avenuecode.com/a-software-engineers-thoughts-on-behavior-driven-development",
    "@type" : "WebPage"
  },
  "publisher" : {
    "@type" : "Organization",
    "logo" : {
      "@type" : "ImageObject",
      "url" : "https://blog.avenuecode.com/hubfs/Avenue%20Code%20New%20Logos%20-%202023/Avenue%20Code-primary%20versions_LOGO%20HORIZONTAL%20group%201-7.png"
    },
    "name" : "Avenue Code"
  }
}
```