This approach is particularly successful for managing requirements and functional tests on large-scale projects of significant domain and organisational complexity. The more examples we are given, the more likely we are to correctly understand the intended meaning. A key aspect of specification by example is creating a single source of truth about required changes specification by example gojko adzic pdf all perspectives. With short iterative cycles, such coordination is often required on weekly or biweekly basis.
With Specification by example, different roles participate in creating a single source of truth that captures everyone’s understanding. Any additional information discovered during development or delivery, such as clarification of functional gaps, missing or incomplete requirements or additional tests, is added to this single source of truth. As there is only one source of truth about the functionality, there is no need for coordination, translation and interpretation of knowledge inside the delivery cycle. After the change is implemented, specification with examples becomes a document explaining existing functionality. As the validation of such documents is automated, when they are validated frequently, such documents are a reliable source of information on business functionality of underlying software. Specification by example applies to projects with sufficient organisational and domain complexity to cause problems in understanding or communicating requirements from a business domain perspective.
It does not apply to purely technical problems or where the key complexity is not in understanding or communicating knowledge. There are documented usages of this approach in domains including investment banking, financial trading, insurance, airline ticket reservation, online gaming and price comparison. A similar approach is documented also in a nuclear-power plant simulation project. In practice, this requires tests based on examples to be automated.