MVP Development: What to Cut, What to Keep, and What to Ask Before Anyone Builds

You have an idea, a budget that feels tight, and a pile of advice telling you to build the smallest thing possible and get it in front of users. Most of that advice is right about the goal and quiet about what comes after. The guides that rank for MVP development walk through the same loop of building, measuring, and learning, offer a timeline and a price range, and stop at launch day, as though the codebase stopped mattering once the first users signed up.

It doesn’t, because somebody keeps building on it, and sooner or later somebody has to look closely at what’s inside. We’re often that second somebody. When a founder brings us an app some time after launch, we start by auditing the code, the infrastructure, and the deploy pipeline, and the problems we find usually trace back to decisions made in the first few weeks of the build.

So this guide skips the definitions and the price ranges and looks at MVP development from the other end: which cuts are safe to make, which ones come back to cost you, and what to ask a vendor before they write a line of code.

What an MVP means once you’re paying for it

An MVP is the smallest version of your product that tests the assumption your business depends on. That assumption is usually specific. It might be that a certain kind of customer will pay for a certain outcome, or that a workflow people handle today in spreadsheets will move into software if the software is good enough. The MVP exists to find out, with real users, before you spend money on everything else.

The definition tends to bend once money changes hands, because “minimum” quietly starts to mean “cheapest”, and those are different targets. The smallest version that proves your assumption might still need payments to work properly, because the assumption is that people will pay. It might need real permissions, because the product serves two kinds of users who must never see each other’s data. A version that skips those to hit a lower number is smaller, but it no longer tests the thing you built it to test, so you learn less from launching it.

A useful exercise before you talk to any vendor is to write the assumption down in one sentence and then list the features that sentence requires. Everything on that list belongs in the MVP, and everything else can wait, however good it looks in the mockups. Our post on mobile app development cost covers how that first-version decision moves a quote more than any other choice you make.

The cuts that save you and the cuts that cost you

Most MVP advice is about feature scope, and on that front you should cut hard. An admin dashboard can start as a few saved database queries, and notifications can go out by email before anyone builds push. Onboarding can be a call with you. The second user role, the reporting screen, and the settings page with a dozen toggles can all wait if the core assumption doesn’t need them, and leaving them out does nothing to make the product harder to build on later, because a feature you skipped is easy to add once you know people want it.

The cuts that hurt are the ones nobody lists as features, because they live underneath the product. When we audit an inherited codebase in its first week, the same findings come up again and again, and almost every one of them started as a reasonable shortcut during the first build.

The first is tests on the paths that handle money and access. Coverage in the apps we inherit is often near zero, and where tests do exist they tend to skip checkout, signup, billing, and permissions, which are exactly the flows that matter most. Without tests there, nobody can change those areas with confidence, so improvements stall right where they’d be worth the most.

The second is a deploy that depends on one person. If the only way to ship a release is for the developer who built the app to run steps that live in their shell history, you don’t fully control your own product. It’s one of the most common findings we see, and it makes every other problem harder to fix, because fixing anything means shipping it.

The third is basic security hygiene. API keys and database passwords committed to the repository, and dependencies left on versions with published vulnerabilities, cost almost nothing to avoid on day one. Cleaning them up later is real work, because by then every secret has to be rotated and anyone who ever cloned the repository still has a copy.

All three sit underneath every later change, so skipping them slows down each feature you add afterward, and none of them adds much to a first build when it’s planned from the start.

What to ask before a vendor starts building

Every one of those findings is something you can ask about before the work begins, and the answers tell you more about the codebase you’ll end up with than a portfolio does. These are the questions we’d want any founder to put to any vendor, including us.

  1. Who will be able to deploy this, and how? The answer you want is that deploys run through a CI pipeline anyone with access can trigger, with the steps written down in the repository. If the answer is that their developer handles it, ask what happens when that developer is unavailable.
  2. What test coverage do you hold yourselves to? Ask for a number, and ask which flows the tests cover. A concrete answer beats a paragraph about craftsmanship, and tests on checkout and permissions are worth far more than tests on the about page. We publish our own coverage standard, and any shop that holds one should be able to tell you theirs.
  3. Who owns the accounts? The code repository, hosting, domain, app store listings, and third-party services should be in your name from the first day, with the vendor added as a collaborator.
  4. If you disappeared tomorrow, could another team pick this up? Ask what documentation they leave behind, whether a second engineer will know the code, and whether they’d be comfortable with an outside team reviewing it. A vendor who expects another team to read their code someday tends to write it more clearly, whether or not that day comes.
  5. How do you handle secrets and dependencies? You want to hear that credentials live in environment configuration outside the repository and that keeping libraries current is scheduled as part of the work.
  6. What happens after launch? Find out who fixes bugs in the first weeks, who keeps the framework and libraries up to date, and how that ongoing work is arranged.

None of these questions asks a vendor to spend more on your project, since they only ask what the vendor already plans to do, and a good one will answer all six quickly. Our post on choosing a Ruby on Rails development company goes further into how to read the answers you get.

Building an MVP fast with AI tools

A lot of MVP advice assumes that speed and quality trade against each other, so a fast build is expected to be a messy one. That was closer to true when every line of code and every test was typed by hand, but AI-assisted development has shifted it. Writing a test suite, setting up a CI pipeline, and wiring a deploy anyone can run are now quick pieces of work, which removes most of the reason for skipping them.

What AI tools haven’t changed is the need for an experienced engineer to decide what gets built and to read each change before it merges. Generated code that nobody reviews is how a fast build turns into a fragile one, and the problems are harder to spot because the code usually looks tidy. We’ve written about how we use AI in our own development work and where review matters most. For a founder, the practical step is to ask any vendor how they use these tools and who reviews what comes out of them.

Done well, a fast MVP is a narrow feature set sitting on an ordinary foundation, with tests on the important flows, a deploy pipeline that lives in the repository, secrets kept outside the code, and dependencies that are current on launch day.

The fork after launch

Once the MVP is live and the assumption starts to hold, the pressure flips. Users ask for things, the features you cut start earning their place, and you want to move faster than you did before launch. What happens next depends on what’s underneath. On a sound foundation, new features go onto a codebase with tests, a reliable deploy, and code a second engineer can follow, so growing the product is mostly a matter of adding people and work.

On a codebase where the foundation was cut, the same moment arrives with a different set of problems. Changes to billing get avoided because nobody can tell what they’ll break, and releases wait for the one person who knows how to ship them. Before anyone can grow the product, someone has to stabilize it, and that work competes with the features your users are asking for at the moment you’d most like to move quickly.

This is also when founders tend to ask whether they need a rewrite, and usually they don’t. Nearly everything an audit turns up can be repaired in place, in priority order, while the product keeps serving customers. Our page on taking over existing products describes how that work is organized for teams already in this position. If you haven’t started building yet, the questions above are how you prepare for this fork while it’s still cheap to do so.

Where to start

If you’re planning a first build, start by writing down the assumption your MVP needs to prove and the short list of features it requires, then take the vendor questions above into every conversation you have. Our new products page walks through how we approach builds from zero, and if you’d like to talk through your scope before you commit to a vendor, book an intro call and bring whatever you have, even if it’s still a rough outline.