RSS

Neil Crookes

Learnings and Teachings on Web Application Development & CakePHP

Nov

17

What’s the Story?

The who, what, when, where and why of user stories for Scrum.

Share and Enjoy:

  • Digg
  • del.icio.us
  • StumbleUpon
  • Technorati
  • Slashdot

Identifying software requirements is hard!

Users rarely know what they want software to do, and even when they do, they can rarely communicate it in a way that ensures consistent understanding with the developer.

A story is a way to document requirements from the perspective of the end user.

Stories evolve. They start in the format:

“As a <user type>, I want to <do something> in order to <get some benefit>”

As such, in one short sentence, they identify who the user is, what they want to do and why they want to do that.

Start thinking of software as solving problems for real people, make them tangible, don’t use the word “user”.

Stories should stay like this, high-level and short, until they are released into a sprint following the Just In Time (JIT) principle. Rather than making all the decisions up-front, make decisions based on the information you have at the latest possible moment before development of that story begins.

At this point, they will be expanded to cover more detail, de-composed into smaller, more manageable pieces of work, acceptance tests will be written that define what must happen for a story to be done and they will be estimated (more on this in another post).

Stories should be written by the whole Scrum team during a brainstorming session where you write as many stories as possible. They can be prioritised later. Some stories will be implementation-ready (need no further decomposition, be of suitable complexity etc etc), others will be epics.

Epics are stories that include too many variables to really know how big they are, or when a team can’t settle on an appropriate estimate, or when its requirements are known, but its effort is off the charts. Epics get decomposed into stories that require between 0.5 days and 1.5 days to complete.

Stories should follow the INVEST priciple, which stands for Independent, Negotiable, Valuable, Estimatable, Small and Testable.

  • Independent
    The story should not be dependant on any other, as this can lead to estimating problems. Instead the story should be completely independent so that it can be worked on without pulling in a set of other stories.
  • Negotiable
    Stories should have room to negotiate – they are a starting point, not a contract.
  • Valuable
    The story should communicate the value to a user or customer, not to the developer. The story should define not only what a user can do, but what value the user gets from the implemented story. If there is no value, cut the story.
  • Estimateable
    You need to be able to estimate the amount of work required to implement the story. If it is too big and too daunting (an epic), break it up into smaller stories.
  • Small
    Similar to the previous, stories need to be small. Large stories are too complex to manage, and are typically more than one story compounded together.
  • Testable
    The implementation of the story needs to be testable. Define the tests that can be performed to validate the story was correctly implemented.
Share and Enjoy:

  • Digg
  • del.icio.us
  • StumbleUpon
  • Technorati
  • Slashdot
(1 votes, average: 5.00 out of 5)
Loading ... Loading ...

3 Responses so far

Isn’t this just Use Case diagrams?

Hi David, it has been said that

A user story is to a use case as a gazelle is to a gazebo

and

After the first three letters, they have nothing in common

but a perhaps more useful quote is

A user story is the title of one scenario, whereas a use case is the contents of multiple scenarios

David, also check out this article on Mike Cohn’s mountain goat software site, especially the section titled “User Stories Aren’t Use Cases”.

Leave a comment