User stories

User Stories: How to Write and Prioritise Them

User stories are a fundamental component of agile development. They help teams define the functionality they need to build in a clear and user-centric manner. In this article, we will explore what user stories are, why they are essential, and how to write them effectively. We'll also discuss the use of story points and Scrum poker in agile estimation.

Alfa Sommersol

What Is a User Story?

A user story is a concise and informal way to express a software feature from the perspective of an end user. It describes the who, what, and why of a feature. A typical user story follows this template:

User Story As [actor: type of user], I want [the feature], So I can [the goal of the feature].

Let's break down each part of the template:

Actor: This is the user or stakeholder for whom the feature is being developed. It provides context and helps the team understand the user's perspective.

I want: This part describes the feature itself. It should be written in a way that is specific, measurable, and easy to understand.

So I can: Here, you articulate the goal or benefit the user expects to achieve by using the feature. It helps prioritize and understand the value of the feature.

Writing Effective User Stories

To write effective user stories, keep the following principles in mind:

  1. User-Centric User stories should always focus on the needs of the end user. They should answer the question, "What problem are we solving for the user?" This perspective ensures that the team remains customer-driven.

  2. Independent Each user story should be independent and deliverable on its own. Avoid dependencies between stories as they can lead to bottlenecks and delays in development.

  3. Negotiable User stories are not rigid contracts. They serve as a starting point for discussions between the development team and stakeholders. Be open to changes and refinements during the development process.

  4. Valuable Every user story should provide value to the user or the business. Ensure that the features you're working on align with the overall project goals.

  5. Estimable User stories should be small enough to estimate accurately. If a story is too large or vague, break it down into smaller, more manageable parts.

  6. Testable A user story should have clear acceptance criteria. These are conditions that must be met for the story to be considered complete. They serve as a basis for testing and validation.

Acceptance Criteria

Acceptance criteria are an integral part of user stories. They provide a checklist of conditions that must be satisfied for the story to be considered done. Here's an example of how acceptance criteria can be added to a user story:

User Story: As a website visitor, I want a search functionality on the homepage, So I can quickly find the information I need. Acceptance Criteria

Prioritizing User Stories

In agile development, it's essential to prioritize user stories to ensure that the most valuable features are built first. One common method for prioritisation is using a backlog and assigning story points.

Story Points

Story points are a relative measure of the effort required to implement a user story. They are not tied to specific units of time but are used to compare the effort required for different stories. Teams assign story points during backlog grooming/refinement or sprint planning meetings.

Scrum Poker

Scrum poker, also known as planning poker, is a collaborative estimation technique used to assign story points. Team members discuss the user story, and each member privately selects a story point value that represents their estimate of the effort required. After everyone has voted, the team reveals their estimates and discusses any significant discrepancies. This process continues until a consensus is reached.

Prioritising user stories based on their business value and complexity is critical to delivering a product that meets the most important needs of the users and stakeholders.

Templates for User Stories

Here are two templates you can use for user stories in different scenarios:

User Story Feature Report

User Story As [actor: type of user], I want [the feature], So I can [the goal of the feature].

Acceptance Criteria

Is your feature request related to a problem? Please describe. [A clear and concise description of what the problem is. Ex. I'm always frustrated when...]

Describe the solution you'd like [A clear and concise description of what you want to happen.]

Describe alternatives you've considered [A clear and concise description of any alternative solutions or features you've considered.]

Additional context [Add any other context or screenshots about the feature request here.]

User Story Bug Report

Describe the bug [A clear and concise description of what the bug is.]

To Reproduce

  1. Go to '...'
  2. Click on '....'
  3. Scroll down to '....'
  4. See error

Expected Behaviour [A clear and concise description of what you expected to happen.]


Software Version / Build

Screenshots [If applicable, add screenshots to help explain your problem.]

Additional Info [Add any other context about the problem here.]

These templates can be used to structure user stories and bug reports effectively, making it easier for development teams to understand, prioritise, and implement them.


User stories are a vital tool in agile development, allowing teams to prioritise and build features that address the most critical user needs. By following best practices and using templates like the ones provided, you and your team can write user stories that are clear, actionable, and focused on delivering value to the users and the business.

Related Articles