Behavior-Driven Development

Behavior-driven development helps to build a shared understanding of the business requirements through collaboration between Domain Experts and Software Engineers.

It encourages teams to use conversation and concrete examples to formalize a shared understanding of how the application should behave.

These examples are defined before the development starts and are used as Acceptance Criteria.

<size:24>Component View: Software Development Model for Product feature delivery - Behavior-Driven Development</size> Component View: Software Development Model for Product feature delivery - Behavior-Driven Development Software Development Model for Product feature delivery[system] Behavior-Driven Development[container] ExtremeProgramming[XP] Developers work together inpairs and as a group,improving the designcontinually to keep italways just right for thecurrent needs Align and UnderstandProductRequirements[Align & Understand] Align our focus with theorganisation's businessmodel, the needs of itsusers, and its short,medium, and long-termgoals SpecificationWorkshop[Example Mapping] Concrete rules andexamples help us explorethe problem domain toclarify and confirm theacceptance criteria Features[Gherkin] Group of related scenariosthat demostrates how afeature works Acceptance Tests[Cucumber] Executable specificationsthat verify the behavior ofthe system against itsrequirements Domain Expert Product Team member whoowns and drives theproduct vision Software Engineer Development Teammember deliveringhigh-quality softwareefficiently and iteratively collaborativerequirementspecification presents rules andexamples identifies functionalgaps orinconsistencies formulate automate guides codeimplementation
BehaviorDrivenDevelopment

Specification Workshop

Specification workshop is a technique used to elicit and define requirements for software systems.

It is a collaborative approach that brings together stakeholders from different areas of the business to discuss and agree on the behavior of the system.

The goal is to create a shared understanding of the system's requirements and to identify any potential issues early in the development process.

Concrete rules and examples help us explore the problem domain and makes a great basis for our acceptance tests.

Features

Once we have identified our rules and examples, we can now formulate each example as structured documentation.

Examples of system behavior are documented using business terminology and grouped together into Features.

A Feature is a concrete software solution to a business problem that delivers a capability, helping users or other stakeholders achieve some business goal.

Automated Acceptance Tests

Executable specifications that verify the behavior of a system against its requirements.

Acceptance Tests guide code implementation until the specification is met and are produced as part of the non-regression activities.

The automated scenarios can be used as living documentation for the marketing, product, and development team.