DanNorth suggested a very interesting UserStory template in the Yahoo group:
"I came across a lovely template for stories that works on a 5x3 card.
"The front says:
Story Title As a X I want Y So that Z"The story title is "what you'd call it if you were making a movie of it". X is the person who will benefit from this story being delivered. Y is the content of the story. Z is the benefit the story will deliver. This is great because it makes the business value explicit, so the programmers understand what the customer hopes to get from the story. Often the actual benefit can be delivered by a different Y, and that will come out in the planning game.
"The back is split into two columns, labelled:
I do this... This happens..."which are your top level acceptance criteria. When I can do all those things, and all the corresponding things happen, I'm done.
"(There are some interesting patterns here, such that if Z is just a restatement of Y, the customer typically hasn't thought through the real value of the story. I've found stories often disappear from the planning game for this reason - "oh yeah, maybe we don't actually need that", or "well Dave said we should have one".)
"I've been using this for a while now and I really like it. The conversations around the business value part are always particularly useful." -- DanNorth
http://groups.yahoo.com/group/extremeprogramming/message/83897
Most interesting. I think I'll try my hand at it:
"Compute and track Social Security Tax" As a Payroll Administrator I want the system to compute and track Social Security tax deductions So that we can reduce the paperwork and tracking, and avoid accidentally deducting too much. I do this... This happens... Pay $1000.00 Deduct $33.33 (or whatever it should be) <previous total $10 below limit> Pay $1000.00 Deduct $10.00 <previous total at limit> Pay $1000.00 Deduct $0.00
I like the front a lot. I think the back goes too far. (Remember, story cards are a way to encourage conversation, not a replacement for it.) Shortly before the story is scheduled into an iteration, I think the front should be typed into a document and the table developed at that time. FrameworkForIntegratedTest would allow this document to be used as an acceptance test. --JimShore