mvp-product

User Stories in Agile: How to Write Features That Actually Get Built Right

A short, informal description of a software feature from the perspective of an end user, following the format: As a [user], I want [goal] so that [reason].

A user story is a short, informal description of a software feature told from the perspective of the person who needs it. The standard format is: As a [type of user], I want [some goal] so that [some reason]. User stories are the basic unit of work in agile product development. They replace long functional requirements documents with conversation-starting prompts that keep development focused on user needs rather than technical implementation details. Writing good user stories is harder than it looks. The format is simple; the discipline of writing stories at the right level of specificity, with clear acceptance criteria, sized correctly for a sprint, is a skill that takes practice. This guide covers what makes a user story useful, how to write stories for AI features, and how acceptance criteria turn stories into testable commitments. AI features present specific challenges for user story writing because the output is probabilistic rather than deterministic. A traditional story can define exact expected outputs as acceptance criteria. An AI story must define quality thresholds, edge case handling, and failure state behaviour, none of which have simple pass or fail conditions. The 'so that' clause in an AI user story is especially important: it keeps the acceptance criteria focused on user outcomes rather than on AI behaviour in isolation. For UK and EU product teams, user stories for AI features should also include acceptance criteria covering regulatory requirements: GDPR disclosure to users that an AI system is involved, EU AI Act transparency obligations, and FCA or NHS Digital constraints where applicable. SpeedMVPs writes user stories and acceptance criteria as part of the discovery sprint for every engagement. All stories and criteria are included in the delivery documentation. Fixed pricing from GBP 8,000, 2-3 week delivery from Hemel Hempstead.

What a User Story Actually Is

The 'As a / I want / So that' format of a user story is a template, not a definition. The value of a user story is not the sentence itself, it is the conversation it enables. When a developer reads a user story, they should understand who benefits, what they are trying to accomplish, and why it matters to them. The 'so that' clause is particularly important and often omitted: it explains the motivation behind the goal. 'As a user, I want to export my reports so that I can share them with my manager in the format they prefer' tells the developer more about what a good implementation looks like than 'As a user, I want to export my reports'. User stories are not requirements documents. They do not specify how something should be built. They specify what user need the feature should address. The how is the domain of the developer, constrained by the acceptance criteria. This distinction keeps stories at the right level of abstraction: they can be written by people who do not know the implementation details and reviewed by people who do not know the business context.

User Stories for AI Features

AI features present specific challenges for user story writing because the output is probabilistic rather than deterministic. A traditional user story for a search feature might read: 'As a researcher, I want to search our document library by keyword so that I can find relevant papers quickly'. The acceptance criterion is clear: search returns results containing the keyword. An AI-powered semantic search feature raises harder questions: what does 'relevant' mean, how relevant is relevant enough, what should happen when no results are sufficiently relevant? User stories for AI features need to address these questions explicitly. 'As a researcher, I want to search our document library using natural language questions so that I can find conceptually related papers even when they do not use the exact words I search for'. Acceptance criteria for this story must address: minimum relevance threshold, behaviour when no relevant results exist, how results are ranked, and what quality testing confirms the feature is working as intended.

Story Sizing and Sprint Fit

A user story should be completable within a single sprint, typically one to two weeks. Stories that are too large, sometimes called epics, need to be broken into smaller stories that can be independently delivered. The technique for splitting stories without losing value is vertical slicing: each slice covers the full stack, from UI to backend, for a narrower piece of functionality. Splitting by layer (build the UI this sprint, build the backend next sprint) produces stories that cannot be independently tested or demonstrated, which undermines the sprint review and delays feedback. Several techniques help identify when a story is too large: if the acceptance criteria list more than five or six conditions, the story is probably too broad. If the implementation spans multiple unrelated system components, the story is likely a mini-epic. If different team members would implement different parts of the story independently, it can probably be split. The goal is stories small enough to be demonstrable in a sprint review and large enough to deliver meaningful user value.

The Relationship Between User Stories and Acceptance Criteria

Acceptance criteria are the conditions a user story must satisfy to be accepted by the product owner. Where the user story describes what the user needs, the acceptance criteria describe in testable terms what the implementation must do to meet that need. Together, they complete the picture: the user story provides the why and the what at a user level; the acceptance criteria provide the what at an implementation level. Without acceptance criteria, user stories are open to interpretation: a developer might implement a feature that satisfies the story sentence while missing the product owner's actual intent. With acceptance criteria, there is a clear contract between what was agreed and what was built. The Given-When-Then format (Given some context, When some action occurs, Then some result is expected) produces acceptance criteria that are naturally testable, because each criterion describes a specific scenario and expected outcome.

Common User Story Mistakes

Several recurring patterns reduce the quality of user stories. Writing stories from the system's perspective rather than the user's: 'The system should validate email addresses' is a system requirement, not a user story. The equivalent user story is 'As a user, I want to be told immediately if I enter an invalid email address so that I can correct it before trying to submit the form'. Including implementation details in the story: 'As a user, I want the search results to be retrieved using Pinecone vector similarity so that...' puts implementation decisions in the story, which is the developer's domain. Solution stories instead of need stories: 'As a user, I want a dashboard so that I can see my metrics' assumes the solution (a dashboard) rather than expressing the need. The underlying need might be better served by email reports or inline metric displays. Story granularity mismatch: mixing epic-level stories with task-level stories in the same backlog makes sprint planning incoherent.

User Stories at SpeedMVPs

At SpeedMVPs, user stories and acceptance criteria are defined during the discovery sprint that precedes every MVP build. The product owner from the client side participates in story definition, ensuring stories reflect real user needs rather than assumed requirements. For AI features, we add AI-specific acceptance criteria including output quality thresholds, edge case handling, and evaluation test requirements. All stories are sized to fit within the delivery sprint, with epics split into independent slices during discovery. The story map produced during discovery becomes the primary scope document for the engagement: scope changes are managed by adding, removing, or reprioritising stories, not by informal conversations. This makes scope management transparent and protects delivery timelines. All stories and acceptance criteria are included in the handover documentation so the client has a complete record of what was agreed and what was built.

Frequently Asked Questions

Who writes user stories in agile development?+

User stories are typically written by the product owner, often in collaboration with the development team and users. The product owner is responsible for ensuring stories reflect real user needs and business priorities. Developers contribute to story refinement by identifying technical complexity and suggesting splits. Users contribute through customer interviews, usability testing, and support feedback that surfaces unmet needs. In practice, whoever writes the initial story draft should expect it to be refined in a backlog refinement session before it enters a sprint.

How do you write user stories for non-user-facing features?+

Infrastructure, performance, and security features are real product needs but do not fit the standard user story format naturally. One approach is to frame them from the perspective of a technical stakeholder: 'As a developer, I want error logs to include request IDs so that I can trace errors across services'. Another is to write them as system constraints attached to user stories: 'This authentication flow must complete in under 200ms and must not store plaintext passwords'. For AI-specific infrastructure work like evaluation pipelines, framing in terms of the team or product's needs is appropriate: 'As the product team, we need an automated evaluation run on every prompt change so that we can detect quality regressions before deployment'.

What is the difference between a user story and a use case?+

A use case is a more formal artefact from structured requirements engineering. It describes a sequence of interactions between a user and a system to achieve a goal, typically including preconditions, main success scenarios, and alternative flows. Use cases are more comprehensive and more formal than user stories. User stories are intentionally lightweight: they are conversation starters, not complete specifications. The detail that a use case captures in the document is captured in a user story through conversation with the development team and through acceptance criteria.

How many user stories should an MVP have?+

As few as possible to deliver the core value proposition and generate the learning the MVP is designed to produce. Most well-scoped MVP builds have 15-30 user stories at the sprint-ready level, representing 2-3 weeks of delivery work for a cross-functional team. Backlogs with 80-100 stories for an MVP almost always reflect scope that is too large to qualify as minimum viable. The discipline of cutting stories until only the essential core remains is the hardest part of MVP scoping and the practice that most directly determines whether the MVP delivers on time.

SpeedMVPs handles discovery, story writing, and delivery as an end-to-end service. You get a production-ready AI MVP in 2-3 weeks without needing to manage the agile process yourself. From GBP 8,000. Get a free consultation at speedmvps.co.uk

Get a Free Quote