We're Currently Updating Our Website & Adding Some Cool New Features. We'll be Back Shortly. Thank You For Your Patience. For Any Assistance Contact +91-960-640-0491  (India) Social Link

How Does Behavior-Driven Development Optimize the Value of the Work Done?

Popular Post

TAGS

Non proident maiore second third four first six seven ten developer ret Agile Certification, Agile Training, BDD training, Scrum Certification, scrum for developer, Scrum Training, TDD training testing BDD training, BDD training in Bangalore, DevOPs training in Bangalore, Scrum, scrum for developer, Scrum for tester, scrum master, Scrum Training, Scrum Training in Bangalore, TDD training, tdd training in Bangalore Agile, Agile Training, Estimation, Scrum, scrum for developer, Scrum for tester, scrum master, Scrum Training Past Webinar Agile Product Development, Agile Scrum training, Traditional Project Management product backlog Spillover in Scrum sprint planning User story test scrum fg Agile Scrum training, Scrum Certification, scrum master, Scrum Master Training SAFe agile SAFe,Product owner LPM SAFe,PI planning agile-coaching agilemania testing,agilemaina,testing tools ,Build a customer-centric ,product using Scrum to maxi Agile Training CSD training CSM training CSP CSPO Training CST Scrum scrum for developer Scrum for tester scrum master Agile Metrics Agile Scrum training Scrum Master Role Scrum Master Interview Questions scrum master Agile Certification Professional Scrum Trainer professional scrum trainer professional scrum master scaling agile scaling agile scaling RTE SPC SPCT Empowering Teams,SAFe Stream Map Agile Retrospectives Mistakes Project Management PSM,CSM Digital Transformation Agile Testing, Agile Testing Training, ATDD,bdd, Scrum for tester, SpecFlow scrum master, scaling scrum, scaling agile scrum for developer, Large scale scrum software plan, scrum for developer, agile planning scrum for developer, scrum master, planning scrum coaching, agile assessment technical debts, Agile Metrics Agile Team ssm Scaled Agile Product Owner Scrum Training in Bangalore Product Manager Business Owner Resolving Conflict Conflict Resolution Techniques Product Backlog Refinement Sprint Retrospective Sprint Planning Scrum Master Interview Questions Scrum Interview Question Agile Interview Question agile coaching Creative Professional Agile Coaching Managers Safe Scrum Master Agile Governance Self-organizing Teams Agile Persona Mapping Scrum Certification CALMR Role Of Product Owner Agile Scrum Training APM Agile Product Product Management KPIs Business Agility SAFe 6.0 Definition of Done Digital Marketing SAFe Agilist Certification SAFe® Agile Certification Benefits of SAFe SAFe Agilist BDD training BDD training in Bangalore DevOPs training in Bangalore Scrum Training TDD training tdd training in Bangalore WSIF SEO DevOps Sprint JIRA PSM Agile Facilitation Feedback Loop Gold SPCT User Stories Acceptance Criteria TDD Agile Framework Technical Agility Velocity Agile Software Development SAFe vs Scrum SAFe Scrum Master vs just Scrum Master Scrum Vs. Kanban Agile Coach Enterprise Agile Coach Agile Testing Pair Programming Scrum Teams PI planning PERT CPM Delivery Pipeline Project Management Tools Agile Certification BDD training Scrum Certification Value Flow ICAgile Digital Transformation Large scale scrum Measuring Scrum Sucess Organizational Agility Agile Coaches Leadership Management
Agilemania Blog
  • Naveen Kumar Singh
  • Oct 7th 2020

Behavior-Driven Development (BDD) is a well-known practice for collaboration, and teams use it to bridge the gap between product management and the software development team. It is also very popular among quality engineers to develop test automation frameworks. BDD helps in describing requirements in the form of feature files and scenarios; scenarios further get described in the format of Given, When, and Then.

Gherkin language can be used to write feature files in more than 40 languages. Some of the important keywords of Gherkin mentioned below that help in describing features and scenarios:- Feature, Scenario, Given, When, Then, And, But, Background, Scenario Outline, and Examples

How to write a Feature file?

You can write a feature file in Notepad or some popular IDEs like Visual Studio, Eclipse, IntelliJ, etc. Basically, there is no need to know any particular tools. But the most important thing is how to prepare for these scenarios. There is a very popular practice known as the 3 Amigos session.

Here is a brief about this session, as described in the glossary on Agile Alliance. Three amigos refer to the primary perspectives to examine an increment of work before, during, and after development. Those perspectives are:

Business — What problem are we trying to solve?

Development — How might we build a solution to solve that problem?

Testing — What about this? What could possibly happen?

People holding these different perspectives should collaborate to define what to do and agree on how they know when it is done correctly. The end result of such a collaboration results in a clearer description of an increment of work, often in the form of examples, leading to a shared understanding for the team.

If you are developing software using Scrum then you may like to host these sessions during Product Backlog Refinement or Sprint Planning. It is because The Product Owner and The Development Team participate during both where The Product Owner provides business prospective, and The Development Team (consisting of developers and testers along with other members) provides development and testing prospectives.

Example of a Feature using BDD

Feature: Search Flight As a flyer, I want to search for available flights between Bangalore and Chennai So that I can book to travel on a given date. #above story/description is optional

Scenario: Search all available flight based on date, origin, and destination Given flyer enter travel date as “12/12/2020” and origin as “Bangalore and Destination as “Chennai” When Click on the Search button Then Search page should show all available flight And Provide option to book flight What is a complex story/requirement? Take the above example of flight search, this looks very simple but can it be delivered in 2 weeks of the sprint? Do we have an answer to the below questions?

  • Who is the user (persona) of this story?
  • Do you know the data sources for each airline?
  • Do we know what these personas expect from this feature?
  • What’s going to be the order of data?
  • Will have filters?
  • What are the actions users perform?
Questions can be much more than the above and need to explore, develop, and validate all those. It may or may not possible to complete this feature in one sprint. Does it also depend on all work that has been mentioned in Definition of Done (DoD)?

Yes, it is. So how to slice this feature to have a releasable product increment by meeting DoD at the end of the sprint? Use the BDD scenario like below to slice it and then prioritize based on the value that you see in each slice. Develop stories incrementally and ensure you get feedback to maximize user experience and optimize the value of the work.

Basic examples of slicing using Scenarios

Now change the scenario to search flights for one airline at a time because connecting multiple sources may not be possible in one sprint and modify it like below.

Scenario: Search only Indigo flight based on date, origin, and destination Given flyer enter travel date as “12/12/2020” and origin as “Bangalore and Destination as “Chennai” When Click on the Search button Then Search page should show all available flights And Provide option to book flight. 

Scenario: Search only Spicejet flight based on date, origin, and destination Given flyer enter travel date as “12/12/2020” and origin as “Bangalore and Destination as “Chennai” When Click on the Search button Then Search page should show all available flight And Provide option to book flight. 

Scenario: Search only Jet Airways flight based on date, origin, and destination Given flyer enter travel date as “12/12/2020” and origin as “Bangalore and Destination as “Chennai” When Click on the Search button Then Search page should show all available flight And Provide option to book flight Now the team can decide to build only those scenarios that can be delivered within one sprint and rest scenarios in upcoming sprints (if it makes sense).

The above scenarios can also be further sliced like below if needed.

  • Scenario: One-way flight of Indigo
  • Scenario: Return flight of Indigo
  • Scenario: Multiple location search for Indigo etc.
What’s the meaning of optimizing the value Few things to care when talk about optimizing value:

  • Small increment
  • Less waste
  • Early release of a feature
  • Better quality
  • Automation

How does Behavior-Driven Development optimize the value of the work done?

BDD helps in getting done all. Developing stories based on scenarios help in getting small increment out, release it internally or externally if it makes sense. Getting in detail of each story reduces ambiguity, rework, and rejection so the team produces less waste. BDD scenarios get automated with the help of various tools such as Cucumber, SpecFlow, and Behave so regression tests become easy to execute every time. Better quality can be achieved by continuously refactoring code and developers feel safe in refactoring as these tests protect them from breaking running code. 

Hope it is useful and if you have further queries then reach out to me on naveen@agilemania.com. We at Agilemania provides Scrum and Agile Training including TDD, BDD, and Extreme Programming, if you are interested in learning these.

Agilemania Blog

Naveen Kumar Singh

Naveen is a Lean-Agile Coach, Professional Scrum Trainer (PST) and Internationally acclaimed Speaker in many Conferences and Agile events.

Sign up for Agilemania Newsletter

Stay updated with the latest Agile & Scrum trends.

Popular Post

TAGS

Non proident maiore second third four first six seven ten developer ret Agile Certification, Agile Training, BDD training, Scrum Certification, scrum for developer, Scrum Training, TDD training testing BDD training, BDD training in Bangalore, DevOPs training in Bangalore, Scrum, scrum for developer, Scrum for tester, scrum master, Scrum Training, Scrum Training in Bangalore, TDD training, tdd training in Bangalore Agile, Agile Training, Estimation, Scrum, scrum for developer, Scrum for tester, scrum master, Scrum Training Past Webinar Agile Product Development, Agile Scrum training, Traditional Project Management product backlog Spillover in Scrum sprint planning User story test scrum fg Agile Scrum training, Scrum Certification, scrum master, Scrum Master Training SAFe agile SAFe,Product owner LPM SAFe,PI planning agile-coaching agilemania testing,agilemaina,testing tools ,Build a customer-centric ,product using Scrum to maxi Agile Training CSD training CSM training CSP CSPO Training CST Scrum scrum for developer Scrum for tester scrum master Agile Metrics Agile Scrum training Scrum Master Role Scrum Master Interview Questions scrum master Agile Certification Professional Scrum Trainer professional scrum trainer professional scrum master scaling agile scaling agile scaling RTE SPC SPCT Empowering Teams,SAFe Stream Map Agile Retrospectives Mistakes Project Management PSM,CSM Digital Transformation Agile Testing, Agile Testing Training, ATDD,bdd, Scrum for tester, SpecFlow scrum master, scaling scrum, scaling agile scrum for developer, Large scale scrum software plan, scrum for developer, agile planning scrum for developer, scrum master, planning scrum coaching, agile assessment technical debts, Agile Metrics Agile Team ssm Scaled Agile Product Owner Scrum Training in Bangalore Product Manager Business Owner Resolving Conflict Conflict Resolution Techniques Product Backlog Refinement Sprint Retrospective Sprint Planning Scrum Master Interview Questions Scrum Interview Question Agile Interview Question agile coaching Creative Professional Agile Coaching Managers Safe Scrum Master Agile Governance Self-organizing Teams Agile Persona Mapping Scrum Certification CALMR Role Of Product Owner Agile Scrum Training APM Agile Product Product Management KPIs Business Agility SAFe 6.0 Definition of Done Digital Marketing SAFe Agilist Certification SAFe® Agile Certification Benefits of SAFe SAFe Agilist BDD training BDD training in Bangalore DevOPs training in Bangalore Scrum Training TDD training tdd training in Bangalore WSIF SEO DevOps Sprint JIRA PSM Agile Facilitation Feedback Loop Gold SPCT User Stories Acceptance Criteria TDD Agile Framework Technical Agility Velocity Agile Software Development SAFe vs Scrum SAFe Scrum Master vs just Scrum Master Scrum Vs. Kanban Agile Coach Enterprise Agile Coach Agile Testing Pair Programming Scrum Teams PI planning PERT CPM Delivery Pipeline Project Management Tools Agile Certification BDD training Scrum Certification Value Flow ICAgile Digital Transformation Large scale scrum Measuring Scrum Sucess Organizational Agility Agile Coaches Leadership Management
Agilemania Whatsapp