Writing Stories for Scrum

This week I have been giving a lot of thought to how stories should be written for Scrum projects. I was just reviewing some of the stuff on Mountain Goat Software's site. The INVEST acronym hit home with me - this is a good set of guidance on how to craft a story for Scrum.

INVEST stands for Independent, Negotiable, Valuable, Estimatable, Small and Testable.

  • Independent
    The story should not carry with it dependancies, which 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
    This is the one that really resonated with me. 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.

My goal - remember the INVEST acronym to ensure well written stories for teams I work with.