I am a huge proponent of the following story template.
As as {User or System role} I want {some feature} so that {some
statement that compliments the business value stream}
As you use that template it focuses customers to think about business
functionality rather then system functionality. (of course if you are
building a framework these constructs often blur)
Use screen sketches along with a domain model to drive out stories.
For instance if you are building health system and the screen has to
take in patient data. Patient data is usually an enormous task.
There are tons of data that has to be acquired dependent upon the
medical vertical you are supporting. Break the screen into tangible
chunks that can be delivered:
As a patient I want to enter in my basic information so that I can
works towards completing my initial screening.
ACC: Last Name should be required
ACC: First Name can not be longer then 12 char.
ACC: Phone number should use this format (###)-###-####
etc.
As as patient I want to enter my employment information so that I can
works towards completing my initial screening
This exercise continues until the the feature of completing the
initial screening is complete.
You have to have your team start to think in term of quick wins! Not
quick wins in the sense of "As a blah I need a label so that...", "As
a blah I need a text box..." those stories will demoralize a team
quickly.
I hope this makes sense.
JO
(Role): In order to (achieve some value) I want (some feature)
Example:
CAM User: In order to undo a mistaken disconnect, I want to be able to
connect a toolpath and a part.
(taken from my day job, I work in the machine control industry)
This template puts the WHY? (achieve some value) before the HOW? (some
feature), focusing on the most important aspect of the story first,
that is.
It also reads aloud as the statement from an actor in a play, which I
think is a communicative bonus ;)
Salesman: In order to sell more programs, I want the Forms to animate
when minimized.
My 2cc
2008/5/22 Joe Ocampo <agil...@gmail.com>:
As an engineer I can add and modify attribute values for a given
widget so that specifications for that widget are captured.
ACC: only user can add / modify values of a widget at one time.
ACC: default values are displayed based on the projects defaults
ACC: mandatory fields must have values
ACC: user adding content can indicate that the information captured
for the widget is complete
I feel this has a few core problems ("add and modify" is the first
smell, trying to figure out how to not sink into the CRUD model when
specifying stories like this). The "so that" part is just asinine. The
first ACC isn't bad and I'm okay with it. The second ACC smells but
not sure what's wrong with it. The third ACC is okay, but rather
vague. I prefer the format you mention where fields are specified (but
other than breaking up the form, if possible, how do you deal with say
dynamic forms or dozens of fields?).
Thanks for the replies as little things help in greater understanding.
For the example below (or any example) is there some kind of cutoff you do
when dealing with lots of fields to capture information? It's well and good
if there are 3 or 4 like you show, but what happens if there's 10? Or 20?
Someone had mentioned breaking the stories up into sections, but that
doesn't seem to align with delivering a story that following the independent
principle if I have to break up information capture into 3 chunks of 8
pieces of information each (even if you could logically break up the
information).