# User Story

## User Stories

A user story is a short description of a feature or functionality told from the perspective of the user. It captures what a user needs to do and why.

<div data-full-width="true"><figure><img src="https://images.unsplash.com/photo-1542626991-cbc4e32524cc?crop=entropy&#x26;cs=srgb&#x26;fm=jpg&#x26;ixid=M3wxOTcwMjR8MHwxfHNlYXJjaHwyfHx1c2VyJTIwc3Rvcnl8ZW58MHx8fHwxNjg5NjU3Mzc3fDA&#x26;ixlib=rb-4.0.3&#x26;q=85" alt=""><figcaption></figcaption></figure></div>

### Writing User Stories

Some guidelines for writing good user stories:

* Start with:&#x20;

> *"As a \[**user role**], I want \[**goal/desire**] so that \[**benefit**]."*

* Write in simple, non-technical language focused on the user need
* Limit to small, distinct pieces of functionality that can be built in one sprint
* Use themes and personas to frame the user perspective
* Include just enough detail for developers to understand the scope

### Acceptance Criteria

Acceptance criteria defines the boundaries of a user story and what must be done for it to be accepted:

* Specified in bullet point form under the story
* Acts as input for test cases
* Includes functional, non-functional, and UX requirements
* Focuses on business and user value vs. technical details

### Grooming User Stories

The backlog is groomed through discussion of user stories:

* Assess clarity, dependencies, risk, assumptions
* Split or merge stories as needed
* Estimate effort by agreeing on story points
* Prioritize stories based on business value

This process ensures stories are ready for the team to execute in a sprint.

### User Story Lifecycle

User stories move through states of writing, grooming, sprint planning, implementation, testing, and completion based on acceptance criteria.

### User Stories in Agile &#x20;

User Stories, as their name suggests, center around the requirements and experience of users. As a result, they incorporate the first principle of the Agile Manifesto:

1. Our highest priority is to satisfy the customer through early and continuous delivery of valuable software.&#x20;

#### What makes a good User Story?&#x20;

User Stories evolve over time from vague, nebulous concepts into specific, well-articulated needs. A good way to assess whether a User Story is well defined is to use Bill Wake's **INVEST** mnemonic.&#x20;

The INVEST mnemonic encourages teams to ask the right questions of their User Stories or Product Backlog Items (PBIs). &#x20;

Your User Stories, as the table below shows, should be: Independent, Negotiable, Valuable, Estimable, Small, and Testable. &#x20;

### &#x20;INVEST

<table data-header-hidden data-full-width="true"><thead><tr><th></th><th></th></tr></thead><tbody><tr><td><strong>I</strong>ndependent </td><td>Independent of other User Stories, meaning they can be developed in any order </td></tr><tr><td><strong>N</strong>egotiable </td><td>Facilitate open conversation within the development team: changes to the User Story can be discussed and implemented </td></tr><tr><td><strong>V</strong>aluable </td><td>Bring value to user/stakeholder, adding overall value to the product  </td></tr><tr><td><strong>E</strong>stimable </td><td>Able to be estimated using the sizing criteria discussed, e.g., T-Shirt sizing or Story Points, allowing prioritization and scheduling </td></tr><tr><td><strong>S</strong>mall </td><td>Must be manageable enough to be developed in a single iteration, and not so detailed that ongoing conversation is redundant </td></tr><tr><td><strong>T</strong>estable </td><td>Should only be considered done once it meets agreed acceptance criteria that can be tested and validated </td></tr></tbody></table>

&#x20;

If your User Stories meet the INVEST criteria, then your team is set for success in its workflow management. &#x20;

## User Story Benefits &#x20;

User Stories offer a great number of benefits to development teams:&#x20;

* Stories ensure the team remains focused on the benefits for the user and the business value, ultimately developing a better product that is not only well built technically, but also brings real value to real users. &#x20;
* User Stories encourage and facilitate collaboration. With the focus on a team-wide discussion rather than on lengthy, written explanations of requirements, the team is freed up to collaborate, drawing on one another’s strengths and expertise. \
   &#x20;
* User Stories foster creativity. The team are encouraged to critically and creatively consider how to achieve the end goal.&#x20;
* Stories create momentum. The development team complete small, manageable tasks consistently as the User Stories pass through the workflow, offering a regular sense of achievement and creating pace.

<details>

<summary>Common Interview Questions</summary>

## What's a user story?

Me: A short 📝 description that:

✍ As a user 👤

I want some features ✨ To achieve a goal 🎯

Interviewer: Can you give an example?

Me:

👤As a user

📱 I want to bookmark articles

📖So that I can read them later

### Interviewer: What's the purpose of a user story?

Me: A user story:

💁‍♀️Captures requirements from the user's 👤perspective 📏Estimates scope from the user's goal

🎯Guides development toward user value

Interviewer: Why use AS/WANT/SO THAT format?

Me: By specifying:

✅ The user 👤

✅ The needed feature ✨

✅ The benefit 📈

Development 👩‍💻focuses on:

🔹Delivering user value

🔹Satisfying the user's goal

### Interviewer: What makes a good user story?

Me: It's:

✅Concise but descriptive

✅Focused on a single goal

✅Written in the user's voice

Not technical jargon 🗣 or UI details ✍

Interviewer: Any final thoughts?

Me: User stories help developers ☑️build the right things 🎯 by understanding the user's goal. They ensure features ✨align with real business needs 📈and create the most value📈. Simple yet powerful ⚡, effective user stories are key to Agile success 🏆!

### Interviewer: How do you estimate story points for testing?

✍️ Estimating testing efforts in Agile is always approximate 🧮 due to changing requirements 🔄 and dependencies 🤝. But some techniques that help are:

👥 Involve testers in planning and estimations

♻️Base estimates on past similar stories

🔢 Break down stories into tasks and estimate those

✏️ Write test cases before estimation

📝 Consider complexity, risk, edge cases, and non-functional aspects

➕ Add buffer for uncertainty

♻️ Adjust estimates as you gain more information

To keep estimates useful 📏:

🔄 Update them frequently

📈 Track actual vs estimated effort ♻️ Adjust for the next Sprint 🧠 Learn from past inaccuracies

Most importantly, use estimates to maximize value 📈, not for micromanaging 🙅‍♀️. As testers, focus more on prioritization, risk 📉 reduction, and delivering working tested software 👌.

</details>

## What are Story Points? 💡

**Story Points** are a relative measure of the effort and complexity required to implement a user story. They are used to estimate how much work can be completed in a sprint.

## Why Use Story Points Instead of Hours? ⏱️

Using abstract points instead of hours helps account for the **uncertainty** in estimating and the **varying capacities** of team members.

## How are Story Points Assigned? 📏

During sprint planning, the team plays **Planning Poker** 🃏 to estimate the size of each story using the Fibonacci sequence:

* `1, 2, 3, 5, 8, 13, 20, 40, 100`

The discussion and negotiation lead to consensus on the story point value.

## What Do Story Points Represent? 🤔

Story points represent the **overall effort** required to complete a user story. This includes:

* Design
* Development
* Testing
* Documentation

The focus is on the total effort, not just development time.

## How Are Story Points Measured? 📈

Story points have no specific numeric value. They are relative units of measure:

* A 5-point story requires five times as much effort as a 1-point story.
* A 20-point story requires twice the effort of a 10-point story.

## What is Velocity? 🚀

**Velocity** represents the number of story points the team completes within a sprint.

* Velocity = Total Story Points per Sprint

Velocity helps the team forecast how much work they can complete in upcoming sprints.

## Key Takeaways 📝

* Story points are abstract, relative units of measure for estimating effort.
* They account for uncertainty and varying team capacities.
* Velocity represents the number of story points per sprint and helps with forecasting.
