where does specification by example complement/replace traditional requirements documentation?

259 Views Asked by At

I'm trying to understand where SBE's complement or replaces traditional requirements documentation. The diagram levels of requirements shows three levels of traditional software requirements.

Which of the items below (from the diagram) does SBE replace and which ones does it complement:

  • Vision and Scope Document
    • Business Requirements
  • Use Case Document
    • User Requirements
    • Business Rules
  • Software Requirements Specification
    • System Requirements
    • Functional Requirements
    • Quality Attributes
    • External Interfaces
    • Constraints

My naive understanding of SBE's would say that the SBE's are just an alternative form of the Software Requirements Specification. Is this correct?

1

There are 1 best solutions below

0
On

BDD and SBE are normally used by Agile teams, who don't focus as much on documentation as traditional software development teams do.

BDD is the art of using examples in conversation to illustrate behaviour. SBE then uses the examples as a way of specifying the behaviour that you decide to address (I always think of it as a subset of BDD, since talking through examples often ends up to eliminating scope, discovering uncertainty or finding different options, none of which end up as specifications).

There are a couple of things that are hard to do with BDD. One of them is anything which isn't discrete in nature, or which needs to always be true throughout the lifetime of the system - non-functionals, quality attributes, constraints, etc. It's hard to talk through examples of these. These continuous aspects of requirements lend themselves better to monitoring, and that's discrete, so BDD can even be used to help manage these.

Since an initial vision is usually created to help the company make money, save money, or protect existing revenue (stopping customers going elsewhere, for instance), you can even come up with examples of how the project will do this. In fact, if you can't, the project is likely to fail anyway. So BDD / SBE can also be used to help complement an initial vision and scope.

Therefore, BDD / SBE can complement all of these documents, and in Agile teams, the documents themselves are usually replaced by conversations about the requirements and rules (illustrated by examples), story cards to represent placeholders for those conversations, and perhaps some lightweight capture of those conversations on a Wiki.

It is unlikely that any Agile team captures all of their examples up-front, as this leads to excessive investment in the requirements and tends to turn it into a traditional Waterfall /SDLC project instead.

This blog post I wrote about BDD in the Large may also be of interest.