Hacker News new | past | comments | ask | show | jobs | submit login
Ask HN: How did you overcome perfectionism?
144 points by Anand_S on March 7, 2022 | hide | past | favorite | 128 comments
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?



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.


> 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.


> 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.


this is a terrible philosophy, and one of the reasons everything sucks


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.



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 set that image as my phone background for a constant reminder.


As you work on a project, you will slowly lose motivation without results. You can supplement motivation by changing the project slightly and adding novel little goals that can act like miniature projects to complete in order to have intermediate results. This is what we do naturally, and the process usually spirals out of control. Don’t worry about perfectionism. You need to set a goal that will give a reasonable guarantee that you will outrun your loss of motivation. This means you need to go FAST. Very fast. Neck breakingly fast and shitty. You need to stay entirely focused on exactly what the goal is, and this goal must be clearly defined. In some sense you have to sit down and plan perfectionism out of the way you write the goal. The faster you go, the less chance you give yourself to wiggle out of the goal and make the project more complex than it needs to be. YAGNI is basically the name of the game. Nothing abstracted beyond strict necessity, nothing engineered beyond the scope of the project, you need to engineer the very way you attack the problem. From personal experience, I slip into perfectionism when I lose motivation, and use it as a kind of procrastination. If you retain motivation, you will keep your eyes on the well-defined prize.

Finally, if you can help it, don’t work on projects that you can’t stay motivated for. If you’re doing a startup or research or something where the motivation is entirely internally generated, I think this is the way to do it. If you have a day job well, it’s way harder, and I empathize with you.


One concept clicked for me and changed everything -> In the future, I’ll know much more about the subject, so I should do the simplest possible solution now and revisit it as I become wiser. Basically, I can optimize this thing around my current understanding, or my future understanding.


This one really resonates with me.


I spend time making my perfectionist vision very clear. Diagrams, written descriptions, etc of what my perfectionist design would be for a given project. So I’m confident I know in detail what it would take. That scratches a lot of the itch.

Then I say “What could I do in X weeks that I can actually ship and that is a real step toward the first Y % of my perfect vision” and I execute on that. I make sure that I am actually building part of my perfectionist vision, not some hacky garbage, but just limited in scope to be achievable in limited time.

Inevitably, along the way I realise my perfect was mostly wrong so this is an iterative process. I refine and repeat.

But your perfectionism is not wrong - use it to your advantage! Just make sure you are also a perfectionist about actually executing your ideas and shipping something.


“ You know, the whole thing about perfectionism — The perfectionism is very dangerous, because of course if your fidelity to perfectionism is too high, you never do anything. Because doing anything results in … It’s actually kind of tragic because it means you sacrifice how gorgeous and perfect it is in your head for what it really is.” - David Foster Wallace [ https://fs.blog/david-foster-wallace-on-ambition-and-perfect... ]

The way I pull myself out of it, for any “medium,” whether it be art or technology, is that producing an artifact, no matter how imperfect or embarrassing, is better than a perfect idea that never makes it out of my head.


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


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") )


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.


how about the iraq war. that was timely and costly wrong decision


That's a bit disingenuous. Individual decisions != policy decisions. No government struggles with 'perfectionism'


"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")


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


That continent always wins lol;

https://en.wikipedia.org/wiki/Dingo_Fence


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.


It doesn’t say “always”.


The root of perfectionism is often a shame feeling that whatever you make will be judged harshly by others. The thought goes something like “well if I keep working on it forever then I will never release it and therefore I will never have to experience the shame of other people critiquing it“.

To help you release yourself from this line of thinking it can be helpful to imagine how you interact with other peoples code that they release. I’m guessing that most of the time you get really excited about other peoples code. Even if you have critiques or would have done it a different way. I’m guessing that the overall feelings that you have when other people release working code, either on your team or in open source, are mostly positive. Try to realize that that’s how other people receive your code as well.


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.


My hypothesis is that perfectionism results from spare, UNUSED BRAINPOWER. It is an indication that current challenge is not big enough to occupy your brain, so you keep going back and grooming the little things over and over again.

Take on bigger risks and set bigger goals for yourself. When your pants are on fire, your brain will not care about whether your shoelaces are tied or untied.

FAANG stability and cushy salary does this to a lot of other people I know.


At my first job I had a more experienced coworker, and I couldn't understand why he wrote code the way he did. Copy pasted stuff everywhere, never added abstractions, stuff was 30 lines when it could've been 5 and a base class.

Yaknow what? He got 10x the amount of work done that I did.

'perfect' doesn't mean 'pure, clean, never needing to be rethought', 'perfect' to him meant 'meets requirements'. 99% of the time, none of his code ever needed to be touched again and if it did need to be touched..it was easy and rote to update because it was easy to understand and simple to modify.

less is more, but the 'less' applies to abstractions, not loc.

Just because you CAN take something to the next level, or iterate one more time till it feels right, doesn't mean you should or that there's value in doing so.


I've worked with plenty of workers like this. They all got 10x work done in relation to everyone else, because no one else wanted to touch their stuff, they owned the branch and never made pull requests because it caused too many merge conflicts as they were sooooo fast at getting things implemented.

Their code was full of bugs which they fixed immediately, causing silent regressions. They never wrote tests.

The other 5 places they had copy pasted that buggy code still remained buggy.

Also whenever they spaghetti code themselves into a corner, they spent 10x longer refactoring stuff as a result.

In effect, it's not that they got 10x work done, it's that they make everyone else get 10x less done.


I too have worked with people like that. The marketing and PHBs love them because all they see is that they deliver 10x faster than the rest of the team (who, therefore, must be subpar and not very competent).

What they never realize is that when things break (and they will, when there are no unit tests, copy pasted code in several place, and inscrutable architecture that no one but the one who wrote it understands), it takes the rest of us 10 times as long to poorly fix/implement the new requirement.

Given enough time, the original 10x engineer moves on or quits, and all he’ll breaks lose because the department or company is left with a giant pile of turd that breaks whenever you look at it.


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.


Perfectionism is too short a label, and could be one or many of multiple underlying issues. Ultimately, you seem aware of the tendency, so ask yourself: why can't I do "good enough" and move forward?

Maybe the fear of actually doing something outweighs the costs of not doing it under the guise of making it better? Maybe something else?

I found Bezos's thoughts on decision making useful: understand if the decision is a two way door, and if so, move forward with 70% of the data you wish you had. Or 70% of the product, implementation, whatever.

See e.g. https://www.aboutamazon.com/news/company-news/2016-letter-to...


Psychotherapy (esp. CBT - cognitive behavioral therapy - and ACT - acceptance commitment therapy) has been very helpful to me to understand how this works. The fun part has been observing how a professional operates and the effects it can have on someone. So I jumped right into psychology studies. It’s fascinating. It helped me understand my behavior further. There are good introductory books such as « Happiness Trap » (this one is about ACT)

Then lots of reading and experimenting. Related thread (and great article from a fellow perfectionist) « Unlearning Perfectionism » https://news.ycombinator.com/item?id=30223559


"How did you deal with perfectionism?" "Well, I started therapy but that wasn't good enough so I became a psychologist and I'm looking for the ultimate solution for it"

Jokes aside, a better understanding of the need for time- and budget-limited solutions, as well as the realization of the maladaptive social origins of this issue have helped me control my perfectionism to an adequate degree.


Haha yeah, the joke’s not completely out of touch.

Fortunately it lead to a « good enough » understanding and mitigation state in my case. Quite similar to yours it seems!


This essay on the connection between perfectionism and procrastination helped me: https://web.archive.org/web/20111120152858/http://www.struct...

To whet your appetite, here is the opening line: "Many procrastinators do not realize that they are perfectionists, for the simple reason that they have never done anything perfectly, or even nearly so."


One of the things that helped me a lot was realising that software is never "done". There's always more to do. Take a look at the simplest tool from coreutils: true. It's git log spans over 22 years. So accept that there's no point where your project can be done (i.e. your ideal) and learn to love the process instead. As long as you're moving in the direction of that unreachable ideal and making progress you're doing well.

Software (like Art) is never finished, only abandoned.


> coreutils: true. It's git log spans over 22 years.

Now I’m really curious. What do you possibly need to add to it over the course of 22 years?


A lot of people here saying it's mostly about rejection, but in my case it can also be about someone becoming obsessed with my product or even indifferent to it. Maybe indifference is still a form of rejection somehow though.

The bigger thing I see for myself is the fear of not having control. Not knowing in which direction things will go. I think this happens to me a lot in life, where i want to be able to predict and know what will happen. When i think of this in software, i can go into hyperdrive because of how quickly and far software can scale—the multiplier effect on any imperfections.

I don't really have an answer at this moment for his to deal with it...what came to me in the last few days is that I would rather be more present and less perfect. When i try to be perfect, i tend to close off and hide until a big reveal, and throughout that time I'm not showing up with myself or the things I've made. Conversely, if i focus on being more present, I can prioritize showing up over showing up with the perfect thing.

I thought about this in the context of posting photos of myself online and to friends. I've gained weight over the last few years and don't feel very confident in how I look right now. And yet, many times, I'm just happy to see my friends, regardless of how they look. Maybe I have an initial shock at how they've changed, but that can quickly fade into "but I'm glad to see them." So I imagine this may work with products as well: the initial "hmm, why does it look/function this way" changing into "but I'm at least glad it exists and I have access to it"


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.


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.


Hi Anand,

"Wabi-sabi" - perfection in imperfection...

This can be as easy or difficult as you choose it to be. It's seems to me like you could you use a small dose of tough love. So here goes... If you really believe you can be perfect, then you're delusional. However from the quality of your question I'd be willing to bet you're not, so that begs the question, why do you insist on torturing yourself?

If you're a sucker for a pain then keep on.

If you want to be happy however, why not start by realizing or accepting that perfection is not necessarily what you seek but the learning on the journey while we attempt to reach that perfection is the true experience here. Enjoy the ride brother, life's short, smile, be happy, appreciate what you have and keep on keeping on.

You will not reach perfection until you realize you must accept being perfectly imperfect. And when you reach that place where you see your Wabi-sabi you'll be good to go.

I hope this helped in some small way.

Sincerely, Jean-Pierre

p.s.- if you want, checkout your cortisol levels (stress), thyroid and overall health for stress markers as it could possibly lead to serious issues if left unattended. You can go to a blood lab without having to visit a doctor for a prescription, just go to www.PrivateMDlabs.com (full disclosure, I'm the ceo there).


By realizing I could never live up to my own expectations, and that other people would be at best nominally impressed by my greater than nominal efforts. Basically I came to the conclusion that perfection is a waste of energy. However, taking pride in my own work & striving for excellence works well for me.


    Perfection is achieved, not when there is nothing more to add, but when there is nothing left to take away
    
    - Antoine de Saint-Exupéry
It's a great quote, and something to live by. When innovating, I iterate and build things piece by piece, often taking away more than I add.


There were two things that helped me overcome perfectionism. Well, probably more, but two that stand out.

One was getting focused on the purpose of my activity. I'm writing a letter to persuade X of Y. I'm writing documentation so users know how to do Z. I'm coding a module so the system can do W, which lets users do A and B. I'm patching this drywall so my house looks nicer. Then I can subvert whatever perfectionistic impulse comes my way. Maybe what I can do in the time I have, with the knowledge and skills I have isn't perfect, but it's better than what exists now. Maybe I can't write a full manual with screenshots, but I can at least create a Help page with a few bullet points--it's now better than it was, and that is progress toward achieving the purpose I set out after.

The other was having fun. Not necessarily at work or other tasks (I do have a friend that loves doing drywall; I do not feel the same!). But I found the more fun I had in life, the less hold perfectionism had on me. If I go throw a frisbee around with a friend, it doesn't matter if not every throw is perfect. It can be kind of fun to try goofy shots on a basketball court. What if I try playing a board game with a completely different strategy than usual? I might learn something, my friends or family might tease me, I might lose. Oh well. What if I try telling jokes and they fall flat? It wouldn't be the first time! Just having fun and enjoying the moment seems to keep me from focusing on myself, and that's a big part of it.

Come to think of it, being a parent (especially of small kids, because nothing is perfect in a house with small kids--wait, and older kids, because there's no way to keep older kids thinking you're perfect) helps too. And managing people (at work, or coaching a team, or coordinating volunteers), because in the practice of tolerating imperfections in others, I learned to tolerate them in myself, too.

And as I skim this over before posting, I realize that a lot of it is being less focused on myself. Easy to say. Tougher to do. And almost impossible to do when trying it.


I found this article insightful (was posted here a while back): https://arunkprasad.com/log/unlearning-perfectionism/


This helped me a lot as well!


The book 'The Toyota Way' and a book by Shigeo Shingo (helped develop the TPS) - 'Kaizen and the art of creative thinking' changed the way I think about completing tasks or achieving goals. While they are more based on manufacturing the lessons hold up well for any discipline. Basically, once you realise that everything has room for improvement (nothing is ever perfect!) and it's consistent small changes/improvements that make things better, it takes the pressure off trying to do things exactly right the first time. Treat tasks/projects as experiments, come up with a few hypothesis, pick one, do it and asses how it went and what can be improved or throw it away. At least you're getting stuff done and you might just end up with something better than you would by trying to force a perfect job/product from start to finish.


This may be the weirdest suggestion you'll get today, but if you like plants at all, try bonsai.

That is one of the most concrete lessons I've had on the consequences of continuing to fiddle with something instead of leaving it alone, observing, and planning for the next time it's appropriate to touch it. Most beginners end up loving their plants to death.

Since software is made by people, it has characteristics that could be seen as organic. You can kill it like a tree, or help it become what it wants to become with minor suggestions from you.


Perfectionism is just one tool in your toolbox. It can be favorite and strongest tool, but you also have to know when to put it down. It's not a compromise of your ideals to delay the ideal solution, as long as you are being rational about your reasons for doing it.

It's easier for me to put down perfectionism as long as I have a plan, or can see the plan, that I would use to move from the "good" solution to the "perfect" solution. Then I circle back to that plan when the problem needs more attention.


One method I’ve found: realizing that something I don’t like may simply be ripped out in its entirety at some point, and therefore I may be wasting time obsessing over its minor details right now. (And deleting hundreds of lines of an awful module later is a much better feeling than any amount of optimization beforehand.)

Also, I found that I tend to perfect only the things that I work on alone. As soon as anyone else is involved, you have to start worrying about things like not making difficult merges, and most perfections fall into the category of “PITA merge”. That grand 50,000-line code-reformatting that someone did will not really help, it will just come up again and again across 4 branches that they didn’t know existed, as each person trips over the same things. And I guarantee there is at least one tiny bug in that reformat somewhere. So don’t do it; keep things as close to what they were before as possible, pretty or not, for as long as it lives, unless you can be absolutely sure that there won’t be other branches out there.


Morning pages.

I first found the technique in the book The Artist's Way. Plenty of people have adopted it successfully to shut off the inner critic.

Basically the idea is you write a couple of pages every day without thinking about what you're writing. Something like stream of consciousness. If you don't know what to write just write "I don't know what to write" until something else pops up in your mind.


I have a OCPD (https://ivypanda.com/essays/obsessive-compulsive-personality...), so it could be a little different for you, but I’ve found it useful to challenge my assumption of “perfect” as the standard for everything I do.


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.


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


Lots of good suggestions in here for managing perfectionism. If you want to actually overcome it, you need to figure out what is making you a perfectionist and consciously address the thoughts and patterns that are driving those behaviors. You may have one or more parents that have held you to an impossibly high standard for achievement, that seems like a common theme.


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…


It depends on who is the boss/customer.

This is a multidimensional problem, and the only way out is to find concrete measurable aspects. Focusing on things you can measure is important as "perfect" is a limit point which may not be achievable, and you my have hidden problems that don't get revealed.

My personal strategy is to make forward process on execution to get to some E2E point, and then the goal is how to drive optimization. The customer is there to help you understand what is good enough.

It's important to master this skill because it is easy to get stuck in the mud, and getting something perfect now may not be so great later on.

I struggle with it as well, and I've suffered other peoples' definitions of "good enough". However, that suffering allowed me to retire early and now I'm suffering myself as the customer. I'm a cruel customer...


I just redefined technology as “something made by humans that barely works”

If you look at the stacks we build everything on top of, it’s insanely brittle and barely works. We simply lie to ourselves that it’s otherwise so we can get out of bed in the morning actually ship something that’s useful to another human being.

If you don’t believe me, look at the organization or source code behind the black box you’ve built everything on. By some miracle it works, but barely.

I’ve found the best book that describes this is “The Systems Bible” — https://www.amazon.com/Systems-Bible-Beginners-Guide-Large/d...

You’ll chuckle as you read it and learn to embrace the miracle that anything works.


Ship. Get feedback. Then do it again. Now some more times.

Perfectionism occurs due to a lack of information. You don’t know what “good enough” is so you err on the safe side. The more you put something in front of people and then talk to them about what they think the better calibrated you’ll be.


I think I have a strange answer: The only things that work for me are spite and a desire to not be a dick. I will not overcome perfectionism for my own sake, but wanting to model handling mistakes gracefully for junior colleagues/kids enables me to do it.

If I don't mess up, I can't fix it, and the world could really use more people who are willing to admit fault and work to repair mistakes. We all make them; I find lots of people with perfectionistic tendencies (myself included) hold ourselves to a much higher standard than others, so I just created a new impossible standard to meet that makes it possible to mess up, admit it, and move on. (Now the impossible standard is that I don't possess infinite grace about my mistakes, but...)


imho "perfectionism" itself isn't really a thing, it's a noble-sounding name we give to things that we're afraid to confront. Fear of looking foolish, fear of making other choices (and potentially choosing wrong), fear of finishing something (because as soon as you do, you open yourself to criticism / the uncertainty of the ship), etc etc.

Without knowing you personally, the strategy I suggest is to honestly think about what your perfectionism is. What's stopping you from stopping? "I need things to be perfect" is not an answer to this question, it's the smokescreen you throw up to stop yourself from asking harder, scarier questions about what this behavior is. Good luck!


Deadlines: perfectionism isn't an issue in itself, spending eternity achieving it, is. Pick a milestone (e.g. MVP of feature X) and a due date. Once you hit that milestone promptly, pick another and repeat.

On a different note, perfectionism can be a symptom of procrastination. It requires much less will power to fine tune an existing thing, than it is to start something new or work through early steps. If this is the case, then apply the usual anti-procrastination techniques: vow to put X minutes a day into a project in order to make it a habit and get the ball rolling; identify obstacles that are creating friction; re-think the design and simplify; breakdown the task to make it less intimidating; etc.


By separating who we are from what we do. Our jobs are our jobs, not us. Our projects are our projects, not us. Our perfectionism exists because we've been taught to define our worth according to how perfect something we create is. As such, separating ourselves from our creations is a step towards overcoming that perfectionism.

There are other things to consider: our attachment to other people's opinions, perceiving failure as a lesson and investment towards our success, knowing that perfect is the enemy of good, and so on. But that will naturally come when we remove our ego from our work and not give it power.


By shipping lots of horrible crappy code to production and observing the outcomes.


Whenever I'm trying get something perfect which is already in a working state, I remind myself that "cost of perfection is infinity". This helps me. Still I feel itchy when spotting an improvement and not doing it.


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.


By realizing that the programming knowledge is vast.

After realizing this, I realized that I am so far away from perfect. I'll just do my best to make the architecture somewhat future proof without writing unnecessary code.


Probably to consider a larger set of problems including the one you are trying to perfect, and solving that overall problem as best as possible. Your pursuit of perfectionism would result in a different approach taken because the flaws present themselves differently

Additionally, thinking about what else could be made improved or closer to perfect instead of what you are trying to do perfectly. What else could be improved? Is that more valuable? What would deteriorate in your pursuit of making something perfect?

It's hard, if not impossible, but at least worth considering.


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.


I just listened to a podcast this week regarding perfectionism: https://changeworklife.com/is-perfectionism-holding-you-back...

Some excerpts: - Don’t forget celebrating successes - 'done is better than perfect' - ‘if you're not embarrassed by the first iteration of your product, then you've shipped too late…’


Running my own business, I have fallen into this trap time and time again. What I’ve come to realize is that just because you care, doesn’t mean someone else cares. I’ve spent hours optimizing features, updating my website, etc, all for little to no return. If I took a step back and asked myself a few questions, I could avoid wasting time.

Does doing x save you time later?

Does doing x make you significantly more happy?

Will you regret spending time on x?

Does doing x help others?

Are there things more important than x that need to be done now?


Perfection isn't an interesting goal. Even if it were possible it's uninteresting, since it's not possible, it's wholly uninteresting. Transcendence, exceeding whichever limits of your choosing, is far more fulfilling, realizable and entertaining.

I empathize with perfectionism. I felt it strongly when I was young, and growing up with a family member consumed by it, I feel fortunate to have mostly left it behind a long time ago.

To answer OP's question, I sought out different goals.


Don't. Make use of it.

There is enough people that are comfortable compromising on quality. I decided, rather than to fight it, to find for myself a niche where being perfectionist pays off.


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 think perfectionism is rooted in a fear of rejection and ultimately a lack of confidence.

Exposure therapy can help.

So, practice intentionally shipping something with a missing feature, or intentionally getting rejected. Doing both of these things mindfully, noticing how uncomfortable it makes you feel.


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.


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.


Perfection is a matter of perception rather than absolute and likely this is where you struggle. Consider that perfection is relative. Your perfection might be another's imperfection.

Perfect the art of embracing the not perfect as being the perfection since perfection is ultimately a quantum state thus if you were to reach it, it will cease to be perfect.

Run this through your perfectionist mind and it should compile nicely.


I had to do something really complex with many pieces out of my control and I realized there is no way to deliver but to be pragmatic.

I also lived in an industrial farm while doing that project and I noticed many areas are incomplete and imperfect yet the farm is operational. It gave me a good metaphor on why large complex spaces will surely have imperfections everywhere, and it's okay.


Something is not "done" if it is not in production. So when something is in a constant state of development, nothing has been delivered, therefore nothing is done. I use this with my developers and it's moved the needle on development from large explosions of code and big changes to much average sized well tested chunks.


If you've got existing pain, eg. Operation burden, an imperfect solution now gets rid of a lot of that pain now, rather than continuing to be burdened til the perfect solution is ready.

If you can wait for perfection, you probably don't need to build it at all, and so you've already got your perfect solution - nothing


No, trying to be perfectism is a long term game. Anything else will fail eventually. They eventually fail because noone can handle/pay big enough tech debts.

It was my experience at most of my tech company where people rushed features with full of tech debt implementation.

Like a wise man said: think clearly before any action.


The thing is that perfectionism isn't smart. Instead, it's a mental illness called OCD.

It's also literally impossible to achieve perfection since you only approach the epsilon distance to perfection.

That's why smart people stay away from perfectionism, because wanting perfection is a mental illness.


I give myself a place and a time to explore and indulge it: namely weekend side projects. Sometimes this perfectionism yields interesting results, even stuff I can apply back to my more pragmatic day job. Other times I make no progress at all, and it’s a healthy reminder going into the next week.


People struggle with INABILITY to deliver perfect results.

Apparently the relief to this struggle is either moderate expectation of oneself or the perfect results.

I guess it’s impossible to deliver perfect results in highly uncertain endeavors like entrepreneurship. But it’s very possible to deliver perfect results as a craftsman.


For a given task, figure out two ways to do it: the perfect way, and the imperfect way. Choose the imperfect way. Once it's done, ask yourself if you regret getting it done the imperfect way, or if it's actually fine now that it's done.


I didn't. I just directed it in different directions. Same with everything: self-destructive tendencies, doomlooping internal thoughts or shame / guilt. Just redirect it, stop letting others control you.


overcome come perfectionism by doing more. important things will fall out of the cracks in the software. then you can focus on the issues that arise from the cracks. so simply put, if youre suffering from perfectionsim, youre not spreading yourself out enough, i.e. too narrow minded. this forces you to make mistakes and mistakes are sometimes good.


If it's interfering with your quality of life, it may be more than "just" perfectionism, it may be worth looking into whether there is some underlying cause that can be worked on.


See also recent HN discussion on "Unlearning Perfectionism".

https://news.ycombinator.com/item?id=30223559


I just don't have time for it anymore. Too much other stuff, and I try to restrict how much I work (i.e. not work on weekends). Given that, something has to give and it's usually perfectionism.


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. :-)


I assume I am below average, probably the best mental health advice I've seen on HN.

https://sive.rs/below-average


Walking in the woods and listening to Berne Brown audiobooks is good.


Understand once and for all that perfection doesn't exist!


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”


Time box everything. Make the calendar entries with the time allowed, and make sure the vast majority of the time you don't go over the allotted time.


In Brazil we have a saying: done is better than perfect (o feito é melhor que o perfeito). In terms of code, I write code that works and polish it later.


You see, my boss uses this exact quote almost everyday (brazilian as well), and now several teams have plenty of debt, missing patterns, stuff like this. These days people see this quote more like "something is better than nothing at all", and here we are, never satisfied with the engineering practices, always delivering something instead of delivering something good. It takes a cultural revamp to value good code from the beginning


Absolutely, do not use this as excuse to do something half-assed, but to create a prototype over a perfect plan / idea.


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.


Few realizations that helped me:

* Consistency is more important than perfectionism

* Perfectionism doesn't matter in most of the fields. Just being close to perfect is enough.


One day I hit 42 years old and just ran out of fucks.


I had kids.


Be concerned about being 'practically correct' rather than 'technically correct'.


Being on-call shifted my perspective. Good enough right now is always better than perfect next week.


I think if what I did imperfectly would bite me in the ass in 6 months. If not, I just let it go.


Fall in love with Picasso and you’re in!


you dont ... meditation helps your anxiety


>> How did you overcome perfectionism?

By being imperfect, I guess?


I always tell myself "finished, not perfect"


Deadlines, mostly.


I became perfect.


Set deadlines and just ship it...


I had kids.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: