Product
MVP means minimum viable, not minimum care
How we define MVP surfaces with founders so speed doesn't become an excuse for fragile foundations.
Definition: An MVP is a minimal but trusted slice that lets a stranger complete one primary job on production infrastructure — so you can test retention, willingness to pay, and workflow fit. Minimum controls how much surface you ship; viable controls whether that surface earns trust.
Founders often hear “Minimum Viable” as permission to ship fragile software. But viable means trusted. If the first interaction breaks confidence, your hypothesis never gets a fair test.
When we shape an MVP with a founder, we cut surface aggressively — and raise the quality bar on what remains.
What MVP is actually for
An MVP is not a smaller version of the eventual roadmap. It is a focused instrument for answering a business question with real users on real infrastructure.
Typical questions look like:
- Will someone complete the core job without a sales call walking them through every screen?
- Will they come back a second time without us nudging them daily?
- Does the workflow match how they already work—or only how we wish they worked?
If the product collapses under basic use, you did not learn that the idea failed. You learned that the test was invalid. That is expensive confusion dressed up as speed.
The MVP quality matrix
MVP QUALITY — CUT SCOPE, NOT CARE
✕ Minimum care — avoid
- Fragile DB & missing error & empty states
- Huge feature list, all done thinly
- “We’ll add auth later”
- No logs, no health checks
- Rewrite-on-arrival architecture
→ Result
Invalid test — you learn nothing about the idea
✓ Minimum viable — our bar
- Typed, validated schema edges
- One or two core flows, done well
- Real auth from day one
- Basic telemetry & deploy health
- Boring structure that grows
→ Result
Fair test — hypothesis gets a real answer
Care ↑
| Minimal care (avoid) | Minimum viable (our approach) |
|---|---|
| Fragile database models | Typed, validated schema boundaries |
| Missing empty and error states | Clear guidance for every user-visible state |
| Huge feature list done poorly | One or two core flows done well |
| Deferred “we’ll add auth later” | Real auth (or a deliberate, safe constraint) |
| No observability | Basic telemetry and deploy health from day one |
| Rewrite-on-arrival architecture | Boring structure that can grow without a total rebuild |
Minimum is about how much surface you expose. Viable is about whether that surface can be trusted.
Ruthless scope pruning
FROM WISH LIST → SHIPPABLE MVP — 4 STEPS
- 01
Name the job
One sentence. One user. Three sentences = three products
- 02
List everything
Then move 80% to “deferred, no apology”
- 03
List states
empty · loading · success — failure · denied
- 04
Ship
User finishes job on prod
if a state has no design → not ready
Cut list — written down, not in Slack
- mustShip
- auth · core job · checkout · telemetry
- deferredForV2
- roles · themes · subdomains
Field note — Ankik (MVP ledger → SME product)
We did not need every report on day one. We needed a ledger path people use instead of the notebook — opening balance, clean entry, “where do we stand?” first. Reports came after trust.
Speed comes from cutting scope, not cutting care → smallest shippable surface, highest finishing rate
Speed comes from cutting scope, not cutting craft.
Minimum care looks like missing error states, no path for failure, and an architecture that forces a total rewrite when your second customer arrives. That isn’t speed—that’s high-interest debt.
A useful pruning conversation sounds like this:
- Name the primary user and the primary job. One sentence. If you need three sentences, you have three products.
- List every feature request. Move most of them to a deferred list without apology.
- For what remains, list states: empty, loading, success, failure, permission denied. If a state has no design, the feature is not ready to ship.
- Define “done” as a user completing the job on production, not as “the happy path works on my laptop.”
// A constrained MVP boundary written down—not implied in Slack
export const mvpScopeCutList = {
mustShip: [
"Core auth and onboarding flow",
"Primary user job execution",
"Stripe checkout integration",
"Basic audit telemetry",
],
deferredForV2: [
"Complex role-based permissions",
"Custom theme overrides",
"Multi-tenant custom subdomains",
],
} as const;
Writing the cut list is not bureaucracy. It is how you stop a week-three “quick add” from quietly becoming the new product.
A realistic cut: waitlist to paid pilot
Suppose a founder wants a B2B tool for scheduling field visits. The full vision includes maps, offline mobile, custom roles, AI route optimization, and integrations with three CRMs.
A minimum-care build tries to sketch all of that thinly. Users bounce; nobody knows which hypothesis failed.
A minimum-viable cut might ship only:
| Must ship | Why it earns a slot |
|---|---|
| Invite and sign-in | You cannot test retention without identity |
| Create a job and assign a window | The core job |
| Status updates the customer can trust | Without this, WhatsApp remains the real system |
| Payment or contract step for the pilot | Answers willingness to pay, not only curiosity |
| Error and empty states on those paths | Protects the test’s validity |
Maps, offline, AI routing, and CRM sync wait. Not because they are unimportant—because they do not answer the first question yet. When the pilot proves the job, those features attach to a product people already trust.
This is the same discipline we use across our builds: Ankik did not need every report on day one; it needed a ledger path people would use instead of the notebook. Retainix did not need every campaign type; it needed branch-safe earn and redeem that staff could explain at the counter.
MVP checklist — before you call it ready
We use this checklist before we call any slice an MVP. It answers the keyword behind this page — MVP checklist — quickly.
| Check | Pass means |
|---|---|
| One primary job in one sentence | A stranger can name the job after one use |
| MustShip vs deferred in writing | Day-14 scope has two owners and a date |
| Five states designed for each MustShip path | Empty, loading, success, failure, denied — no gap |
| Backups and restore story practiced once | You can answer “what if we lose this DB?” concretely |
| Secrets out of the repo, CI on every change | Small suite is enough; “hope and FTP” is not |
| Logging for “what happened for this user?” | Trace a single user’s journey without guessing |
| Deploy path that is not manual | Staging and production are separate and repeatable |
If one check fails, the slice is a demo, not an MVP.
We review this live at day 14 in how we ship in 28 days and price the gap in our cost breakdown. For the template, use our scope pruning guide.
Foundations that are not optional
“We’ll harden it after we get users” sounds rational until the first users are the ones who find the holes. A short list we treat as part of MVP, not as enterprise theater:
- Backups and a restore story you have practiced once
- Secrets out of the repo
- CI that runs on every change (even a small suite)
- Logging enough to answer “what happened for this user?”
- A deploy path that is not “hope and FTP”
These do not require a platform team. They require refusing to call a fragile demo an MVP.
What we deliberately leave out of many MVPs: complex multi-tenant customization, deep analytics suites, elaborate design systems, and AI features that do not change completion of the core job. AI is a material, not a product—the product is still the job.
How we run the conversation with founders
Partner engagements go better when the quality bar is explicit before the sprint:
- Hypothesis in writing — What will we know after four weeks that we do not know now?
- Scope contract — Must-ship vs deferred, with names on both lists.
- Quality contract — Which states and operational basics are non-negotiable.
- Weekly working software — Progress measured in usable paths, not slide updates.
- End-of-MVP decision — Kill, iterate, or expand—based on usage and learning, not sunk cost.
If a founder only wants the feature list done “somehow,” we are a poor fit. If they want a fair test of the product idea, minimum viable with real care is the fastest honest path.
Closing
A well-architected MVP answers a critical business question with real users on production infrastructure. Everything else can wait.
Minimum is a scalpel. Care is what keeps the patient alive long enough to learn.
Shaping a first release — or repairing an MVP that was rushed into fragility? Shape a Fair Test for Your Idea — or see how we partner on product builds. For how product ownership shapes our standards, read Products teach better than pitches.
OUR WORK

Book-Hotels-B2B
2026B2B travel agency platform with quote-to-invoice automation.

Ankik
2026Desktop-first accounting workspace for SMEs, 0 to launch.

Retainix
2025Multi-branch loyalty & cashback platform for petrol pumps & retail.
BOOK A CALL
Ready to turn your idea into a live product?
Schedule a 15-minute scoping call with Dhanji below. We'll discuss your scope, timeline, and tech strategy honestly.

