Ask HN: How did you overcome perfectionism?

144 points by Anand_S ↗ HN
I am Struggling with this from a long time and it has made my life hell. Would like to know what strategies you used to overcome it?

133 comments

[ 3.1 ms ] story [ 234 ms ] thread
The mantra, "A timely wrong decision is often better than no decision," has been helpful in my life.

(my own adaptation of Kelly Johnson's statement here: https://www.goodreads.com/work/quotes/97803-skunk-works (search for "wrong decision") )

how about the iraq war. that was timely and costly wrong decision
It doesn’t say “always”.
That's a bit disingenuous. Individual decisions != policy decisions. No government struggles with 'perfectionism'
If you are going to poke, does that mean you consider there to be a perfect war?
The Emu War would be pretty high on that list [1]. TLDR; the Australians lost a war to Emus.

https://en.m.wikipedia.org/wiki/Emu_War

In what way is this perfect, other than as a joke?
It’s mostly a joke but it did result in jobs and money being dispersed among poor farmers in rural Australia with zero casualties (human) and minimal emu casualties.

Plus Emus won so, for the Emus, this is perfect because it means they’ve never lost a war and there hasn’t been another one waged against them since! Plus, as Emus are notable for never once using a gun in war, it’s probably good as a case study for pacifist strategists.

"A timely wrong decision is often better than no decision"

Looks like you found the "often".

Avoiding perfectionism requires accepting flaws and failures. This requires keeping a sense of proportion about the impact of those flaws and the likelihood of those failures. Suppose you notice that your decision-making habits would work well for living a humble good life but would fail you if you were a head of state deciding whether or not to go to war. It is likely worth accepting that flaw because the likelihood of being in that situation without time to philosophically prepare is quite low.
When you say "wrong decision" do you really mean "bad outcome"? Be careful not to confound the two. (See "outcome bias")
There is no such thing as no decision; delaying a certain decision is a way of deciding it, and is always on time.
The one I've found helpful, somewhat similar, is that if you don't make the decision, the decision will be made for you.
But even that's not true, because you can consciously decide not to choose either one of several presented alternatives, with the full awareness and acceptance of what that means. Basically you can always add the default case, making it explicit, and explicitly choose it.

Sometimes it's other people that want you to think that there are only two (or however many) alternatives, of which you must choose one; and by not taking any of them, you can assert your own thinking.

Sometimes you just have a small input to some process that other people are controlling, which will proceed without your input. Sometimes in these situations you only have the illusion that you're making a real decision even if you pick one of the non-default choices you're presented with.

I think anyone asking this question really doesn't need advice from imperfect posters like myself.

Nonetheless, maybe realizing that "perfectionism" is a misnomer, since it doesn't optimize resource use for resolution of the problem? Maybe realizing that you are being inefficient, wasteful, and taking comfort in simple polishing, rather than looking for a true solution?

In other words, "perfectionism" for me was always a way to be lazy and take comfort in a false sense of doing a better job.

As Newton would put it - A lazy person in motion, remains in motion, and a force of will is needed to re-assess and pivot.

A common misconception is that working hard is hard. I find that to be completely false. I can lift weights to exhaustion, polish a car hood to exhaustion and get every little spec out, work on code I perfectly understand endlessly, etc. It's much more difficult to actually observe, pivot, and do the right amount.

Realizing there is no "perfect" helps. If you realize you'll never get there then you start to realize the diminishing returns the closer you try to approach.
I would say the biggest thing that helps me deal with perfectionism in my job is to ask for help once I realize it's blocking me.

Usually the help is very simple, like "help me break down this larger ticket into smaller tasks". It might only take them 15 minutes to do this, and feel like you're wasting everyone's time, but getting past the blocker is more important ultimately.

Whenever I start caring too much about something, I pull up the "pale blue dot" image (https://funnyjunk.com/The+pale+blue+dot/funny-pictures/52789...) and remember that I will die long before Voyager will make it even 10% to the next star. All of humanity, including us, is just a tiny speck in an unimaginably vast and uncaring universe. Some people find that terribly upsetting, but to me it also means freedom because nothing matters very much anyway.

So when you feel perfectionism exerting its insidious pull on you, zoom out and remember that "it is not that important".

I use the exact same mental image!

On the same theme, when I was a teenager my dad told me, in passing, to try to not to be the person caring the most about something. It has stayed with me since.

I set that image as my phone background for a constant reminder.
It's a modern day memento mori, but is a bit nicer than keeping a skull on your desk https://en.wikipedia.org/wiki/Memento_mori

I'm not to keen on motivating myself through nihilism, because I don't think humans are really supposed to work like that. When I start caring too much about something, I try and reevaluate my goals instead. e.g. what I think the good things in life are to me, and whether what I'm doing is genuinely going to get me there.

I think if what I did imperfectly would bite me in the ass in 6 months. If not, I just let it go.
Perfectionism can be a symptom of codependence. Codependence is a loaded word, but understand that many, many people struggle with codependence to some degree.

Us codependent personalities gain our sense of well-being based on what others think about us. So, everything has to be perfect because the prospect of rejection is very scary. I view a rejection of my work as a rejection of me to an exaggerated degree.

If this rings true to you, my advice is to find a good book on codependency or begin seeing a counselor and begin to understand yourself a little more.

We are wired to react to how others perceive us. I wouldn't call that codependency, which is a term that should only be used in substance abuse scenarios.
Codependency became broadly known in the context of relationships involving alcohol and substance abuse.

But it's definition is much broader than that. And, I would argue, much more common.

Break huge goals into smaller achievable ones and always make it a point to ship "something."

Not sure if that applies to your context but that's how I see it with building stuffs.

I keep coming back to the old Reid Hoffman quote: "If you're not embarrassed by the first version of your product, you've launched too late."

I also constantly remind myself that "perfect is the enemy of shipped".

A useful thing to remember is that you are the ONLY person that knows how beautiful the thing you were planning to build was going to be. What you've actually built is always going to be disappointing compared to the potential thing you had imagined.

No-one else has that context though. From someone else's perspective, you built a thing! If that thing is interesting or solves their problem, they couldn't care less what it would have been if it had matched your imagination of its full potential.

Most people never build or ship anything at all, so shipping itself is a big cause for celebration.

I consider myself a reformed perfectionist, having struggled with it for a long time. OP should take heart that perfectionism can be managed, and you can accomplish wonderful things.

Perfectionism has positive aspects, but only when you continuously work to direct those tendencies towards constructive ends. Left undirected, it can collapse in a paroxysm of endless refinement from which little escapes.

> "perfect is the enemy of shipped".

This is a key concept, although I find that a more negative emphasis helps me: I need to remind myself that overengineering is destructive. Not only to the shipped product, but to the unshipped product right before my eyes as well, as productivity and value added diminish towards zero. (Refinement and refactoring are not always net positive, because churn introduces bugs, and because models created without the input of actual users are usually ill fit.)

It is also helpful to involve other people — to talk to people regularly who are counting on you to finish something, to experience not only their appreciation but their expectations and their wants. Setting incremental deadlines for small gains, promising others that you'll meet those deadlines, and then fulfilling those promises creates a virtuous cycle.

Finally, I've had to accept that there are limits to the kind of environment that I can thrive in. I'm just not that effective when working on projects with poor engineering practices: failing CI, no documentation, chaotic version control, wildly unrealistic expectations. Some people can do great work under those conditions, and I can still function — but it doesn't play to my strengths so I try to avoid placing myself in such environments.

Fear is the enemy of the shipped. Perfectionism is a drive that keeps us shipping something better and better. Folks are happier that way too since they get to see all the snapshots on the road to perfection, which helps them understand how they too can create perfect things themselves. Plus it gives others the opportunity to be a part of that perfection. Like for instance upgrading a web framework so its password system uses pbkdf2 instead of salted hash. Then someone else comes along and strengthens it with bcrypt. Then another comes along and adds argon2. It's a great story.
this is a terrible philosophy, and one of the reasons everything sucks
> I also constantly remind myself that "perfect is the enemy of shipped".

That is easy to say as marketing first personality with access to money. In this case shipping anything is critical and you can fix it later.

As a bootstrapped technologist product quality is all you’ve got. If the product isn’t revolutionary then nobody cares and you won’t change their opinion. So, in this case you need to get it mostly right, because you won’t get a second chance at a first impression.

> I keep coming back to the old Reid Hoffman quote: "If you're not embarrassed by the first version of your product, you've launched too late." I also constantly remind myself that "perfect is the enemy of shipped".

Unfortunately, I believe that this philosophy is largely behind our current software being the shit it is. Seemingly basic features in absolutely fundamental softwares are broken or majorly suck (e.g. python package management, Intellisense for C++ in Visual Studio) and everyone is fine with it. One can only hope that releasing shit is the best we can reasonably accomplish and the alternative reality, where humanity takes time to release software products of reasonable quality, is just a pipe dream (because people are actually not capable of working that hard).

I don't think this quote is incompatible with a desire to ship high quality products.

The Reid Hoffman thing is about your initial launch. In my experience, until you've got real human beings using your thing you have absolutely no idea what it is you're even building: you could spend a full extra year working on features that no-one will ever actually use.

So getting early feedback is crucial. But that doesn't mean that, once you've figured out what people actually need, you should continue to be embarrassed by what you are building.

Laziness. Software is almost all bad and will be thrown away anyway. Get it working against happy path, solve for obvious bad paths, and move on.
Is it the need to be perfect or the need to be seen as perfect that is the issue?

As more and more is shared, I've seen my kids not want to try things simply because they see people doing the same thing amazingly well. The same people doing things so amazingly well don't necessarily share all the work and failures that went into getting there which is a shame and probably a better lesson then the end result.

I suppose it depends on which part of perfectionism is hurting you.

I struggle with starting. I think I can't accomplish the perfect result I envision so I find myself paralyzed and unable to begin.

To help with that I remind myself of the Pareto principle. If I can accept that I may get MOST of the way to my goal on the smaller portion of my effort, I can usually get started.

The next struggle is finishing things, running into barriers and deciding to start over instead of overcoming them, or moving on to a different project. I don't currently have strategies for that unfortunately.

It's hard to break these mindsets and habits.

> I struggle with starting. I think I can't accomplish the perfect result I envision so I find myself paralyzed and unable to begin.

I think you're on a similar note to my thought on this thread. As I've gotten older it's been less about perfectionism as a platonic truth, and more as "the greatest I can be" knowing that it won't be perfect.

That causes other problems, but does including trouble starting and finishing.

So my most recent method is "just read the book." And if I get stuck, to keep reading the book. It's when I put the book down or get stuck the book doesn't get finished. But at least if I finish a book I can always go back, and then I have one more thing accomplished even if it's not 100% and it's better than 10%.

I think "just do the thing" is the best advice I've ever gotten.

>> How did you overcome perfectionism?

By being imperfect, I guess?

Ah, but can I overcome it perfectly?

We'd be a lot better off if we ditched the concept of perfection and go with "perpetual improvement' instead.

When you go to heaven, you reach a state of perpetual improvement. :-)

Walking in the woods and listening to Berne Brown audiobooks is good.
There’s no perfect solution. ;-)

I’ve found that sharing my work actively as it is being created helps. I write a lot of documents that get delivered to the end user or customer and I now tend to share them really early as an rough “sneak peek”… once they’ve seen it “ugly” as a early work-in-progress I tend to be able to let go of my tendency to over refine the final version. It really focuses my work around “what is needed to get this good enough to work for you?” This doesn’t work for all clients or in all situations, but it can be really effective when it does.

I also keep notes on “how I would make this perfect later” . I almost never return to those “// Improve Me” comments, but it somehow lifts the weight just to acknowledge that I saw a thing that I could improve, and walked anyway because I wanted to eat dinner with my family that night. I suppose it’s a bit like like productivity confession…

When working on my side projects, I keep a notes file of “everything it could be/do/have” and that helps clear part of my brain and allow me to ship whatever the first one of those is. When I complete that, I can go back to the list, mark that one “DONE-“ and then decide to tackle the next one (or not).

Having the combination of a place to put the ideas and then see progress (via the DONE- prefixes) was helpful to me in (partially) tackling rampant perfectionism.

As a concrete example, this weekend I was working on a tracker for my old boiler (a 1950s cast iron atmospheric with a single stage burner, fixed temp limits, simple relay-based bang/bang control system) to guide my selection for the new system this summer.

The system could lookup the outdoor temp, humidity, precipitation and temperature forecast, track the gas meter, calculate the reset target, tell when various zones are calling for heat, figure out how long the burner ran, intercept and proxy/rewrite the thermostat calls for heat, log data to Icinga/DynamoDB, have a Grafana dashboard, do anomaly detection, have a 7-segment display, have a web interface, speak MQTT, be queryable by Alexa, etc. But the first thing it needs is a temperature sensor for the boiler, so I made a long list, but worked on that first. (Then OTA updates so I could update it without disconnecting anything. Then on a web interface so I could avoid building any other interaction methods. Then an SVG graph of the last hour of data, then…) I find “my task for the next 20-30 minutes is clear” to be super helpful.

Screenshot: https://imgur.com/a/VM7nD74

Im pretty good at avoiding perfectionism (that's a lie) but it's one of the reasons I hate front end work so much. I can literally toy with css forever and it completely drains me. I got to a point where I could make pixel perfect document reproductions in css 2 and at that point I could no longer stand looking at it. I managed to avoid working with it for the last ten years and have recently had to touch it again and realized I forgot everything about it and now even have a ha re d time relearning it. Trauma.
Perfectionism (for me) is a misalignment of my objective and the requirements for success. My solution is to retain my perfectionist drive but alter my objectives to better match the end-goal. This usually requires setting aside time for reflection. I can feel depressed during this process. But, achieving success in the end continues to lead to overall greater pride and happiness
Just the realization that whatever you are working on will eventually be replaced and will probably be gone in 25 years. Yes, I'm a Javascript dev.
Try to apply your perfectionism to the meta-game rather than each “move” in your current game. Usually perfectionism is an application of optimization along too few dimensions (quality) rather than actually striving for the big goals.
(comment deleted)
I went freelance.

In all seriousness though, shipping in order to eat is an amazing way to learn to balance done with “good enough that I won’t spend the next 3 months fixing bugs”