Skip to content

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.

Dhanji Bhagat

Dhanji Bhagat

Founder & Principal Engineer

6 min readUpdated
MVPproduct strategyfounder story

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 ↑

We keep this matrix on the wall. Minimum = how much surface. Viable = whether that surface earns trust.
Minimal care (avoid)Minimum viable (our approach)
Fragile database modelsTyped, validated schema boundaries
Missing empty and error statesClear guidance for every user-visible state
Huge feature list done poorlyOne or two core flows done well
Deferred “we’ll add auth later”Real auth (or a deliberate, safe constraint)
No observabilityBasic telemetry and deploy health from day one
Rewrite-on-arrival architectureBoring 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

  1. 01

    Name the job

    One sentence. One user. Three sentences = three products

  2. 02

    List everything

    Then move 80% to “deferred, no apology”

  3. 03

    List states

    empty · loading · success — failure · denied

  4. 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

Four steps we run with founders before any code — write the cut list so a week-three 'quick add' doesn't become the product.

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:

  1. Name the primary user and the primary job. One sentence. If you need three sentences, you have three products.
  2. List every feature request. Move most of them to a deferred list without apology.
  3. For what remains, list states: empty, loading, success, failure, permission denied. If a state has no design, the feature is not ready to ship.
  4. 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 shipWhy it earns a slot
Invite and sign-inYou cannot test retention without identity
Create a job and assign a windowThe core job
Status updates the customer can trustWithout this, WhatsApp remains the real system
Payment or contract step for the pilotAnswers willingness to pay, not only curiosity
Error and empty states on those pathsProtects 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.

CheckPass means
One primary job in one sentenceA stranger can name the job after one use
MustShip vs deferred in writingDay-14 scope has two owners and a date
Five states designed for each MustShip pathEmpty, loading, success, failure, denied — no gap
Backups and restore story practiced onceYou can answer “what if we lose this DB?” concretely
Secrets out of the repo, CI on every changeSmall 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 manualStaging 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:

  1. Hypothesis in writing — What will we know after four weeks that we do not know now?
  2. Scope contract — Must-ship vs deferred, with names on both lists.
  3. Quality contract — Which states and operational basics are non-negotiable.
  4. Weekly working software — Progress measured in usable paths, not slide updates.
  5. 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.

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.