๐Ÿช„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.

Writing User Stories

Some guidelines for writing good user stories:

  • Start with:

"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

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.

What makes a good User Story?

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.

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

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

INVEST

Independent

Independent of other User Stories, meaning they can be developed in any order

Negotiable

Facilitate open conversation within the development team: changes to the User Story can be discussed and implemented

Valuable

Bring value to user/stakeholder, adding overall value to the product

Estimable

Able to be estimated using the sizing criteria discussed, e.g., T-Shirt sizing or Story Points, allowing prioritization and scheduling

Small

Must be manageable enough to be developed in a single iteration, and not so detailed that ongoing conversation is redundant

Testable

Should only be considered done once it meets agreed acceptance criteria that can be tested and validated

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

User Story Benefits

User Stories offer a great number of benefits to development teams:

  • 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.

  • 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. โ€ฏ

  • User Stories foster creativity. The team are encouraged to critically and creatively consider how to achieve the end goal.

  • 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.

Common Interview Questions

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 ๐Ÿ‘Œ.

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.

Last updated