I wanted to talk about something that I learned but still finding it really hard to practice it myself. "Dont wait till its perfect". This is in the context of being an entrepreneur but I see it applicable everywhere.
The world is full of contradictions. There are people who preach contradictory statements. At times you are left wondering which one to follow. Today I am going to tell you - "Dont wait till its perfect". Firstly this contradicts with "build a great product". Well if you want to build a great product, you have to slog on it till its perfect. Doesn't that mean that you wait for the product till its perfect. Well its yes and no.
You should build a great product. You should try your best to build an amazing product that solves a real world problem. But then again you should not wait till its perfect. You will need to deploy it. Give it to the hands of real customers and ask them what they think about it. I know this is really hard for some of us, particularly the engineers turned entrepreneurs. We have been taught to see value in the engineering. We find it really hard to show a product that is not perfect yet.
Here is one case where I waited for it be perfect and totally screwed up.
Magic Karpet: Months were spend on building this project. Did this as a final year project at college. Wanted to use it to leverage my startup. I wanted to get some momentum out of it for my startup. Waited for it to have the best support content. Since I felt it was not perfect I did not talk about it enough. Now, 2 years since, its hard to talk about the project. It has lost its newness. Its just something that I worked on in the past. Today neither is it perfect nor did I get much mileage out of it. Couple of months back I put that on quirky.com and now I have it documented on my own website. You can find it below.
I should not have waited for it get perfect and deploy it. Here is why waiting for it to be perfect will screw it up for you too.
1) Most opportunity are time limited. There is a time in which you should make the most out of it. Some times it is explicit like applying for a competition. There is an obvious deadline. Sometimes the deadline is not so explicit. For example in the Magic Karpet case, I started forgetting details. I am not able to answer questions as effectively as just after completing it. Also the prototype degrades on use, parts gets salvaged for other projects etc and it comes to a point where the prototype is not in working condition for me to give someone a demo.
2) A lot of time you dont know what perfect actually means. You might thing that making it perfect means this feature, this article, this blog, blah, blah etc, but finally when you take it to people you realize that your definition of perfect was so very different from your target users definition of perfect. At the end of all the wait you still have a crappy product/project in the eyes of the people who you targeted.
3) You run out of enthusiasm. There are moments of inspiration, when you get a lot of things done. There are other times when you get nothing done. The longer you wait for it to get perfect with out outside feedback you run of inspiration and enthusiasm. When you see real people using your product, even if it is not perfect yet, you get more driven and inspired to perform, to perfect your product.
So what does all this boil down to? Aim for perfection, but dont wait for it to be perfect to show it to your target users. They will help you perfect your product. This however has a very real barrier. Your ego. You dont want to show someone a crappy product. You are scared that they will say bad about it. Thats something that you will have to overcome. There is no way out of it.
PS: Until now I have waited for the perfect thing to talk about to post the blog. Today is the day we ship. Today, the blog might not be perfect, but one day it will be..
Note a lot of these thoughts are reworded from Rework by Jason Fried.