Gathering and defining software requirements is difficult. One Agile technique to help address this challenge is writing user stories, which are short descriptions of functions that an end-user would want. While user stories help convert concepts into functions, writing good user stories is easier said than done.
What you’ll learn in this presentation:
• The basics of user stories.
• How user stories fit into the overall Agile planning process.
• How to write a user story.
3 Cohn, Michael W., 2004. “User Stories Applied for Agile Software Development”, (Addison-Wesley Professional Series, Boston, MA)
4 Poppendieck, Mary and Poppendieck, Tom, 2003. “Lean Software Development: An Agile Toolkit”, (Addison-Wesley Professional Series, Boston, MA)
A Lean principle is that anything that does not contribute directly to the end product is waste – big up front documentation is often waste by this definition
Stories become a form of currency around system requirements between Customers and Developers
Because Stories are not too detailed, they work at the right level to support the Agile release and planning processes
XP tends to work at the Feature level and works with Points as Estimates that range in size generally from 1 to 3 weeks to build
Scrum tends to work at a lower level of detail, and tends to focus on Stories at the level defined above where Stories take days to build
The approach you take doesn’t matter, the main thing is to be consistent across the project in terms of relative size of your stories and estimates
I use a spreadsheet and Word merge template to produce these
The type of units used actually does not matter, as long as there is consistency
The type of units used actually does not matter, as long as there is consistency
Negotiable – If there’s too much detail on the card or if it’s too specific then there won’t be much room for negotiation.
Valuable – Stories that are only valuable to end-users or developers should be avoided. Ideally, stories should be written by the customer.
Estimatable – Stories where the domain or technology are not understood or that are too large cannot be estimated.
Small – Need to avoid “Epics”. Big stories like Epics can be split.
Testable – An example of an untestable story is a nonfunctional requirement e.g. easy to use.
This story is a constraint, similar to other qualities such as fast, reliable, etc.
This is a common problem with reporting stories due to the need to create a reporting infrastructure. A similar approach works with reporting, e.g. Story 1: Generate one report, Story 2: Add other reports.