A Practical Guide to Agile Part 7 (Discovery): Where Do User Stories Come From — From Problem to Story

A Practical Guide to Agile Part 7 (Discovery): Where Do User Stories Come From — From Problem to Story


Introduction

In the previous post we walked the delivery flow once around, from user story to release. The starting point of that flow was agreeing on the user story.

But try to follow it and you get stuck one step earlier. “Who writes that user story, and based on what?” Stories don’t fall from the sky. Before them is a step where you figure out what’s worth building, and the user story is the output of that step. Skip this upstream work and you ship a product that’s well built but nobody uses.

Part 7 covers the stretch right before Part 6. It starts at problem discovery and runs through research, hypotheses, and opportunities until a user story is born. If Part 6 was “build the thing right” (delivery), Part 7 is “figure out the right thing to build” (discovery). The picture that joins the two is dual-track Agile, and that’s what closes the series.

The target reader is someone who read Part 6 and is stuck on “so where does that user story come from.” This isn’t only the job of a PM or PO. A developer who wants good stories also needs to know how this upstream work runs.


TL;DR

  • A user story is the output of discovery — it doesn’t fall from the sky. It emerges only after problem discovery, research, hypotheses, and opportunities yield something worth writing down.
  • Start from the problem, not the solution — “add a social login button” is a solution; “users abandon signup” is the problem. Skip the problem and you just pile up features (the job a customer is actually trying to get done: customers hire a product to get a “job” done).
  • What you know is a hypothesis, not a fact — validate with qualitative (interviews) and quantitative (data) research. The Build-Measure-Learn loop is the engine of discovery.
  • You don’t break the big chunks down all at once — theme/initiative → epic → feature → story, slicing only the near-term work fine and leaving the far-off in chunks (progressive refinement).
  • Story mapping is the bridge between discovery and delivery — the horizontal axis is the user journey, the vertical is release slices. The first slice is exactly Part 6’s minimum viable product.
  • Discovery and delivery aren’t sequential — they run as dual tracks at the same time — discovery isn’t done once; what’s learned at release returns as the next problem.

1. Discovery vs Delivery — Dual-Track Agile

Discovery is the step of figuring out “what’s worth building.” Delivery is the step of “building well what’s been decided.” The user-story-to-release flow Part 6 covered was delivery end to end; Part 7 is the discovery before it.

Split into one line: delivery is “build the thing right,” discovery is “pick the right thing to build.” You need both. Do only delivery well, without discovery, and you ship a flawless product nobody wanted.

1.1 The Build Trap — Building Well vs Building the Right Thing

Skip discovery and a team falls into the build trap — mistaking “shipping lots of features fast” for success itself (Marty Cagan, Melissa Perri). Speed and output go up, but actual user value or business outcome stays flat.

The way out is simple: redefine success not by the number of features shipped but by the outcome those features produce. That requires confirming, before you build, “what problem does this solve, and for whom” — and that’s discovery.

1.2 Dual-Track — The Two Tracks Run at the Same Time

A common misconception is the sequential model: “finish discovery, then start delivery.” That’s just waterfall (Part 1). In reality the two tracks run at the same time. This is dual-track Agile (Jeff Patton, Marty Cagan).

flowchart LR
    P["Problem · opportunity<br/>(discovery)"] --> H["Research · hypothesis"]
    H --> V["Validated story"]
    V -->|"hand off only the validated"| US["User story<br/>(delivery)"]
    US --> BUILD["Dev · QA"]
    BUILD --> REL["Release"]
    REL -.->|"learned → new problem · opportunity"| P
Discovery trackDelivery track
QuestionWhat’s worth buildingHow to build it right
Deals withProblems, hypotheses, opportunities, experimentsUser stories, code, tests, releases
Does it end?Never (keeps exploring what’s next)Completes story by story
Part 6/7Part 7 (this post)Part 6

The crux is the dotted line joining the tracks. What’s learned at release returns as the next problem and opportunity, and discovery takes it to explore what to build next. This is Part 5’s inspect-and-adapt learning loop turning once more at the discovery level. Discovery is the process of admitting uncertainty (Part 1) and chipping away at it.


2. Start from the Problem — Don’t Jump to the Solution

Discovery’s first rule is to put the problem before the solution. The most common mistake in practice is flipping that order.

Solution jump:  "Add a social login button to the signup screen."
Problem first:  "Users abandon signup partway through. Why?"

Social login is a solution, not a problem. Define the real problem first (“signup abandonment”) and the solutions are many — fewer input steps, guest checkout, showing value first. Lock in a solution up front and all those options vanish.

2.1 Problem Statement — Nail It in One Sentence

So discovery starts with a problem statement — one or two sentences capturing “who, in what situation, what isn’t working, and what harm it causes.”

New users abandon during signup because there are too many fields,
and as a result we lose 40% of day-one active users.

There’s no “how” here yet. Deliberately so. The how is decided in Section 4 (opportunities and solutions).

2.2 JTBD — Customers Hire a Product to Get a Job Done

A lens that pushes the problem further into the user’s perspective is JTBD (Jobs to be Done). Its core thesis: customers don’t buy a product — they hire it to get a “job” done.

Clayton Christensen’s famous example is the milkshake. People don’t buy “a milkshake”; they hire one for the job of “something to make a boring morning commute bearable, that lasts a long time one-handed.” The competition isn’t other milkshakes but bananas, donuts, and coffee.

This lens is powerful because it strips away the solution trap. Instead of “a tastier milkshake” (solution), it makes you ask “how do I make a boring commute bearable” (the job). Part 1’s first value (customer collaboration over contract negotiation) works here — understand the real job the customer is trying to do first.

Caution: a problem statement and JTBD aren’t about transcribing “what the user said they want.” Users often speak in solutions (“please add a button”). Digging out the job or problem behind it is discovery’s work (“what were you trying to do with that button?“).


3. For Whom — Users, Personas, Research

Once the problem is defined, the next question is “whose problem is it?” A product for everyone easily becomes a product for no one.

3.1 Personas — Make the Representative User Concrete

A persona describes a representative user as a concrete, fictional individual. Not an abstract segment like “office workers in their 20s–40s,” but one person with a name, goals, context, and frustrations. It’s a tool that makes the team judge while picturing the same person (“would Jisoo actually use that feature?“).

3.2 Qualitative and Quantitative — Seeing with Two Eyes

A persona is also a hypothesis. Validating it takes research, and research splits into two axes.

Qualitative researchQuantitative research
AnswersWhy? In what context?How much? What percentage?
MethodsUser interviews, observation, shadowingAnalytics, funnels, A/B data
StrengthDepth of motivation and contextObjective scale and trend
WeaknessSmall sample, risk of overgeneralizingCan’t explain “why”

The two aren’t rivals but complements. Quantitative pins down where the problem occurs (40% drop at signup step 3); qualitative explains why (entering an address is annoying). Look at only one and you reach a half-baked conclusion.

The crux is simple — what we know is a hypothesis, not a fact. The moment you lock a meeting-room guess in as fact, discovery dies. Part 1’s spirit (real users in the field over documents in the meeting room) works here as-is.


4. What’s Worth Building — Value Hypotheses and Opportunities

With the problem and the users in hand, now you judge “so what’s worth building.” Here too, don’t jump straight to a solution.

4.1 Value Hypothesis and Build-Measure-Learn

When you decide what to build, it isn’t certainty but a value hypothesis — a claim to be validated: “build this, and this user’s problem is solved, producing this outcome.” Because it’s a hypothesis, you validate it, and the engine for that is the Lean Startup’s Build-Measure-Learn loop (Eric Ries).

flowchart LR
    H["Hypothesis"] --> B["Build<br/>(MVP · prototype)"]
    B --> M["Measure<br/>(data)"]
    M --> L["Learn<br/>(validate / refute)"]
    L -->|"next hypothesis"| H

This loop has the same shape as Part 5’s inspect-and-adapt loop. The difference is what it turns on: not “the quality of an already-decided product” but “the hypothesis about what to build.” The cheapest minimum that validates a hypothesis is Part 6’s MVP, and sometimes you validate with a landing page or prototype without a line of code.

4.2 Impact Mapping — From Goal to Deliverable

A tool that connects a hypothesis to a business goal is impact mapping (Gojko Adzic). Four questions join goal to deliverable in one tree.

StepQuestionExample
WhyWhat’s the goal?Day-one retention +10%
WhoWho influences that goal?New signups, referrers
HowHow do we change their behavior?Finish signup faster
WhatWhat do we build to do that?Fewer steps, social login

The value of impact mapping is that What (the deliverable) comes last. Features are derived backward from the goal (Why), not decided first with a goal pinned on after. It’s the opposite direction of the build trap (Section 1.1).

4.3 Opportunity Solution Tree — One Outcome, Many Opportunities, Many Solutions

A more exploratory tool for the same problem is the Opportunity Solution Tree (Teresa Torres). Under one outcome you hang several opportunities (user needs/frustrations), under each opportunity several solutions, and under each solution a validating experiment.

flowchart TD
    O["Outcome<br/>signup completion ↑"] --> OP1["Opportunity A<br/>too many input steps"]
    O --> OP2["Opportunity B<br/>no value felt before signup"]
    OP1 --> S1["Solution<br/>fewer steps"]
    OP1 --> S2["Solution<br/>social login"]
    OP2 --> S3["Solution<br/>show value first"]
    S1 --> E1["Experiment<br/>A/B test"]
    S2 --> E2["Experiment<br/>prototype interview"]

This tree is exactly what blocks the solution jump (Section 2). Instead of fixating on one solution, it lets you see at a glance that “there are several opportunities to reach this outcome, and several solutions per opportunity.” Compare, then pick the branch with the best value-to-cost ratio to experiment on.


5. Breaking Down the Big Chunks — Theme · Epic · Feature · Story

A validated opportunity or solution is still bigger than a user story. You break it down to story size in stages. The common hierarchy:

UnitSense of sizeExample
Theme / initiativeQuarter-to-half-year goal”Improve new-user onboarding”
EpicSeveral sprints”Shorten the signup flow”
FeatureOne or two sprints”Social login”
User storyOne sprint or less”As a user, I want to log in with Google”

An epic is a bundle of stories too big to finish in one sprint. Being too large, it fails INVEST’s Small and Estimable, so you split it into smaller stories before starting work. That splitting point is the entrance down into Part 6’s user stories.

5.1 Progressive Refinement — Don’t Break It All Down at Once

The trap here is “break everything down into fine stories up front and then start.” That’s a waterfall backlog — detail far-future stories in advance and you’ll mostly rewrite them because of what you learn in the meantime.

Instead, use progressive refinement. Refine only the near-term work (the next sprint or two) into fine stories, and leave the far-off coarse as epics and themes. Refining the backlog isn’t a one-time act but continuous, and it maps directly to Part 2’s backlog refinement activity.

Key: a backlog isn’t “a spec you fill out once and freeze.” It’s a living list — coarse at the top, finely refined at the bottom (the near-term). Same spirit as Part 6’s living policy doc — fixed, but not frozen.


6. Story Mapping — The Bridge from Discovery to Delivery

Stack the broken-down stories in a flat list and you can’t see “in what order, and how far do we bundle for a release.” The tool that fixes this is story mapping (Jeff Patton).

A story map lays out stories in two dimensions. The horizontal axis is the user journey (the order of activities the user does), and the vertical axis is priority and release slices.

flowchart LR
    A1["Browse products"] --> A2["Cart"] --> A3["Checkout"] --> A4["Track delivery"]

That top horizontal row is the backbone — the big activities of the user journey. Under each activity you stack the stories that make it up, in priority order, and you draw a horizontal line across to slice off “enough to ship this release.”

Release sliceBrowse productsCartCheckoutTrack delivery
MVP (slice 1)Keyword searchAdd / removeCard paymentCheck status
Slice 2Filter · recommendWishlistOne-tap payPush alerts
Later (Won’t yet)Personalized recsShare cartPay with pointsReturn request

Here it connects directly to Part 6. The top row (the MVP slice) is exactly Part 6’s MVP, and each cell within it is a user story Part 6 took as its starting point. Which stories to bundle as Must and ship first (Part 6’s MoSCoW/MVP) becomes, on a story map, the act of drawing one horizontal slice line.

A story map beats a flat backlog for two reasons. First, the user-journey context stays alive, so you see at a glance “can the user complete a full lap with this slice?” (the walking skeleton). Second, release slicing is visual, so “what first, what later” reveals itself in a single line.

Note: the first slice of a story map is “the most valuable minimum,” not “half of every feature.” Even if it’s shallow vertically, it must reach end to end horizontally (search → checkout → delivery) so the user can actually use it as an Increment — the same as Part 6’s “narrow, but done right.”


7. One Lap of Discovery — and the Connection to Part 6

Now connect all of discovery into one flow, and see how it hands off to Part 6’s delivery.

flowchart TD
    PROB["Problem · opportunity<br/>(JTBD)"] --> RES["Research · persona<br/>(qual + quant)"]
    RES --> HYP["Value hypothesis<br/>(Build-Measure-Learn)"]
    HYP --> OPP["Opportunity Solution Tree<br/>impact mapping"]
    OPP --> EPIC["Break into epics · features"]
    EPIC --> MAP["Story mapping<br/>(release slices)"]
    MAP ==>|"validated story → Part 6 starts here"| US["User story agreement"]
    US --> DEL["Acceptance criteria → dev → QA → release<br/>(Part 6 delivery flow)"]
    DEL -.->|"learned → new problem · opportunity"| PROB

Two things are key in this picture. First, the thick arrow is the handoff from discovery to delivery — the validated slice of the story map enters Part 6’s “user story agreement” box. Second, the dotted line returns what’s learned at release back to problem and opportunity. The two tracks mesh and turn endlessly this way (Section 1.2, dual-track).

Mapping each discovery step to the series concept it touches:

Discovery stepWhat you doConnected part
Problem · JTBDDefine the problem/job before the solutionPart 1 value (why · collaboration)
Research · personaValidate hypotheses with qual + quantPart 1 field-first · Part 5 learning
Value hypothesis · opportunityBuild-Measure-Learn, opportunity treePart 5 inspect-and-adapt loop
Epic · feature breakdownBig chunks → stories, progressive refinementPart 2 backlog · Part 1 simplicity
Story mappingUser journey + release slicesPart 6 MVP · MoSCoW
HandoffValidated story → deliveryAll of Part 6

The mapping says the same thing Part 6 did. Discovery isn’t something new either — it’s Part 1’s values (why, for whom) and Part 5’s learning loop working at the level of “picking what to build.” If Part 6 turned those concepts at the “building” level, Part 7 turned the same concepts once around at the “picking” level.


Recap

The essentials of Part 7, one line each:

  • A user story is the output of discovery — it doesn’t fall from the sky. It’s made through problem → research → hypothesis → opportunity → breakdown.
  • Start from the problem, not the solution — catch “the job the customer is really trying to do” with JTBD and you avoid the solution jump and the build trap.
  • What you know is a hypothesis, not a fact — validate with qualitative and quantitative research, and turn hypotheses with the Build-Measure-Learn loop.
  • Break the big chunks down progressively — theme, epic, feature, story; only the near-term fine. A backlog is a living list, not a frozen spec.
  • Story mapping is the bridge between the two tracks — horizontal is the journey, vertical is release slices. The first slice is Part 6’s MVP.
  • Discovery and delivery run as dual tracks at the same time — the discovery version of Part 5’s learning loop, where what’s learned at release returns as the next problem.

This truly closes the Practical Guide to Agile series. Starting from Part 1’s values, through Parts 2–3’s process, Part 4’s practices and measurement, Part 5’s scaling and fake Agile, and Part 6’s delivery flow, Part 7 filled in discovery — the starting point of every flow. If Part 6 was “from user story to release,” Part 7 is “from problem to user story,” and joining the two completes the full lap from problem to release. One thing remains — look at whether both tracks are turning together in your team right now, or whether only delivery is busy while discovery has stalled.


Appendix

A. Glossary

TermOne-line definition
DiscoveryThe step of figuring out “what’s worth building” — problems, hypotheses, opportunities, experiments
DeliveryThe step of “building well what’s been decided” — stories, code, tests, releases (Part 6)
Dual-track AgileRunning the discovery and delivery tracks at the same time, not sequentially
Build trapMistaking output (feature count, shipping speed) for outcome
Problem statementOne or two sentences on who, in what situation, what isn’t working, and what harm it causes
JTBD (Jobs to be Done)The lens that customers don’t buy a product but hire it to get a “job” done
PersonaA representative user described as a concrete fictional individual with a name, goals, and context
Qualitative researchResearch seeing “why / in what context” in depth via interviews and observation
Quantitative researchResearch seeing “how much / what %” objectively via analytics, funnels, A/B
Value hypothesisThe claim to be validated: “build this and this problem is solved, producing this outcome”
Lean Startup / Build-Measure-LearnValidating a hypothesis by building a minimum (MVP) and learning from measurement (Eric Ries)
Impact mappingA tree joining goal to deliverable via Why → Who → How → What (Gojko Adzic)
Opportunity Solution TreeA tree exploring solutions via outcome → opportunity → solution → experiment (Teresa Torres)
Theme / initiativeA large goal bundle at the quarter-to-half-year scale
EpicA bundle of stories too big to finish in one sprint
FeatureA capability smaller than an epic and larger than a story, at the one-to-two-sprint scale
Story mappingLaying out stories in 2D — horizontal = user journey, vertical = release slices (Jeff Patton)
BackboneThe row of big user activities along a story map’s horizontal axis
Walking skeletonA minimal working slice that goes thinly end to end across the journey
Progressive refinementRunning a backlog by refining only the near-term fine, leaving the far-off coarse
MVP (Minimum Viable Product)The smallest product that still delivers value and lets you learn (Part 6)
MoSCoWPriority classification — Must, Should, Could, Won’t (this time) (Part 6)
INVESTCriteria for a good story — Independent, Negotiable, Valuable, Estimable, Small, Testable (Part 6)

B. External References

Shop on Amazon

As an Amazon Associate, I earn from qualifying purchases.