Turning requirements into user stories

If people don’t “get” user story writing, try this simple exercise: Take a non-functional requirement and convert it into one or more stories by looking for the user(s). Here’s an example from a project I did a few years ago:


The Functional Spec included a non-functional requirement for an overnight batch run to create a particular database report. We looked for the users and discovered that this report was for only one person, who liked to begin each day by looking over yesterday’s figures. So we turned the requirement around and wrote it from that user’s point of view. Now we have a user story concerning this chap’s wish to read that report. It completely replaces the earlier non-functional statement, which was clearly a solution, not a requirement.


User stories also free the developers to be creative in providing a solution, because they are focused only on the business need and not on the analyst’s perception of today’s (or yesterday’s) technical constraints. On the project above it turned out to be easiest to build the report on the fly, incrementing it with every transaction throughout the day. This solution failed to meet the original ‘requirement’, but in fact over-delivered for the user, who was now able to view his figures at any time during the day.

Get in touch if your team would benefit from training in how to avoid this kind of mistake.

do all stories have a value?

In Lean Software Development Mary & Tom propose that software teams be motivated and empowered by having the financial impact of their decisions made visible to them. And elsewhere on various email lists I’ve seen discussion of the possibility of assigning a dollar business value to each feature/story. I think that in principle these are both good ideas, and I said so to Clarke last week.

Clarke raised a very good objection: Many, if not most, features have no value outwith the context of their release; how can they be assigned an individual value when they cannot stand alone?

Perhaps the answer can be found by subtraction? Assume we can assign a dollar value to the release as a whole, and suppose also we can calculate the gains and losses of delivering it earlier and/or later. Then maybe we can also calculate the loss in value the would occur if we shipped the release without feature X? Would this figure make sense as a kind of ‘derived value’ for the feature?

And finally, is there any merit in assigning a dollar value to each story anyway? Perhaps we should be content with an overall value for each release, and calculate variants on that only if the scope or release schedule are threatened…