27 Aug 2015, 07:40

Perfect is the Enemy of Good


Perfectionism can hurt your ability to accomplish your goals. It’s pretty simple, but the idea is that if you are a perfectionist, and you hold yourself to such a high standard that any sort of failure is unbearable then it will be very difficult to get things done, and you’ll likely be miserable.

When you strive to be perfect, and try to uphold a very high standard, you’re dealing in morals and virtues. Now, morals and virtues have their place, but it is not necessarily useful to hold ourselves to a standard and flagellate ourselves when we fail to live up to those unreasonably high standards. In this way, perfectionism is very similar to the problem of shoulds.

This is another idea that I have picked up from the book “Feeling Good”.

lake sunset


When you’re wanting to get things perfect, and organized in your head completely before you start, it’s easy to put off a task until you’re ready. The problem is that a lot of times, you’ll run into issues that you couldn’t have foreseen, and all that planning will be for naught. Not only did it wreck your planning, and your mental model, but you could have learned the same thing by starting earlier.


Whenever I start a new project, I have to choose the language, tools, libraries, and technologies that I’m going to use to do the project. This is sort of a fun excuse to poke around and learn something new, which is great. The problem comes in when I start thinking, “what if the project is successful, will this scale?” This turns out to be a dumb question to begin with, but also one that puts me into a mode of trying way too hard to come up with a perfectly engineered and beautifully designed system before I even start. This also tends to vastly increase the scope of my projects, which leads to me realizing how much time and effort will be involved in building them. Since the project balloons in scope and effort required, it’s easy to say, “well, I’ve only got an hour, there’s no way that I’ll be able to make progress on this in that amount of time, maybe this weekend.”

The projects that I remind myself up front that I don’t need to be perfect, I just need to start are the ones that actually get off the ground.


I’ve written before about the problem that I have noticed of junior developers coming in and wanting to re-write something from scratch, and this issue is related. I have been guilty of similar issues when coming back to look at code that I had written years prior. Sometimes I’ll have it in my head that it’s not perfect, and needs to be redone completely, so that it’s perfect. This does not usually lead to making progress on the task.

Doesn’t count

If you’re trying to lose weight, putting yourself on a strict diet, and you eat a bit of chocolate, or miss a workout, what happens? Does the day go out the window, and become a cheat day? Does it wreck your whole week? I’ve done that before.

For me, when I was trying to be really strict on a diet, and I slipped on a meal, it would usually turn that day into a cheat day. If I missed a workout, it could easily wreck the week.

If you allow yourself some small failures, but keep focused on the goal, it is much easier to stick to diet and exercise.


This post was overly-ambitious, preachy, sloppy, and I probably shouldn’t have written it. How do I delete this?

comments powered by Disqus