I was working on a side project this week, and I ran into an all-too-familiar pattern: the more I thought about the technical requirements for this project, the bigger it grew in my mind.
I only want to build this for myself to see if I could be Customer Zero. But it derailed quickly. What started as “What is the core functionality I need to solve my problem?” turned into “I probably need a multizonal cloud database with zero-downtime guarantees ten years down the road…”
Why does this happen all the time? Why do we over-engineer projects even before we write the first line of code?
As a software engineer, I’m trained to see problems and edge cases. Either by education or experience, I live more in the future than I am living in the present. I see a choice of technology not just as an “enabler of something right now” but also as a “source of technical debt later.” A commitment to a specific dependency today could mean a lot of work a year from now when I will need to switch it out for something that can handle future demand.
And that’s when I paused. Future demand. I was already counting on future demand — before I had even validated the need for myself! My mind was already looking at the problems of a full-grown business, while I hadn’t even thought about how I would implement the features I’d need for myself.
Clearly, I was projecting too much.
But how much is too much?
Combatting Initial Analysis Paralysis
Once I understood that I was projecting fictional technical debt into an uncertain future, I started to look for the things I could be sure of.
First of all, when you build a prototype, either for yourself or for beta customers, there is a clear and limited amount of stakeholders. Right there and then, the people who have something to lose are you and, when present, your potential beta testers.
And that’s it. There is no one else. There are no employees, no future co-founders, no investors, no acquirers. Just you, right now, and a handful of interested prospects.
An MVP is a validation machine. It’s not your future product. Scalability is irrelevant for most validation prototypes. The whole point is to build something simple that can do the job “well enough.” You could likely validate most ideas with your test data hard-coded into your application.
Consider your MVP to be something you will likely scrap. A test version of the real thing. A fake version of your final product.
Long-term technical considerations for an MVP will lead to analysis paralysis. If you assume you will shape your codebase from the initial prototype to the final product without ever rewriting it, you are front-loading a lot of decision-making that lacks all kinds of data. What if you learn that your chosen data model doesn’t work for your use case? What if your customers have certain requirements that your initial database choice can’t satisfy? What if you learn that an adjacent problem is much more critical to solve for your audience?
So many what-if’s. All of which can only be answered by actually “leaving the building” and validating your assumptions in the real world—validations from which you will need to iterate and improve.
It is at that point that the other stakeholders enter the arena. Your future self as an owner of a functional business should only appear on your consideration horizon at the point where actual business is forming. Not when you are conceptualizing your MVP.
The thing I build today is not the product I will sell in five years. It’s a validation step, not the goal. If you understand your initial choices to be limited in time and scope, you can severely reduce your levels of analysis paralysis.
- Will this allow me to build something that is good enough for a few dozen people to test?
- Will this be reliable enough for what I want to show as a “prototype?”
- Is the MVP tech I choose cheap enough to be easily built?
- Can I quickly scrap this prototype and take the “lessons learned” with me?
These questions are practical and actionable.
Save the questions about multizonal high-availability and scalability for when you have validated that you’re building something that deserves those considerations.
Thank you for reading this week’s edition of The Bootstrapped Founder. If you like what I wrote about, please forward the newsletter to anyone you think would enjoy it too.
You can find my book Zero to Sold at zerotosoldbook.com. It is being sold on Amazon and Gumroad.
If you want to help me share my thoughts and ideas with the world, please share this episode of the newsletter on Twitter or wherever you like, or reach out on Twitter at @arvidkahl.
See you next week!
Warm Regards from Berlin,