We set out with the best intentions: we want to be lean and agile, and we are going to put something out into the world that we are “slightly embarrassed by” and we’re going to pivot and iterate from there. Right? That’s how it’s supposed to work.

But in reality, stakeholders never, ever seem to remember what that agreed MVP was. They fixate on a roadmapping session from six months ago or have a visual design comp stuck in their head that shows three features that were agreed to be post-MVP items.

Why Does This Happen?

  1. Memory is Fallible: We can remember talking about something, and knowing it was important, but not remember that we agreed it was out of scope or budget.
  2. Stakeholder Tactics: Some stakeholders might want to squeeze as much as they can out of development teams. They might agree to a smaller scope initially, hoping developers don’t remember the negotiation, or they might be unethically disingenuous.
  3. Lack of Experience: Stakeholders might not have enough experience in product management or development processes. They see software as infinitely changeable and might not grasp why certain features were deferred.

How Can We Stop It?

  1. Do Everything Waterfall: Agile just might not be the best approach for first-time founders, especially non-technical ones. Having clear visual comps of EVERYTHING can ease them into the fast-paced world of tech businesses, though this has many disadvantages.
  2. Hyper-Organization Mode: Developers and PMs can track every decision meticulously. A “Git for decisions” tool would be ideal, where every choice branches out with roadmaps and budgets, showing stakeholders how their decisions impact the project. Without such a tool, a detailed decision journal could work as a good alternative.
  3. Selective Client Engagement: Developers might choose to avoid working with first-time, non-technical founders. For products like platforms, where the technology is integral, having a technically savvy founder is crucial. For tech-enabled services, like an app to schedule plumbing appointments, the tech isn’t the core value, so non-tech founders might manage better.

What Can We Replace “MVPs” With?

I’m not sure. We have to launch with something, and that should have some level of definition, but I have three ideas:

Idea 1. Time Based MVPs

Maybe MVPs should be time-based, like launching something after a set period, regardless of what we have. Launch dates could drive everything in this way. Imagine a 90 day launch window after design/discovery has been performed. Then you would have weekly sprints, where the stakeholders are hyper engaged for a short period of time. The theory here is that this focus would cut out all the need for the “who said what when” arguments and everyone would only work on what was needed.

Idea 2. The 5-feature Rule

This is something I’m making up (desperately) on the spot. Perhaps the way we should be working to MVP should have some over arching philosophy about what an MVP even is.

  1. Basic User Management: Ensuring the system can handle user registration, login, and basic user profile management.
  2. Payment Handling: If the application involves transactions, it must handle payments from day one. Keep it simple and avoid novel payment systems.
  3. Performance: The application must perform well on its main targeted platform, device, or browser.
  4. Core Value: It should offer one really interesting, killer, or useful feature to the user. That’s it. Just one.
  5. Baseline Analytics: Include basic analytics from day one to track user engagement and system performance.

Idea 3: The Walking Skeleton Approach

Another approach to replace the traditional MVP is the “Walking Skeleton.” This method focuses on creating a fully clickable interface, essentially a complete UI, built with code, before any underlying logic is implemented. Acting as a pre-MVP, the Walking Skeleton allows stakeholders to interact with the prototype, providing a tangible sense of the final product without the complexity of backend functionality. This method helps stakeholders learn agility by iterating on this version, refining the user experience, and understanding the project’s scope more clearly. Once the interface is polished and aligns with the stakeholders’ vision, features can be prioritized and integrated based on what needs to launch first. Building out the application this way could be a lower stakes method for learning collaborative development, but it also doesn’t throw the baby (or code) out with the bath water.

Conclusion

By simplifying the MVP to these core elements, maybe we can mitigate the confusion and ensure everyone is on the same page about what the initial product will deliver. I prefer to end my posts the same way ChatGPT does, with a positive conclusion. But today, I’m less sure I can do that. I’ve read countless books, articles, and posts on how to define an MVP. I’ve helped launch hundreds of tech companies, and I’ve launched a couple of my own as well. So why is so difficult to launch when working with well-intentioned, intelligent, well-funded, people who are going through this process for the first time? I’m going to at least try Time Based MVPs and my new 5-Features rule on my next two projects and see if that helps. Wish me luck.

Previous ArticleNext Article
I help companies turn their technical ideas into reality.

CEO @Sourcetoad and @OnDeck

Founder of Thankscrate and Data and Sons

Author of Herding Cats and Coders

Fan of squash, whiskey, aggressive inline, and temperamental British sports cars.

Leave a Reply

The State of AI-Coded Software, May 2025

I’ll probably regret writing this. At the very least, I’ll cringe reading it in a few months. But here we are.

Lately, we’ve been getting a wave of client requests asking us to evaluate software they built using AI tools. These aren’t engineers. These are business folks using increasingly powerful AI products to try and build functioning systems. And to be completely honest, the results are both impressive and a bit alarming.

People are building whole applications on their own. Backends, frontends, user interfaces, even some database logic. Sometimes they even look good. These are smart people who don’t know how to code but have managed to produce working systems.

The problems show up immediately when we start reviewing the internals. The code is usually a mess. In many cases, it would be extremely difficult to maintain or extend. And if you need to move that code from the platform it was created in to a cloud provider like AWS, you’re going to hit a wall. These platforms wrap everything in layers of scaffolding that make portability a nightmare.

Security is worse. We’ve found plaintext credentials scattered across files. We’ve seen SQL injection vulnerabilities that shouldn’t even be possible in modern frameworks. We’ve seen structural issues that would get flagged in a freshman CS class.

Despite all that, what people are creating are legitimate prototypes. They’re functional. They run. But when you’ve put a few weeks into building something, and you show it to a software engineer, it’s hard to hear that your shiny new thing needs to be rebuilt from scratch.

I want to be clear. I am not anti-AI. Almost everyone at my company uses AI tools every day. We use Copilot, Cursor, ChatGPT, Claude, and more. We build out frontends with tools like v0 and Lovable. These tools have changed how we work.

Some of our engineers report productivity improvements of 30 to 40 percent. That’s not a rounding error. That is a major shift. But they are still writing the code. They are reviewing it. They are checking for performance, clarity, security, and maintainability. They are not letting the tools decide architecture. They are using AI like they use autocomplete or linters, but with more power behind it.

This is also where expectations need to be adjusted. These systems will not save you 90 percent on development. They will not let you skip engineering altogether. But if they save you 30 percent, that’s a real gain. Imagine you’re building a house. The general contractor says it’s going to be $500,000. You tell them you already did the blueprints, filled out all the permits, and figured out the site plan using some AI tools. If they came back and said, “Alright, I’ll knock 30 percent off,” that would be the best deal of your life. That’s where we are today with AI-generated software. A solid start. A real value. Not a replacement.

For me personally, AI has made it fun to write code again. I haven’t been a working programmer in over a decade, and most modern toolchains are enough to scare me off. Now, with the right assistance, I can build something without getting stuck on Docker configs and dependency mismatches. That’s a big deal.

In the startup world, AI-first development is everywhere. Most of the current Y Combinator batch is using AI tools to write the bulk of their code. But those teams are highly technical. These are engineers using better tools, not tools replacing engineers.

So for non-developers using AI to build products, here are three things you should keep in mind:

  1. These tools are great for building prototypes. If you build something yourself, you will understand it better and will be a better partner to your engineering team. That matters.
  2. These tools can help you build usable frontend components. You probably won’t want to go live with them, but they can get you close enough to work with a real development team.
  3. If your app is small, non-critical, doesn’t store sensitive data, and lives entirely in its native platform, you can probably keep it running. That’s fine for internal use or personal projects.

One day, you’ll be able to speak an app into existence and deploy it with a voice command. It will be fast, secure, and beautiful. But today, you still need an experienced software engineer to check your work before you send real data through it. That’s just where we are right now.

The upside is huge. We can now get experts from other domains to build working prototypes and test ideas without needing an engineering team on day one. That’s powerful. But if your product is going to handle sensitive data or support real users, bring in someone who knows what they’re doing. Not because the AI is bad. Because the stakes are high.