the nerrative Gives us a brief description of what to deliver,
and why we should deliver it (in the form of Features and Benefits).
we shall define few terms:
A Role:
Is an aspect that describes the person, or thing, that will benefit from the Feature.
It is essentially the same as an Actor in a UseCase.
A Feature:
It describes something that the system should do (the behavior, as it were).
An important aspect of a Feature is that it is described solely in business terms and not in terms of technology or technologists,
unless of course the business is technology or technologists!!
A Benefit:
This is the reason we are delivering a particular Feature– it describes the business value accrued from this Feature.
Initially the Benefit is usually qualitative,
but we usually expect to see some quantitative business value assigned to the Story before it is chosen for development.
This is to help keep us honest and to ensure that we are focusing our development efforts on Features that have real business value.
To ensure that we don't forget any of these critical components we often use a template for the narrative like this:
As a <Role>
I want <Feature>
So that <Benefit>
A concrete example may be something like:
As a Developer
I want to be able to rename classes
So that I don’t spend too much time worrying about getting the name right first time
The reason for this degree of formality is that it helps us avoid some common analysis anti-patterns.
Two in particular are worth mentioning:
- Feature = Benefit.
This is where the “benefit” is simply a restatement of the feature, this is a common failing in technical or semi-technical customers,
who wish to promote a particular technical solution.
These requirements can often be (diplomatically) eliminated, reducing complexity, risk and the associated cost.
- Feature ≠> Benefit. (“Feature does not imply benefit”)
The feature described will not deliver the benefit described.
When this occurs it often reveals hidden requirements.
It may be that the Feature delivers a completely different benefit which we hadn't identified.
Conversely, we may need to introduce some new Feature to actually achieve the specified Benefit,
a previously hidden, and thus unplanned, feature.