&Anindo Neel Dutta
HomeCase StudiesSpeakingBlogNotes
&Anindo Neel Dutta
HomeCase StudiesSpeakingBlogNotes
&Anindo Neel Dutta
HomeCase StudiesSpeakingBlogNotes
GO BACK
25th Jul, 2026

Scope You Kill on Purpose

MVP
Product
Consulting
+
+

The fastest way to wreck a short MVP sprint is to be agreeable.

A founder asks for team roles. You say sure. Then analytics. Then an admin panel. Then "just a simple AI chatbot on the side." None of those requests sound unreasonable in isolation. Together they turn a validation sprint into a soft rewrite of a Series B product.

I've learned to treat refusal as part of the product work. Not as attitude. As scope design.

If you cannot name what you are killing, you are not shipping an MVP. You are negotiating a wishlist in real time.

This post is the other half of How to Brief an Engineer for a 2–4 Week MVP. That one is about writing the cut list. This one is about defending it when someone tries to put the bodies back on the board.

Founders rarely ask for bad features

They ask for features that solve their anxiety.

What they feelWhat they ask for
"What if someone important tries it?"Polish, empty states, brand perfection
"What if a bigger company buys us?"Roles, SSO, audit logs, admin everything
"What if we look unfinished?"Feature parity with the market leader
"What if I can't operate this alone?"Dashboards, exports, settings for every dial
"What if the demo goes quiet?"A second surface: chat, mobile, marketplace

Those fears are legitimate. Building all the antidotes in week one is not.

Your job is to separate fear of looking incomplete from what must exist for a user to complete the core loop.

Refuse the feature. Ship the job.

A useful no is not "we don't have time." Time is always the weak reason. A useful no replaces the ask with something that still moves the bet forward.

They ask forYou refuse becauseYou ship instead
Full RBAC / five user rolesPermissions explode edge cases before you have usersOne role, or owner + member only
Custom analytics dashboardYou don't know which questions matter yetPostHog / GA4 + one or two tracked events on the core loop
Admin panelOps UI is a second productDatabase GUI or a scripted admin path for you
"AI across the product"Vague AI becomes a demo toy that fails in productionOne AI step that the core loop cannot live without
Mobile appTwo clients before one loop is provenResponsive web that survives a phone screen
Competitive feature checklistParity is not a hypothesisThe one workflow your competitor makes painful
Public marketplace / network effectsMarketplaces need supply and demand on day oneManual matchmaking or a single-player loop first
Notifications everywhereNoise before retentionEmail on the one event that proves value
Perfect onboarding tourTours hide a confusing productOne empty state with a clear next action
Billing with five plansPricing complexity before willingness to payOne paid plan, or manual invoicing until the loop converts

Notice the pattern. You are not deleting the underlying need. You are choosing a cheaper instrument that answers the same question.

RBAC asks: "Can more than one person use this safely?" Owner + member answers that for the first ten teams.

An admin panel asks: "Can we fix bad data without deploying?" A SQL console or a guarded script answers that until ops volume is real.

What this looked like on DocPilot

When I built DocPilot, the tempting scope was endless: collaboration, comments, version history, a proper admin, incremental GitHub regen, a design system that looked like a funded docs company.

The loop that mattered was smaller:

ingest source -> generate structured docs -> open them at a URL

So I killed the rest on purpose.

Killed on purposeWhat that protectedWhat shipped instead
CollaborationWeeks of presence, permissions, and conflict UIOne author completing the loop
Version historyStorage and product complexity around "which draft won"Regen from source as the source of truth
Full admin panelA second app for operators who did not exist yetDirect DB access when something needed a fix
Incremental GitHub regenDiff logic before the happy path was trustworthyFull regen on push to main
Fancy visual polishDesign rabbit holes before docs quality was provenStructured, usable pages

Those cuts were not aesthetic minimalism. Collaboration would have been fun to build. It also would not have answered whether auto-generated API docs were worth paying for.

The refusal made the three-week ship possible. The substitute made the product honest.

How to say no without becoming the villain

Founders hear "no" as "you won't build my vision." You need a third option in the sentence.

A pattern that works on calls:

  1. Name the job behind the ask. "You want teammates to work without stepping on each other."
  2. Refuse the implementation. "We are not building full roles this sprint."
  3. Offer the substitute. "Owner + member gets the first teams unblocked. We revisit RBAC when a real customer hits the wall."
  4. Write it down. If it is not in the cut list, it will return as a Slack message on day nine.

If you refuse and offer nothing, you sound like a blocker. If you accept and ship a half-broken version, you sound helpful while lighting the timeline on fire. The adult move is a smaller thing that works.

Soft nos that still blow the sprint

Some refusals fail because they are fake.

"We'll just knock it out quickly." Quick is how admin panels and notification systems are born. If it needs its own data model, it is not a knock-out.

"We'll make it configurable." Configurability is scope in disguise. Every setting is a product decision you deferred into the UI.

"Let's put a placeholder behind a feature flag." Flags are fine for unfinished edges of the core loop. They are not a parking lot for a second product.

"We'll use a library / plugin / AI to generate it." Tools reduce typing. They do not reduce product surface, support burden, or the need to design empty states, permissions, and failure modes.

If the substitute still requires designing a whole surface, it is not a substitute. It is the original ask wearing a hoodie.

When you should say yes

Killing scope is not a personality. Sometimes the founder is right.

Say yes when:

  • The ask is the core loop (billing if the bet is paid conversion this sprint)
  • Skipping it makes the product unusable for the first users you named
  • A hard external constraint demands it (compliance, existing customer contract, a partner API that is the product)
  • The substitute is dishonest (manual ops you cannot actually perform)

On DocPilot, GitHub webhook sync was one of these. The whole pitch was "push to main, docs update themselves." A version without that isn't a smaller DocPilot, it's a different, less interesting product. So it stayed in scope even though it added real engineering time, because cutting it would have killed the thing we were actually testing.

The test I use: If we ship without this, can a real user still complete the one action that validates the bet?

If yes, kill it or replace it. If no, it was never optional. Stop calling it a stretch goal.

Speed is a product decision

People like to describe fast MVPs as engineering miracles. Mostly they are not.

They are a sequence of uncomfortable nos, paid for with smaller yeses that still tell you the truth.

You refuse the marketplace and ship a single-player loop. You refuse the admin panel and ship a path you can operate. You refuse five roles and ship two. You refuse "AI everywhere" and ship one model call that earns its tokens.

That is how a 2–4 week sprint stays a sprint.

Not by typing faster.

By killing the wrong work on purpose, and shipping the job underneath it.


Related: How to Brief an Engineer for a 2–4 Week MVP · The Anatomy of a Production-Ready MVP · DocPilot case study

From theory to production.

Explore real-world technical execution and validation.

View case studies

Ready to accelerate your architecture?

Let's discuss your product engineering requirements.

Get in touch