A user story is a small unit of work that captures the requirements and description of the product feature from an end-user perspective. A user story is usually delivered in a single iteration of an agile framework sprint.
User story dependencies are identified and linked in the story. This includes User story collateral (wiki pages, documents, images, etc.). Dependencies may include names of important stakeholders who will provide more clarity about the story and/or sign off on various aspects of the story’s execution.
The INVEST model describes the characteristics of a good user story.
Independent user stories can be implemented in any order.
Can be traced, tracked, tested, etc. on its own.
Although, having independent user stories may not always be achievable, but linking one user story to another may reduce the amount of work another story needs and can bring some order in the larger feature execution timelines.
Focus on the essence, not the details in the user story. Keeping the details out allows for the evolution of the story as time progresses.
Details are worked out over time as user story takes a concrete shape and form in subsequent sprints.
End user is our focus, user stories should be ‘valuable’ to the end user.
Capture the importance of external impact (to the end user) and clearly describe the value (for the end user).
Have a large feature and need to split into multiple user stories?
Instead of splitting up the feature "horizontally" (having one story to complete the database layer and another to complete the logic layer) try to have each story result in a completed item that contributes to the overall feature. Imagine user stories like slices of cake – want to serve all layers of the cake by vertical slicing to include all layers.
Estimate approximately how long each story should take.
In general, larger stories are harder to estimate than smaller stories could be due to dependencies on other smaller user stories, external dependencies, etc.
Confidence in estimation will be a function of the team – experience, unforeseen interruptions like pager duties, customer issues, etc.
Well-defined user stories are small.
Ideally, stories should last for one sprint.
Scoping a user story so that it can fit in a sprint can be challenging if there are are a lot of unknowns (usually at the beginning of a new feature execution).
Small user stories tend to have accurate estimates.