“Good enough is good enough. Perfect will make you a big fat mess every time.”
- Rebecca Wells

We claim to be perfectionists. But sometimes that’s not what we are. We only claim to be. We call ourselves a perfectionist only to give an excuse - “I wasn’t able to start (or finish), because I am a perfectionist”.

Saying perfectionism is the reason for your incapability to create something is BS. You wanted to do something and couldn’t get it done because you are a perfectionist? You might be jeopardising your success by doing so. This wasn’t always the way I thought. I was very keen on getting things right the first time. I found myself fiddling with the rough edges of my project and spending a lot of time trying to implement the best practices and design patterns. Tweaking and tinkering with the code and thinking about scaling and all that even before I had deployed the app somewhere.

This was a huge mistake and I had a backlog of unfinished projects within a folder in my laptop. Everything starts with a lot of enthusiasm. But in my effort to make things perfect, my ideas did not see light of day. it took me sometime to realise that rather than imposing perfectionism on my projects, I should’ve focused more on shipping them. Maybe they would’ve sucked initially, but I could’ve always imporved them. Let’s talk a little bit about how perfectionism can ruin your plans.

Absolute perfection is impossible

“If you look for perfection, you’ll never be content.”
- Leo Tolstoy

Achieving absolute perfection is impossible. We can hope make things that we think are almost perfect, but perfection itself is like speed of light. Scientifically unattainable. The following equation proves attaining light speed is impossible. The relativistic mass mv required to move an object of mass m0 to a velocity v is as follows, where c is the speed of light.

m_{v}  =  \frac{ m_{0} }{ \sqrt{1 - v^{2}/c^{2} } }

If you look at the above equation, it is clear that as the velocity of the object approaches the speed of light ie v -> c, the denominator tends to zero. That means the fraction tends to infinity. Infinite mass! That’s the catch, a mathematical impossibility. So this means, as you are getting closer and closer to the speed of light, it becomes harder to increase the velocity as ia apparent from the following equation relating force to the mass and change in velocity:

f = m \frac{dv}{dt}

As the mass is tending to infinity, the force also tends to infinity, making it impossible to accelerate an object to the speed of light.

This same principle applies to perfection. Going up from 80% perfection to 90% perfection required much more effort than going from 40% to 50% perfection. So if you have spent ten hours to make your project 90% perfect, you might end up spending ten more hours to take it to 98%.

Even the work you think is perfect, is only perfect in your eyes, but for the creator, it might be at 80 or 90% perfection. So, it’s all relative, pun intended!

Sugar coated procrastination

Okay now, it’s time to accept the reality. We all procrastinate. Even the best of time managers do find themselves procrastinating at various stages of their work. Some of us cover our procrastination with a coat of perfectionism try to convince ourself thinking that we aren’t able to deliver the project only because you are trying to make it perfect.

Prolonging your work in the name of perfectionism might feel like a good thing to you. But at the end, it all comes down to this - are we even shipping anything? We cannot improve on something we haven’t shipped yet. So focus on creating first. You can spend hours to get that perfect shade on the html button or getting the perfect SOLID pattern on that code you are writing. But unless you break out from being in a state of constant improvement, you’ll never be able to show the world what you built.

In my field of work, people tend to focus a lot on implementing the right framework or architecture even before starting a project. This clearly limits your creativity and you start thinking within the boundaries of the framework. Chart out the plan and use the right tools to get the project done rather than letting the tools decide what and how you want to build.

Idea matters, process comes later

If every time I had launched a side project which I have worked on, I would’ve been at a very different place in my life from where I am now. I constantly found myself focusing so much on processes and practices that getting the idea out took a backseat. I was worried about what people might think about the way I have done something that I wanted them to see myself as a perfectionist. I have spent time trying to find the best way to implement something and in the end got frusrated and left the side project unfinished.

Even softwares/services that make it big are never perfect in the first go. They release a beta version for users to test and give feedback and a version 1 might come many months later after constantly improving and iterating based on the experiences and requirements.

When you have an idea, try and find out a critical path through which you can get it out there in least amount of time. If you have had an idea for a product, sit down and write a list of functionalities that can get the product shipped as a version 1. That is called Minimum Viable Product or MVP for short. Find the technology that you are most comfortable with and start building. Don’t let someone tell you about scalability and other things as you start. You haven’t even reached a single user yet, you can start thinking about scalability when your app has attracted so many users that you need to re-think the architecture.

When Mark Zuckerberg launched first version of Facebook, I don’t think architecture and scalability were his primary concerns. He was in a race with the Winkelvosses and wanted to ship his product before everyone else. In that way he could capture the market before anyone else. We know what happened next. Facebook is one of biggest social media platforms and also one of the biggest companies in the world.

Now that it is a huge platform attracting billions of users, they surely need to think about scalability. But being a big company now, it isn’t hard for them to find resources who can get it done for them. So if you are just starting off, just do the bare minimum to get things rolling. You can always improve later on. Think about what minimum can you get to users so that they can start using your product. Build the rest around your MVP based on user feedback and your own ideas.

Ship it and then make it better

Always something imperfect is better than nothing perfect. Also how would you improve on something is you do not create it fearing imperfections. Always work gets delayed when you try to archive perfection. Do not set unrealistic expectations on yourself. It will disappoint you sometime down the line to think that you had all these skills and still could not put it into good use.

A tonne of imperfect work is what takes you to perfection.