Skip to main content
Back to Blog
9 min read

How to scope an MVP so it actually ships in 12 weeks

The scoping mistakes that turn a 12-week build into a 6-month one, and the written artifacts that keep a project on the rails from week 1.

mvphiringpricing

Most MVPs that miss their launch date don't miss because the developer was slow. They miss because the scope was never nailed down in the first place. The work expanded the way vague work always expands — a feature per conversation, an integration per standup, a "while we're at it" per week.

This is the scoping process I use with clients to ship in 12 weeks or less. It's not fancy. It's written, boring, and effective.

The one rule that makes or breaks it

Everything you want in the MVP is on one page of text, before a line of code is written. If you can't get it on one page, you don't have an MVP — you have a product.

That's not a clever framing. It's a constraint. Ten features fit on a page. Fifteen don't. The exercise of cutting to ten is where most of the good decisions happen.

The one-page brief — what goes on it

Five sections. In this order.

1. The one sentence.

"A platform where [who] can [do what] so that [outcome]."

Fill those three blanks and the rest of the brief falls into place. If you can't fill them, the product isn't clear enough yet. Spend a week on that sentence before you spend anything else.

2. Three user flows. No more.

Pick the three flows that, if missing, make the product useless. Everything else is phase 2.

Examples from a real ticketing platform:

Three flows. That's the MVP. Account recovery, refund flows, invoicing, multi-organizer permissions — all important, all phase 2.

3. The single success metric.

One number. Not three. Not a dashboard.

"We'll know this worked if we have 50 paid events in the first 90 days."

The value of a single metric isn't measurement — it's decision-making during the build. Every tradeoff ("should we add X?") gets measured against that one number. If X doesn't move the metric, X is out.

4. The integrations that must work on day 1.

Stripe. Resend. Supabase. Sentry. Whatever your list is.

The discipline here: each integration on the list costs 3–8 days of real work including edge cases, webhooks, and the production failure modes nobody warns you about (I wrote about six of those for Stripe). A "small" integration doesn't exist. Every line item on the integration list pushes launch by a week.

5. The deadline and the reason.

"Launch by September 15 because we're demoing at conference X." "Launch by October 1 because funding closes and we want to show traction."

The reason is important. If the deadline has no reason, it's a wish, and wishes slip. If the reason is real (conference, funding, seasonal window), the deadline has teeth, and the scope gets cut to match.

One page. You can write it in an afternoon. If you need two afternoons, fine — but don't start the build until it exists.

The scope cuts that hurt and work

Founders come in with ten features they "need." The developer's job is to find the five that matter and cut the rest politely. Some cuts founders regret, most they don't. Here are the ones that reliably don't hurt:

The cuts founders don't want to accept but shouldn't fight:

The artifacts that keep scope honest after kickoff

The brief exists. Now: how do you keep it from growing in week 3 without you noticing?

Artifact 1: A written change-request doc, per change.

Any feature not in the original brief goes through a 5-line doc: what, why, which milestone it replaces or slips, new price if any, signed by both sides. Five lines. Not a novel. But written.

Most scope creep happens because a founder says "oh and also…" in a Zoom call and the developer nods. Nothing is signed, nothing is costed, and by week 7 the "also" bucket is bigger than the original MVP.

Artifact 2: Weekly Friday demo. Non-negotiable.

Every Friday, there's a staging URL you can open. You click around, you try things, you find the thing that's broken, and we talk about what ships next week.

This does two things:

  1. It forces the work to be shippable every week — not someday-finished-in-a-big-bang.
  2. It gives the founder a moment to see what's real versus what they imagined. Nothing cures feature creep like using your own product.

Artifact 3: Milestone invoices tied to demoable work.

Every 2-week milestone has a demo and an invoice. You don't pay if the demo isn't there. The developer doesn't work ahead if the demo isn't approved. Both sides have skin in the game.

The 12-week structure that usually works

A rough template, adjusted per project:

Weeks 1–2: Foundation. Repo, CI, auth, Stripe stub, database schema, staging deploys. You click around a shell. Nothing "feature-y" yet, but every rail is laid.

Weeks 3–4: Flow 1 (the most important user flow) end-to-end. Ugly but working. You can use it on staging.

Weeks 5–6: Flow 2 end-to-end. Flow 1 gets polish.

Weeks 7–8: Flow 3 end-to-end. Integrations (Stripe webhooks, Resend, whatever) get hardened.

Weeks 9–10: Polish. Copy. Error states. Loading states. The things that make a product feel like a product instead of a prototype. SEO basics. Lighthouse pass.

Weeks 11–12: Production deploys, Sentry wired up, launch checklist, content, last pass of bugs. Soft launch.

This shape flexes. If your flow 1 is complex (Stripe Connect with split payments, custom booking calendar), it eats more weeks, and something else gets cut. But the shape — foundation → flows → polish → launch — is reliable.

What actually blows up 12-week plans

In order of frequency from my own projects and what I've heard from peers:

The contract clauses that protect scope

If you're writing (or signing) a fixed-scope contract for a 12-week build, these clauses save you:

None of these are adversarial. They're the clauses that let both sides relax and focus on shipping.

The shortest scoping rule I know

If you can't describe your MVP in three user flows, one success metric, and five integrations — it's not an MVP yet. It's a dream. The work before the build is the work of turning the dream into a brief.

Most founders resist that work. Spending an afternoon writing a brief feels less productive than getting someone coding. It isn't. The afternoon writing the brief is worth 3 weeks of saved implementation. Every project I've shipped on time had a brief done before the first commit. Every project that slipped, didn't.


I offer a fixed-price discovery engagement (1 week, €2.5K) where I write this brief with you. At the end you have a one-pager, a scope document, and a fixed quote for the build. If the build doesn't happen, the brief is still yours to take to anyone else. Book the discovery call.