How to escape perfectionism: the 100 steps analogy
There is one common pitfall many founders or indiehackers fall into when it comes to launching their product/startup: Perfectionism 🎯
Perfectionism makes you work on your product, believing that it's still not good enough for your customers, and that you should:
- add this new shiny feature that would change everything 🎁
- polish the design until it's so beautiful your customers won't resist browsing ✨
- clean the code until there is no bugs left, only clean code you would be delighted to see everyday 💻
This pitfall has been discussed a lot in all his different aspects by many successful entrepreneurs, indiehackers or developers, such as:
- Paul Graham in his essays
- Pieter Levels in his book on how to successfully be an indiemaker
- Dan Abramov on his article regarding clean code
But today, I'm going to give a simple analogy to understand why it's a common pitfall, and more specifically, why we try to escape perfectionism.
It was given to me by successful founder Francescu Santoni, back when I was working at mojo, a YC backed company.
100 steps to bring your customers' perfect product to life
Let’s assume the perfect product for your customers is ahead of you, in a definite distance of 100 steps. However, you don't know for sure where precisely (otherwise you would be able to guess the lottery and you wouldn't need to build a product 😉).
It means that the real perfect product for your customers is somewhere 100 steps in front of you, but can be anywhere in an angle of possibilities.
This angle represents each feature, design polishing and code cleaning combination you could do to reach the perfect product, and there is an infinity of that.
Each step will be an iteration on your product, but you can only confirm a step is correct if you actually ship it to your customers and it becomes live 🚀.
We will start by making only one step in any direction, and we ship it.
If customers are happy and/or KPIs move in the right directions, it means we are correct, and everything is fine.
But it's not really a big deal even if you're wrong.
Indeed, you can correct your direction pretty easily as you dont have much momentum in the wrong way.
Even in the worst case scenario where you went in the totally opposed direction in the angle, the amount of work to correct your path is still small.
If you move 50 steps ahead however looking for perfection, it becomes really hard to correct and go back on track if it proves wrong, because the distance between your path and the correct path grows at each step.
In the worst case scenario, it becomes the entire arc of the angle, which is quite big now.
Escape perfectionism to win time and improve quality
Although simple, this analogy describes very well how you should escape perfectionism. Each shipping is a validation you’re in the correct path, no matter how small the step is. Perfection for you is not the same than perfection for your customer, and the best way to remember that is every time you think:
- "omg, this product is damn simple, how can they make so much money with it?" (see RemoteOK compared to other job boards)
- "omg, this product is so ugly, how can they make so much money with it?" (see Zoom compared to the competition like Skype or Microsoft Teams)
- "omg, their code is so buggy, how can they make so much money with it?" (see Steam when launched with HL2)
Or phrased otherwise: The Best Is The Enemy Of The Good.
Finally, a product will never be perfect, beautiful or even complete enough. Your product will evolve with you, with your customer but especially with time.
Your customers need time to discover your product and to be able to tell if you miss a feature or if the background color is a big issue for them.
Experimental learning is key to escape perfectionism and update your product to fit with your customers.
Stop delaying your launch and show your product to your customers!