Define Done.

Executable Requirements

Team work

 

What are Executable Requirements?

 

Executable Requirements are requirements, usually User Stories, defined in such a way that the requirements become the automated acceptance tests themselves.

 

This can be an extremely powerful way to drive requirements through delivery in any Agile or Lean development methodology.

 

Communication between the product owner or business analyst and the development team is greatly enhanced, ambiguity is removed, the amount of software developed to satisfy the requirement is managed, the design is improved and deep coverage in the form of automated acceptance for the feature will tell you immediately if the software regresses.

 

Elaborating User Stories with executable requirements allows us to clearly define done for a given user story. This establishes better velocity estimates and forecasting capabilities.

 

Executable requirements is testing to prevent defects and moves QA to the beginning of the process.

 

Domain Modeling and DSL

Placing the domain model and creating a Domain Specific or "ubiquitous" Language as the seed of collaboration on the agile team is the beginning of using executable reauirements in your agile process


Executable Requirements are Defined First

When executable requirements are defined before the code is developed, the process can realize significant benefits.


Executable Requirements Drive Test Driven Design

Developers use TDD to develop software until the executable requirement passes. Ambiguity is removed by specificity. Done is defined. Complete code coverage exists


Executable Requirements Increases Agility

Specifying user story acceptance through executable requirements increases a team's ability to estimate and deliver on value.