I was recently following a thread on the XP forum and one of the responses from Ron Jeffries is worth repeating here for you all to read.
Um, yes. Or as someone put it long ago, a user story consists of ...
The card is just a token used to pass around if one estimates, to
hang on the wall as something to be done, to move around the status
board, and so on.
It is in conversation between PO and team that the team learns what
is really meant. It is here that much of the creativity lies,
converting what the PO originally thought she wanted into the best
idea the team can come up with.
Confirmation, in the most productive teams, consists of concrete
tests, or checks, that show when they pass that the software does
what was agreed it would do. Fastest and most reliable development
seems to happen when a very high proportion of these checks are
[Some people have the impression that a user story is only #1 or
only #1 and #2. I don't agree, but that's another topic. I don't
think any of the 3 MUST be fully documented, but I do believe all
of the 3 should be well communicated to the dev team.]
Yes. The point is communication. The card serves as a point of
focus, and a status marker. The conversation builds common
understanding and agreement, the confirmation contains the details
of the agreement.
Your detailed test examples are right on point to the original
questions. The one thing that I would add is that it is perfectly
fine to write these story ideas on cards associated with the story,
or on a sheet of paper. The probably do not to be documented further
within the team, and there should probably be no one outside the
team who needs that level of detail.
If the tests are going to be automated -- and generally I recommend
that -- then the test itself serves as perfectly adequate
documentation, especially if written in a FitNesse table or a system
like Cucumber. If the tests are going to be done manually, first go
back to the previous sentence. If there are still tests that need to
be done manually, it may be worth writing them down in a test book
so that you can be sure to do them again, and again, and again, as
regression tests ... which is why automation is so important.
You recommend Mike Cohn's book, and it's definitely a good one. It
is possible to get the impression from it that you should do
everything in there, and it's probably best to do as little as
possible. Start with Card, Conversation, Confirmation. Then, for 99
percent of teams: stay there.
If you're interested in sources, here's an early description of the
ideas, and a darn good one if I do say so myself: