Saturday, 8 June 2013

Template I follow in writing user story

User story one of the important item in your agile toolkit. A good user story will drive you to solve the right problem. I like writing user story. For me it is a discovery phase. Many unknown small but important requirements I have found when writing user story (some of my aha moments!!). Here is the template I follow when I write user story:

User Story:

Title: (one line describing the story)

As a {role} I want to {action} so that {benefit}

Notes (or Scopes):

Add any relevant background information, specific algorithms or formulas, conversation etc.

Acceptance Criteria:

Given {context/system status}
when I {input/action}
then I should {result}

When I write the user story I think about the benefit or business value that I am going to add by implementing this feature. Even when my product owner writes the user story, I discuss the benefit of the feature with him. It gives me an opportunity to get a good understanding of the requirement. It also helps to find out the required definition of done.

Role helps me to find out my primary user. Sometimes I find it easily just by discussing with product owner, sometimes I talk to different stackholders to find it out. You may face the similar situation, just take time in your finding.

Action outlines the main flow of interaction which needs to be addressed.

Notes or scopes are optional for me. I may not need them always. When I work on a complex problem that requires further discussion. In these discussions I may come across many important information and references. I write them under this section for future references.

Acceptance criteria is another important part in my user story. In this section I write down the expected behaviour and corner cases. I review them with the product owner and tester. Acceptance criteria help me to reduce the ambiguity and at the same time I get the sense of done once I complete coding that meets the criteria. I write them in BDD (Given-When-Then) format. One thing to remember here, you may not have all accept criteria when implementation starts and also do not expect them to remain static. They may change and so adjust them accordingly.

No comments:

Post a Comment