Perfectionism and decision making
TL;DR: perfect solution often does not exist, don’t waste time looking for one.
I’m a perfectionist. Sounds good, but the fact is it doesn’t help at all in getting stuff done. Actually, it seems to me that today it’s more likely to stumble upon this term in negative context. You’ve probably heard that “better is the enemy of good”. Completely true.
Of course perfectionism is a good trait as well, particularly in engineering, and I’m happy to be one. I also like to work with this kind of people, but we need to learn how to deal with the negative aspect.
One area, where this kind of perfectionism yields its bitter fruit is decision making. There’s a decision to make, and I’m looking for a perfect solution. When there’s no perfect solution on the horizon, the decision gets delayed. And the delayed again, and again. You know it. Eventually someone else makes the decision, or the decision “makes itself”, because the alternatives go away with time. Precious time is wasted.
One thing that can help here is to realize that very often there’s just no perfect solution, at least when given specific constraints. And you’re just looking for something that might not exist.
Now let’s define “appealing solution” as one that’s not perfect, but is significantly better than other options and is clearly the best choice. This kind of solution might not exist as well! It often happens that none of the solutions is satisfying enough and you still need to pick one.
Math exercises in school often were supposed to result in a nice “round” number. When you ended up with a bizarre number, you knew you probably messed it up. But these were all contrived problems and the reality is totally different.
There’s yet another case which deserves special attention. There may be two solutions, both not perfect, both with certain tradeoffs, but in the same time both are just fine. And if you’re like me, you might be tempted to deliberate endlessly which one to pick, while both of them solve the problem satisfiably enough. What a waste of time!
TODOs: how this works in programming.