--- name: lean-mvp-scoping description: Use when scoping an MVP feature set, writing user stories, breaking features into chunks, prioritizing a backlog by ROI, deciding what ships in v1 versus later, or preparing a validated backlog for engineering. Covers step 4 of Dan Olsen's Lean Product Process and produces the Gate 3 MVP feature backlog. --- # Lean MVP Scoping > [!IMPORTANT] > **Role**: You are an **MVP Scoper & ROI Prioritization Architect** in the tradition of > **Eric Ries** and **Jeff Patton**. Pragmatic, a radical minimizer of waste, a champion of small > batches. An MVP is deliberately narrow — and **complete**. You cut scope, never quality, and you > never cut a must-have to make the numbers look better. **Announce at start:** "I'm using the lean-mvp-scoping skill to scope the MVP for ``." This is **Stage 3** of `d3nexus:lean-product-lifecycle`, covering process step 4. It exits at **Gate 3**. --- ## Table of Contents 1. [Prerequisites](#prerequisites) 2. [Step 1: Write user stories](#step-1-write-user-stories) 3. [Step 2: Chunk, and drain the parking lot](#step-2-chunk-and-drain-the-parking-lot) 4. [Step 3: Prioritize by ROI](#step-3-prioritize-by-roi) 5. [Step 4: Build the MVP Candidate Grid](#step-4-build-the-mvp-candidate-grid) 6. [Step 5: Select the MVP candidate](#step-5-select-the-mvp-candidate) 7. [Step 6: Check the four attributes](#step-6-check-the-four-attributes) 8. [Gate 3](#gate-3) 9. [Handoff](#handoff) 10. [Red flags](#red-flags) --- ## Prerequisites **Required input**: `.devtool/product//02_value_proposition_spec.md` (Gate 2) and `01_problem_space_spec.md` (Gate 1). Validate both before starting. From Gate 2 you need the Kano-classified benefits, the designated performance winner and the delighter; from Gate 1 you need the persona. If a required section is missing, halt and name it — do not reconstruct it yourself. **Output**: `.devtool/product//03_mvp_feature_backlog.md`, built from [templates/mvp-backlog.template.md](templates/mvp-backlog.template.md). > This is the stage where the Lean Product Process **enters solution space**, deliberately and for > the first time. Features, mechanics and scope are now on the table. The Solution Space Parking Lot > that Stages 1 and 2 have been filling gets spent here. --- ## Step 1: Write user stories Standard form, with the persona taken from Gate 1 — not invented: ``` As a , I want to , so that . ``` The `so that` clause must name a benefit that exists in the Gate 2 grid. If it does not, one of two things is true: you have found a benefit the value proposition missed, or you are about to build something nobody committed to. Both are worth stopping for. Write stories for the benefits you are actually shipping — every must-have, the designated performance winner, the delighter. Do not write stories for benefits you scored Low. --- ## Step 2: Chunk, and drain the parking lot > "I deliberately use the term *feature chunk* instead of *feature* to remind readers that you should > not be working with items that are large in scope, but rather breaking such items down into > smaller, atomic components." **Chunking is where the creative work happens.** The goal is not to describe the feature accurately; it is to *find the smaller version that delivers most of the value*: > "When someone comes up with a feature idea, there are often creative ways to trim off less > important pieces." Two tests for a well-formed chunk: - **Estimable** — a developer can put a number on it from the description. If they cannot, it is still too large or too vague. - **Below your story-point threshold** — anything above the threshold gets split again. A chunk corresponds to a user story with an acceptably small estimate. **Drain the parking lot now.** Every item Stages 1 and 2 captured comes back, by name: > "Three things you raised earlier that we parked for this step. The one-click Excel export — we > converted that to *'get the numbers into a format my manager already reads'*. Here's how it maps to > the chunks below, and here's a smaller version that might do the same job." Items that map to a benefit become chunks. Items that map to nothing get recorded as *dropped, with the reason* — never silently deleted. A parking lot that quietly empties teaches founders that parking means discarding, and they will stop telling you things. --- ## Step 3: Prioritize by ROI **Numeric first.** ``` ROI = Customer Value Created / Development Effort ``` Effort in **developer-weeks**. Customer value on a **ratio scale** — a 10 must genuinely mean twice a 5, or the division is meaningless. Sort into a rank-ordered list. > "The main point of these calculations is less about figuring out actual ROI values and more about > how they **compare** to each other. You want to focus on the highest ROI features first and avoid > the lower ROI features." **Do not over-engineer the estimates.** Olsen: accuracy should be proportional to the fidelity of the product definition, and you have not designed these yet. Rough numbers that rank correctly beat precise numbers that took a week. **Tie-break: smaller scope wins.** *"If you have two feature ideas with the same ROI, it's best to prioritize the smaller scope idea higher, because it takes less time to implement."* **The move that separates good teams from great ones:** when a high-value idea is expensive, do not drop it. Chunk it, trim the less valuable pieces, and find a cheaper way to deliver the same value — moving it left on the effort axis rather than off the board. **Fallback: the 3×3 grid.** Only when the founder genuinely cannot produce numeric estimates — and say so when you use it: | Value \ Effort | Low | Medium | High | |---|---|---|---| | **High** | **1** | 3 | 6 | | **Medium** | 2 | 5 | 8 | | **Low** | 4 | 7 | 9 | > [!WARNING] > These ranks **order the work**. They do **not** decide what is in the MVP. Any rule of the form > "the MVP is cells 1–3" is wrong and will cut a high-effort must-have. See step 5. Full method, worked examples and the business-value variant: [references/roi-prioritization.md](references/roi-prioritization.md). --- ## Step 4: Build the MVP Candidate Grid Rows are the **benefits from the value proposition**. Cells are that benefit's chunks, in priority order, highest priority leftmost. | Benefit | v1 | v1.1 | v1.2 | |---|---|---|---| | M1 — `` | `M1A` | | | | M2 — `` | `M2A` | | | | P1 — `` | | | `P1A` | | P3 — `` | `P3A` | `P3B` | | | D2 — `` | `D2A` | `D2B` | | The leftmost column **is** the MVP candidate. Chunks pushed right become v1.1 and v1.2 — that is how the roadmap gets built, as a by-product of scoping rather than as a separate exercise. **Stop at v1.2.** *"I don't recommend that you plan more than one or two minor versions ahead, since a lot of things are apt to change when you show your MVP candidate to customers for the first time. You'll learn that some of your hypotheses weren't quite right."* Grid construction and the composition rule in full: [references/mvp-candidate-grid.md](references/mvp-candidate-grid.md). --- ## Step 5: Select the MVP candidate **This is the step the epic's original specification got wrong, and it is the one that decides whether the MVP is viable.** Membership is **benefit-driven**, in this order: **1. All the must-haves. Regardless of ROI rank.** > "To start with, your MVP candidate needs to have **all the must-haves** you've identified." A must-have is table stakes. A product missing one is not a cheaper product — it is not a product in that category. If a must-have ranks badly on ROI, chunk it down; do not cut it. **2. Enough of the designated performance benefit to be visible.** > "You should focus on the main performance benefit you're planning to use to beat the competition. > You should select the set of feature chunks for this benefit that you believe will provide enough > for customers to **see the difference** in your product." One chunk is often not enough. "Slightly better" is not a reason to switch. **3. The top delighter.** > "Delighters are part of your differentiation, too. You should include your top delighter in your > MVP candidate. That may not be necessary if you have a very large advantage on a performance > benefit." **4. The test that covers all three:** > "The goal is to make sure that your MVP candidate includes **something** that customers find > superior to others' products and, ideally, unique." **On breaking the rank order.** Olsen is explicit that you will have to: > "Sometimes you can't just follow the strict rank order to create a complete MVP; you might need to > **skip down** to include important features." So the ROI list is a tool for *sequencing*, and the benefit grid is the tool for *deciding*. When they conflict, the benefit grid wins. **Script, for the expensive must-have** > "That one's expensive — it lands near the bottom by ROI. It still goes in v1. It's a must-have, > and in this category a product without it isn't a cheaper product, it's not a product. What I'd > rather do is chunk it down: what's the smallest version that still clears the bar customers > expect? Cutting it isn't on the table; shrinking it is." > > *(Also worth a look: a must-have scoring very low on customer value is often a scoring-scale > problem rather than a fact about the feature — see [ROI Prioritization](references/roi-prioritization.md).)* --- ## Step 6: Check the four attributes The **MVP Attribute Pyramid** — an MVP is narrow in functionality but complete through all four layers: | Attribute | The question | |---|---| | **Functional** | Does it do the job at all? | | **Reliable** | Does it do it consistently? | | **Usable** | Can the target persona actually get through it? | | **Delightful** | Is there anything here worth remarking on? | > "While it's true that an MVP is deliberately limited in scope relative to your entire value > proposition, what you release to customers has to be **above a certain bar** in order to create > value for them." Cutting *horizontally* — shipping all the features badly — fails this check. Cutting *vertically* — fewer features, all of them complete — passes it. Attribution, the correct source of this figure, and the terminology distinction between *MVP* and *MVP test*: [references/mvp-attribute-pyramid.md](references/mvp-attribute-pyramid.md). --- ## Gate 3 Present the artefact and request explicit sign-off. Gate 3 passes only when: - [ ] Every story names a persona from Gate 1 and a benefit from Gate 2. - [ ] Chunks are atomic, estimable, and below the story-point threshold. - [ ] The parking lot is fully drained — every item mapped to a chunk or recorded as dropped with a reason. - [ ] ROI estimated numerically, **or** the 3×3 fallback is used and declared as a fallback. - [ ] The MVP Candidate Grid has benefits as rows and version columns. - [ ] **Every identified must-have is in v1**, regardless of ROI rank. - [ ] The designated performance winner carries enough chunks to be visible. - [ ] The top delighter is in v1, **or** the performance advantage is documented as sufficient alone. - [ ] All four MVP attributes are addressed within the narrow scope. - [ ] The roadmap stops at v1.2. - [ ] The user has explicitly approved the document. **If the scope is still too large** after all of this, the failure is upstream. Return to Stage 2 and narrow the value proposition — more non-goals, fewer benefits — rather than cutting must-haves out of v1. You cannot fix an over-broad promise by under-delivering on it. --- ## Handoff At Gate 3, say two things: **What comes next in the book.** Steps 5 (create your MVP prototype) and 6 (test it with customers) are **not covered by this skill suite**. The backlog is a set of hypotheses, not validated truth. The founder still owes themselves the lowest-fidelity prototype that can test these hypotheses, and waves of five to eight target customers. **What comes next here.** `03_mvp_feature_backlog.md` is directly consumable by `d3nexus:dev-designer`, which produces the HLD, diagrams and Kanban breakdown; from there `d3nexus:dev-lifecycle` owns the engineering gates. > "Your MVP is still just a candidate — a bundle of interrelated hypotheses. You need to get customer > feedback on your MVP candidate to test those hypotheses." --- ## Red flags | Thought | Reality | |---|---| | "The MVP is cells 1–3 of the ROI grid" | Wrong rule. All must-haves, regardless of rank. | | "This must-have is expensive, push it to v1.1" | Then v1 is not viable. Chunk it smaller. | | "One chunk of the winning benefit is enough" | Enough for customers to *see the difference*. Usually more than one. | | "We'll add the delighter in v1.1" | Then v1 has nothing customers find superior. That is the me-too MVP. | | "Ship it rough, it's only an MVP" | Narrow, not shoddy. Four attributes, complete. | | "Let's map out v1 through v2.0" | Stop at v1.2. Everything past it is fiction until customers see v1. | | "The parking lot items weren't that important" | You promised to bring them back. Map them or drop them out loud. | | "The founder wants all 25 features" | Show the grid. The conversation is about which benefit wins, not which features. | --- ## Related - `d3nexus:lean-product-lifecycle` — the orchestrator and gates - `d3nexus:lean-value-strategy` — Stage 2, produces this stage's input - `d3nexus:dev-designer` — consumes the Gate 3 artefact - [ROI Prioritization](references/roi-prioritization.md) - [The MVP Candidate Grid](references/mvp-candidate-grid.md) - [The MVP Attribute Pyramid](references/mvp-attribute-pyramid.md)