Friday, 13 April 2012

What is a User Story?

A story describes desired functionality from the customer(user) perspective.
A good user story describes the desired functionality, who wants it, and how and why
the functionality will be used.
The basic components of a User Story are sometimes dubbed as the three C's:
 1.Card - the written description of the story, serves as and identification, reminder, and also helps in planning.
 2.Conversation - this is the meat of the story; the dialogue that is carried out with the users; recorded notes; mockups; documents exchanged.
 3.Confirmation - the acceptance test criteria that the user will utilize to confirm that the story is completed.

A user story is not technical.

A well-written user story follows the INVEST model

Independent
Negotiable
Valuable
Estimable
Small
Testable
Let's see what each one means:
 ■Independent - One user story should be independent of another (as much as possible).
                        Dependencies between stories make planning, prioritization, and estimation much
                        more difficult. Often enough, dependencies can be reduced by either combining stories
                        into one or by splitting the  stories differently.
 ■Negotiable - A user story is negotiable. The "Card" of the story is just a short description of the
                 story which do not include details. The details are worked out during the
                "Conversation" phase. A "Card" with too   much detail on it actually limits conversation 
                 with the customer.
 ■Valuable - Each story has to be of value to the customer (either the user or the purchaser). One
                  very good way of  making stories valuable is to get the customer to write them. Once a 
                  customer realizes that a user story  is not a contract and is negotiable, they will be
                  much more comfortable writing stories.
 ■Estimable - The developers need to be able to estimate (at a ballpark even) a user story to allow
                   prioritization   and planning of the story. Problems that can keep developers from
                   estimating a story are: lack of domain   knowledge (in which case there is a need for    
                   more Negotiation/Conversation); or if the story is too big  (in which case the story 
                   needs to be broken down into smaller stories).
 ■Small - A good story should be small in effort, typically representing no more, than 2-3 person 
                 weeks of effort. A story which is more than that in effort can have more errors
                 associated with scoping and estimation.
 ■Testable - A story needs to be testable for the "Confirmation" to take place.
            Remember, we do not develop what we cannot test. If you can't test it then you will never   
             know when you are done. An example of non-testable story: "software should be easy to  
             use".

Summary

Well-written User Stories are cornerstones for Agile Development.
They should be independent of each other; the details should be negotiated between the users and the developers;
the stories should be of value to the users; they should be clear enough for developers to be able to estimate them;
they should be small; and they should be testable through the use of pre-defined test

No comments:

Post a Comment