← Back to Week 3 Hub
Workbook 3b — Exercise

User Stories — Hardware Store

Convert feature requirements into user stories written from a real user's point of view  |  Workbook p.20

The Exercise

You've been handed a list of eight requirements for a Hardware Store application. Your job is to rewrite each one as a user story — a short sentence written from the point of view of the person who actually benefits from the feature.

Every story must come from a real user of the system: a customer, a store owner, a cashier, an admin, a guest. Ask yourself: who actually uses this feature, and what do they get out of it? Some requirements will produce more than one story — the same feature might matter to a customer and a store owner in different ways.

  1. A customer should be able to search for a product.
  2. A customer should be able to filter the products list.
  3. A customer must be logged in to make a purchase.
  4. A store owner should be able to add new products.
  5. A store owner should be able to see a list of orders.
  6. We should be able to remove a product.
  7. We need to update product inventory.
  8. We need to print an Order Pick List for each order in the store warehouse.
The Template
As a <role>,
I want <action>,
so that <benefit>.
role = who action = what benefit = why
Example — Two Model Answers
Requirement 1 — customer search
As a customer, I want to search for a product by name, so that I can find what I need quickly.
Requirement 4 — store owner adds product
As a store owner, I want to add new products to the catalog, so that I can keep the inventory up to date.

Two done, six to go. For the rest, think about who the real user is first — then figure out what they want, and why they'd want it.

Watch Out — Anti-Patterns
Don't write "As a developer, I want to..." — that's a technical task, not a user story. Setup work like creating a project or wiring up a database doesn't belong in the As-a / I-want / so-that template. As a developer, I want to create the base project structure, so that I can start coding. That's a technical task. Write it as a plain to-do item on the board instead.

Don't write vague stories like "As a user, I want the app to be fast." As a user, I want the app to be fast, so that it feels good. "User" is too generic, "fast" isn't measurable, and "feels good" isn't a real benefit. Name the role, name the action, name the payoff.
Tips
Concepts You'll Use

Workbook 3b, p.20 — Exercise: Hardware Store User Stories

← Search Inventory (HashMap) GitHub Project Board (Exercise) →