Perfect is the Enemy of the Good

Jeff Derrick
12 min readApr 23, 2019

--

https://www.slideshare.net/Schamoni/perfect-is-the-enemy-of-good-how-imperfection-can-drive-innovation

You’ve probably heard this expression before. I’ve heard it so many times that it admittedly sounds a bit trite to my ears. But in my work I’ve found that you ignore this lesson at your peril, particularity when it feels like there’s never enough time to go around.

That said, I don’t completely agree with some of the writing on this topic, which often says that you shouldn't pursue perfection because it’s not achievable. Just because perfection isn’t achievable doesn’t mean that it shouldn’t be pursued. We shouldn’t ignore our desire for perfection, but we do need to harness it, as it can take thoughtfulness to both pursue perfection and actually make progress.

So, let’s start with a confession. I need to hear this message, so I’m writing to myself first and foremost. I want to do more writing, but it takes so much time. Every time I write a post it takes longer than I meant for it to, and that amount of time is a barrier, blocking me from starting the next post… I could argue that I’m not making writing enough of a priority, that I need to do less of other things to make room for it. And while that’s true, it’s not the entire reason that I don’t write more often, in fact it’s not even the most relevant one.

The biggest reason that I don’t write more is that I care too much about it being ‘perfect’ (well, not really perfect: no typos of course, and a well reasoned and cohesive argument, and lots of photos, and quotes, as least 1 reference to current events, and if I read over it just one more time then I’m sure that I can improve something else, maybe I’ll reorder those sections, and maybe a quick rewrite of that one, and am I writing too much in italics or in parenthesis??? Or not using enough emojis? 🥴😵🥴😵)

Thought: People won’t read my post if it’s not well written

Response: That might be true, but you know what they definitely won’t read? The other 5 posts that you’ll never write as you spent way too freaking long on this one…

So this is me trying to not care (too much) about a perfectly written post, here we go!!!

Go ahead, pursue perfection — but be ready to react when it stops (or even slows) your progress

I think what makes the ‘perfection problem’ so difficult is that pursuing perfection comes from a good place. In my job, if you’re not trying to constantly improve things for people, you’re probably working at the wrong place. But that desire to make things better can be a double-edged sword.

A couple of times in the past, I’ve mentally visualized a project that I’m working on as a hot air balloon, the goal being to get off the ground. Or more precisely, the getting the basket with all the stuff in it off the ground is the goal. The balloon and the heat-jet-thingy are the means (maybe the hours that you have to dedicate to the project, any political momentum that you currently have, money that you can use, etc.)

We pile our goals into the basket, first we put in what’s really important, at least ideally (but not always). Then a few more things that are nice-to-haves. And it really would be better of we did this while we’re at it. Oh and this other project is floundering, so maybe let’s see if we can attach this second basket to the balloon before we take off.

Too much in the basket? (https://rohrballoons.com/hot-air-balloon-trivia/parts-of-a-hot-air-balloon/)

What’s challenging is that those are not bad ideas, in fact, they’re great! If we’re not coming up with these ideas, our head’s not in the right place, we should be thinking about piling all that stuff in the basket. We’re thinking about how to make something ‘as good as it can be’ (or ‘perfect’). This is a good and important exercise, but we often have to put that aside, at least temporarily. Perfection is not where we should start, get that balloon off the ground first, focus on perfection later.

Your resources — are they your main limitation?

I an earlier post I argued that you should be conscious of what you’re optimizing for, making sure that where you’re headed is actually where you want to go. If you’re not careful, you can end up pursuing the wrong ends, even through good intentions.

I’ve found that a good first step to this is to think about your resources (and their limitations) for whatever you’re hoping to accomplish, as that can help bring into focus what you need to be optimizing for. Are your resources a major concern or issue for the project? That may seem like an obvious “yes”, but in some cases they may not be.

Imagine a very large company with hundreds of developers and they want to add a new feature on an existing platform. Immediate resource issues may not be their main concern, they might be more concerned with communication across internal groups, or documentation, or technical debt, or developing the application in a technology that will attract talent away from their rivals in the long term.

However, for me (and I would venture to say for many of us) resources are the #1 priority, there’s never enough of them: time, money, whatever. If that’s the case, we need to acknowledge this and act in a way that is consistent with this situation.

So how can we get more out of our limited time/resources. Or conversely (and thinking about it in this direction is key): How can spend as little time as possible working things that don’t matter, so that more of our time can go to things that do matter.

Take me and writing as an example, my behavior up to this point says that I’m prioritizing Quality over Quantity. That of course isn’t a bad thing, it’s a matter of degrees and priorities.

Asking myself this question:

“If I were to objectively look at the results of my writing and try to put numbers on my priorities implied by those results, what would those look like?” Here’s the unintended (and therefore scary) truth:

  • Quality (of each post): 95% importance
  • Quantity (number of posts): 5% importance

(this isn’t to say that the quality of my writing is all that great, just that I’m spending an awful lot of time trying to make the quality better)

“But wait”, I say in response, “those numbers are totally out of wack, that’s not what I want! Those might be OK if I were writing a NASA rocket maintenance manual, but that’s no good for what my constraints and goals are.”

Here’s closer to what I want it to be:

  • Quality (of each post): 80% importance
  • Quantity (number of posts): 20% importance

The 80/20 Rule

and yes, I totally manipulated those numbers to segway into the 80/20 rule…😊

Here’s the danger. I may look at those numbers and it might not seem like that big a deal — 95/5 to 80/20? So what? That won’t make a big difference. To which I am constrained to strongly reprimand myself: Wrong, Wrong, Wrong!!!

This is why I love the 80/20 rule, why it’s such a big deal, it gets at a very unintuitive truth:

It commonly takes 20% of the full time to complete 80% of a task while to complete the last 20% of a task takes 80% of the effort

(lots of places, including Wikipedia)

So while 95% quality to 80% quality may feel like a relatively minor change, a tweak in priorities, its effects can be massive, even orders of magnitude kind of massive. That last 15% of quality can cost you enormously. In my case, maybe I only post a few times a year instead of a few times a month.

This forces me to ask some hard but important questions:

What’s the point of my writing? Is it for me or others? Is the point of writing to be flawless? Is it to have an impact on the maximum number of people?

These are hard questions with no clear answers, but if I don’t engage with them at least a little, then I’m probably doing the wrong things: Spending too much time perfecting things that don’t matter very much to me, while leaving undone other things that I value greatly.

Psychological Effects on Productivity — Momentum and Impact

Before moving on to what to do about the ‘perfection problem’, there’s one more piece that I think is too often overlooked, the psychological importance of “momentum” and “impact” in tasks or projects.

I’ve often thought about how strange it is that 1 work hour in the week might have no relation to another work hour in the week in terms of productivity. To put it another way, if you could grab your most productive hour from the week, and replicate it 40 times, you’d probably be insanely productive.

Much of this of course comes down to mental energy, you’re simply never going to be ‘fully productive’ every working hour, it’s just impossible. But for myself, a big component to how productive those hours are is entirely psychological. “Momentum” and “impact” are big deal in my productivity. If I can feel like things are moving in a positive direction and what I’m doing is having an impact, it’s much easier for me to summon the energy to do the tasks needed to get that balloon (and basket) off the ground.

What to do?

So I’m (perhaps overly 😎) fond of saying things like “There’s no free lunch” or “There’s no silver bullet to that problem”. But at least in this case, I’ve actually found that there is a strategy that can make a huge difference with the ‘perfection problem’. If there is a silver-bullet, this is it:

Solution: Phase, Phase, Phase

Surely you say, phasing projects can’t make that big a difference. Honestly, I’d have agreed with you earlier in my career. But I’ve seen many projects initially fail over years, and what’s ultimately pulled them out of from being stuck in the mud is usually not some new, bigger, or better product or technology (we love new technology in my field, don’t we all!) but a different approach to the problem, breaking it down into smaller outcomes, each an improvement over the last.

It’s not as sexy as a bright, shiny new piece of tech that will magically make all your problems go away (actually, never mind, it never does this). And you less often have that moment of flipping a switch — that wonderful “it was bad and now it’s great, let us all pat ourselves on the back and 🙌🎉🎈!!! moment. But aggressively phasing projects has a different benefit, it’s an approach that always seems to just work. And when you think about it, is this really that surprising? How could a project ever fail that’s consistently making the outcome better than it was before? In my experience, 2 big reasons why projects tend to get stuck or fail are Complexity and Dependencies, both of which can be largely (if not entirely) mitigated by breaking the things up and solving problems consistently and methodically.

I’m tempted to bring up the 🐢 vs 🐇 analogy (emoji quota met), but that would imply that a phased approach is somehow slower in action, and in my experience it is, if anything, the other way around. Quicker to start, more methodical, less flashy, more transparent, but certainly not slower.

Actually, now that I think of it, maybe the analogy holds, if you imagine the hare running the race along a path of things things that may or may not be necessary, but that he thought were necessary back at the starting line, and sometimes not making it to the finish line cause it was just to far for anyone to ever realistically reach and he didn’t realize that the finish line could/should be moved to just up the street (which is where the tortoise went), maybe it works 🐢🐢🐢

Here are some thoughts on how to go about tackling those projects by splitting them into phases:

  • Break down the problems that you’re trying to solve, noting which ones are the ‘big deals’ and which are ‘nice to haves’ (and when you think you’re done, break them down more, be very specific to get at the core problem). Also, make sure that you’re not carrying your proposed solution around in your head with you, put that aside for a bit and really engage with the problems. (sometimes we come up with a solution first and try to make the problem fit that solution)
  • Phase your projects: find creative (often unintuitive) solutions to get a chunk of ‘big deal’ problems done with minimal amounts of work. A good question to ask here is “What positive can I get done with a minimum amount of work”. What you may find surprising is how often quick and minimal solutions align quite well with the ‘big deal’ problems — certainly not always, but more often than you’d expect.
  • Pay attention to (but don’t be too afraid of) ‘throw away’ work: This is the main thing to watch out for in phased approaches. There’s often work that will be thrown away between Phase 1 and 2, versus if you’d just done Phase 2 straight out of the gate. Acknowledge these, but get comfortable with them. They’re a necessary evil and, when properly phased, this ‘wasted’ time will be a drop in the bucket compared to the overall benefits of phasing a project.
  • Build on your successes from previous phases, this has a psychological benefit for all involved.
    “That went great! Now I know we can do the next part”

Try using the 80/20 rule and see if you can find that 80% of the value that can be realized with just 20% of the work, and do that for Phase 1. Even better, see if you can 50% of the value that can be done with 5% of the work (yes, these exist, and much more often than you might think). That isn’t so say that the remainder won’t ever get done, they will just get done in Phase 2, or 3, or 4.

In my experience, there are 2 big reasons that phasing projects works so well:

  1. You can still pursue perfection, just do it a bit at a time. (win/win — silver bullet!) And, perhaps more importantly…
  2. You can properly do a cost/benefit analysis at the beginning of each phase. Do you really need to do Phase 2 after all? Are the upsides worth the cost? (which is now much more clear with the ‘big deal’ problems out of the way)
    Pay attention to these
    , every time you end up not doing a Phase 2 or 3, that’s potentially a huge win (point this out to your boss 😊) You might even call never doing Phase 2 the “best possible outcome”. If you get to Phase 2 and everyone realizes that they don’t really need to do Phase 2 anymore (now armed with better information/clarity after Phase 1), you just headed and prevented off massive waste of time (60%? 80%? 90%?). You can now use this reclaimed time on a different project that will bring value!

Solution #2: Talk Less — Do More

This is along the lines of Facebook’s famous “move fast and break things” motto, although perhaps a bit less extreme. I’ve seen countless projects get caught up with overthinking things, involving too many people, worried too much about edge-cases that may never happen.

In larger, more complex projects, asking yourself this question will help:

“Will things be better after I do <small/quick solution here> then they are now?”

If so (and particularly if this project has had problems getting going in the past due to largeness/complexity), stop thinking and do it!!! (Phase 1)

You can even all this the 20/2 rule if you like (or substitute your own ratio here). Can I get 20% of the benefit with 2% of the work. If so, stop thinking and just do it already! It doesn’t have to be perfect yet, just move it forward.

Conclusion: This is hard, and I just failed 🥴

Remember way up a the top of this post how I said I was going to not care so much about it and that I was going to get it done quickly? Well, as you can probably see, I just failed. This post is longer than I meant it to be and I spent significantly longer on it than I wanted to.

That said, it’s progress. I’m sure there are typos in here that I missed, I’m sure that I could have re-written it from scratch and made it flow better, but I resisted (at least a little) and maybe, just maybe, I’ll end up posting again sooner as it won’t feel like such a monumental task.

And anyway, I don’t have to be able to write both quickly and at a high quality yet, I’ll get to that in a future phase, or maybe I’ll never get to it. I can decide along the way. This post exists, it’s not perfect, bit it’s good enough for now.

--

--

Jeff Derrick

I’ve worked as a full-stack developer for 15 years at the MIT Sloan School of Business, with particular interest in organizing systems/data to create simple UIs