A Primer On Developing Agile User Stories PDF
A Primer On Developing Agile User Stories PDF
A Primer On Developing Agile User Stories PDF
When I originally wrote this article I had written the syntax in both 1st and 3rd person. I had sent a draft to
Mike Cohn, User Stories Applied, For Agile Software Development, Addison-Wesley, 2004, questioning the
use of 3rd person. His comment was to definitely use 1st person when crafting a story. He said for me to
write it as if I was in the shoes of the user wanting the story. From a psychological prospective the use of 1st
person makes the story more understandable. In that case, be sure to identify the role you are assuming
within the story:
Also, we can generate a list of features and capabilities that InterGalacticMining.com should have giving us
something to estimate and test.
Acceptance Tests
As a central part of the planning game, user stories define what we build in v2. User stories are prioritized
to indicate which are most important for the system and are broken down into software engineering tasks
and estimated by the development team. When we implement a user story a more formal acceptance test
will need to be written to ensure that the goals of the story are fulfilled.
Acceptance tests are created from user stories. During an iteration the user stories selected during the
iteration planning meeting will be translated into acceptance tests. A story can have one or many
acceptance tests, what ever it takes to ensure the functionality works 100%.
Each acceptance test represents some expected result from the system. We must verify he correctness of
the acceptance tests and reviewing test scores to decide which failed tests are of highest priority. A user
story is not considered complete until it has passed its acceptance tests.
Things to Keep in Mind When Discussing Stories
As we discuss stories, write cards, and split stories, the INVEST acronym helps remind us of characteristics
of good stories. When we break out individual tasks in a task plan, applying the SMART acronym can
improve the tasks generated from them.
Independent
Stories are easiest to work with if they are independent. That is, we'd like them to not overlap in concept,
and we'd like to be able to schedule and implement them in any order
Negotiable
A good story is negotiable. It is not an explicit contract for features; rather, details will be co-created by the
customer and programmer during development. A good story captures the essence, not the details. Over
time, the card may acquire notes, test ideas, and so on, but we don't need these to prioritize or schedule
stories.
Valuable
A story needs to be valuable. We don't care about value to just anybody; it needs to be valuable to the
customer. Developers may have (legitimate) concerns, but these framed in a way that makes the customer
perceive them as important.
Estimable
A good story can be estimated. We don't need an exact estimate, but just enough to help the customer
rank and schedule the story's implementation. Being estimable is partly a function of being negotiated, as
it's hard to estimate a story we don't understand. It is also a function of size: bigger stories are harder to
estimate. Finally, it's a function of the team: what's easy to estimate will vary depending on our team's
experience. (Sometimes our team may have to split a story into a (time-boxed) "spike" that will give the
team enough information to make a decent estimate, and the rest of the story that will actually implement
the desired feature.)
Small
Good stories tend to be small. Stories typically represent at most a few person-weeks or person-days worth
of work. The details can be elaborated through conversations with the customer.
Testable
A good story is testable. Writing a story card carries an implicit promise: "I understand what I want well
enough that I could write a test for it." Testability is a characteristic of good requirements; actually writing
the tests early helps us know whether this goal is met. If we don't know how to test something, this may
indicate that the story isn't clear enough, or that it doesn't reflect something valuable to the customer.
Performance and usability are things that need to be tested. The feedback cycle of proposing, estimating,
and implementing stories will help teach the team what it needs to know.
Characteristics for SMART Tasks
There is an acronym for creating effective goals: "SMART"
S - Specific
M - Measurable
A - Achievable
R - Relevant
T - Time-boxed
Specific
A task needs to be specific enough that everyone can understand what's involved in it. This helps keep
other tasks from overlapping, and helps people understand whether the tasks add up to the full story.
Measurable
The key measure is, "can we mark it as done?" The team needs to agree on what that means, but it should
include "does what it is intended to," "tests are included.
Achievable
The task owner should expect to be able to achieve a task. XP teams have a rule that anybody can ask for
help whenever they need it; this certainly includes ensuring that task owners are up to the job.
Relevant
Every task should be relevant, contributing to the story at hand. Stories are broken into tasks for the
benefit of developers, but a customer should still be able to expect that every task can be explained and
justified.
Time-Boxed
A task should be time-boxed: limited to a specific duration. This doesn't need to be a formal estimate in
hours or days, but there should be an expectation so people know when they should seek help. If a task is
harder than expected, the team needs to know it must split the task, change players, or do something to
help the task (and story) get done.
User Roles InterGalacticMining (partial list as the result of Brainstorming)
As a visitor
As a registered visitor
As a Sales Executive
As an Event Administrator
As a Profile Manager
As a Content Manager
As an industry consultant
As an employee
As a Financial Analyst
As a potential employee
As a CIO/CEO C-level Executive
As a VP/Sr. VP level
As a Manager/Director level
As an Associate
As a Business Analyst
As a Partner
As an Academic
User Stories InterGalacticMining (sample partial list)
As a CXO of a transportation company I want to read case studies (of other like companies) online
so that I can streamline my customs document processing.
As a CXO of a transportation company I want to download and read case studies (of other like
companies) offline so that I can streamline my customs document processing.
As a new user to InterGalacticMining.com I see what the latest new content has been added so I
can see most current news instead of having to read through everything.
As a returning user to InterGalacticMining.com I want to know what new content has been added
since my last visit so that I dont miss some important to me.
As a CAE at InterGalacticMining I want to publish a new case study relevant to my existing clients so
that I can promote a new process I am offering.
As a general user I want to be able to click a button to e-mail the content visible on my screen to a
college so that he is informed of this cool thing from InterGalacticMining.
As a returning user to InterGalacticMining.com I want to visit InterGalacticMining.com site and
have it remember who I am so that I dont have to remember my password.
As a general user I want to click a button to have InterGalacticMining quickly e-mail me my login
credentials so that I dont have to remember it or have to reregister it if I cannot.
As a registered visitor to InterGalacticMining.com I want to access information on products and
services that interest me so that I can learn more about what InterGalacticMining has to offer
As a returning user to InterGalacticMining.com I want to be able to not be bothered with content
that is not interesting to me.
As a registered visitor to InterGalacticMining.com I want to find content that I am entitled to so
that I can use the research, white (orange) papers and market information not available to the general
public
As a visitor to InterGalacticMining.com I want to be able to search multiple InterGalacticMining
sites without having to go to each of them to find content I am looking for.
As a registered visitor to InterGalacticMining.com I want to mark content and files so that I can
retrace my tracks and find some interesting information I have misplaced
As a visitor to InterGalacticMining.com I want a navigation marker telling me exactly where I am in
the navigation tree so that I can backtrack immediately to a page where I chose this pathway so that I can
quickly pick another
As a visitor to InterGalacticMining.com I want to receive InterGalacticMining product, services and
support content specifically suited to my industry
As a visitor to InterGalacticMining.com I want a personal portal to InterGalacticMining products,
services, and support so that I can receive content specifically suited to my industry
As a visitor to InterGalacticMining.com I want access to context specific help to use any feature on
InterGalacticMining.com that I am currently viewing.
As a visitor to InterGalacticMining.com I want to be able to participate in demos and tutorials so
that I can understand how to use RSS feeds, play pod casts and any other feature beyond simple web
browsing
As a visitor to InterGalacticMining.com I want to navigate segmented pathways such as industry,
service or role through simple navigation on any screen so that I can explore more than one pathway
through InterGalacticMining.com