Good Enough Is the Enemy of Great
You’ve heard the quote. Voltaire said it. Silicon Valley adopted it. It’s on motivational posters in coworking spaces:
Perfect is the enemy of good.
Ship fast. Iterate. Don’t let perfectionism kill your momentum. I’ve preached this myself.
But I’ve been thinking about the other side of that coin. The side nobody warns you about. Because while we’ve all been busy guarding against perfectionism, something quieter and far more dangerous has been eating us alive.
“Good enough” is the enemy of great.
Not mediocrity. Mediocrity is obvious. You see it, you reject it, you move on. No one accidentally builds a mediocre career for a decade.
But “good enough”? Good enough is the career you build when everything looks fine on paper.
- When the code works.
- When the client is happy.
- When your manager gives you a solid performance review.
- When your relationship isn’t bad — they check most of your boxes, they’re kind enough, present enough, compatible enough.
- When you hit 8 out of 10 on every checklist.
Good enough doesn’t set off any alarms. That’s exactly what makes it lethal.
The Trap Nobody Warns You About
Everyone warns you about failure. About being lazy. About settling for less. Books, podcasts, motivational speakers - they all tell you to avoid the bottom.
But almost nobody warns you about the middle-top. That comfortable zone where things are working, where you’re doing well, where your results are better than most people’s.
Paul Graham wrote something that stuck with me: the most dangerous thing for ambitious people isn’t failure - it’s doing reasonably well at something that doesn’t matter, or doing slightly less than your best at something that does.
That’s the “good enough” trap. You’re not failing. You’re succeeding. Just not at the level you could be. And because the gap between “good enough” and “great” is invisible to most people around you, nobody tells you to close it.
Worse, they congratulate you for where you are.
Why “Good Enough” Is More Dangerous Than Bad
Here’s the thing about bad outcomes: they create urgency. When something is clearly broken, you fix it. When your code is full of bugs, you rewrite it. When your business is losing money, you pivot. Pain is a signal. It demands action.
But “good enough” creates no pain. It creates comfort. And comfort is the anaesthesia of ambition.
Think about it. If you’re a developer writing code that works but isn’t elegant, that passes tests but isn’t maintainable, that ships but isn’t scalable - you have no immediate reason to improve. The feature works. The client is satisfied. The sprint is closed.
So you move on. And you keep moving on. And five years later, you’re a developer who has shipped a lot of “working” code but has never written anything remarkable.
You’ve checked every box on the Jira board but none of the boxes that matter for mastery. I’ve written about the mistakes developers make early on - and this is the sneakiest one. It doesn’t look like a mistake. It looks like a career.
Cal Newport calls this the performance plateau. In his research on deliberate practice, he found that most professionals hit an “acceptable” level of performance early in their careers and then flatline. Not because they stop working - they work plenty. But because they stop pushing past the point of discomfort.
Newport’s insight is brutal: once you can do something “well enough,” your brain actively resists doing it better. The neural pathways are set. The routine is comfortable. Improvement requires tearing down what works and rebuilding it - and your brain asks, “Why would we do that? This is fine.”
“This is fine” is the most dangerous sentence in the English language.
The Seduction Pattern
Robert Greene describes a dynamic in The 48 Laws of Power that maps perfectly to this: Law 47 - Do not go past the mark you aimed for; in victory, learn when to stop. But there’s a dark inversion most people miss.
The law warns about overreach after success. But the real danger for most of us isn’t overreaching. It’s under-reaching. It’s setting the mark too low and then being satisfied when we hit it.
“Good enough” is a mark. And every time you hit it and celebrate, you’re training yourself to aim there. You’re building a habit of almost. A pattern of nearly. The brain rewards the “acceptable” result the same way it rewards the announcement - a hit of completion without the actual completion. A life of close-but-not-quite that looks impressive on the outside and feels hollow on the inside.
Greene would recognize this for what it is: a form of self-deception. In Mastery, he writes about how the greatest figures in history - Leonardo da Vinci, Darwin, Mozart - shared one trait that separated them from their talented contemporaries: an almost irrational refusal to be satisfied.
Da Vinci would spend years on a single painting. Not because he couldn’t finish faster - but because “finished” wasn’t good enough. He wanted transcendent. His peers thought he was obsessive. History proved he was right.
The talented contemporaries who finished on time, who delivered “good enough” work, who hit their marks and moved on? We don’t remember their names.
The Checklist Illusion
Here’s where it gets personal.
We live in a culture of checklists. KPIs. OKRs. Sprint points. Performance reviews with quantifiable metrics.
And “good enough” thrives in this environment because it checks boxes. That’s literally what it’s designed to do.
- Did you ship the feature? Yes. ✓
- Did it pass QA? Yes. ✓
- Did the client sign off? Yes. ✓
- Was it on time? Yes. ✓
Four out of four. A perfect score. Except the feature is a mediocre solution to a problem that deserved an elegant one. Except you sacrificed expressiveness for ease and it will create technical debt tomorrow. Except it solves the stated requirement but misses the deeper need.
The checklist says you succeeded. Your gut says you could have done more.
Learn to trust the gut.
Cal Newport’s research on deep work reveals something important here: the most valuable work in any field is produced at the edge of someone’s ability. Not in the comfort zone. Not where checklists live. But in that painful space where you’re stretching beyond what you know how to do.
The things that make you great - the insights, the breakthroughs, the work people remember - happen past the “good enough” line. They happen when you keep going after the boxes are checked.
I’ve lived this. My open source journey wasn’t built on doing what was required. It was built on years of doing more than what was required - showing up when there was no audience, going deeper when the surface-level contribution would have been “enough.”
The Compound Cost
Here’s the math that should keep you up at night.
If you’re 5% below your potential every day, that doesn’t feel like much. You’re still performing at 95%. That’s an A by any grading system.
But compound that over a career.
After one year, the gap between where you are and where you could be is noticeable. After five years, it’s significant. After ten years, it’s the difference between being good at your job and being the best in your field.
The person who writes code at 100% of their ability every day and the person who writes at 95% won’t look different after a week. But after a decade? One has written a body of work that demonstrates mastery. The other has written a body of work that demonstrates competence.
Both are employed. Both are respected. But only one is remarkable.
And here’s the cruel part: the 95% person will never know what they missed. Because “good enough” doesn’t show you the alternative. It just shows you a comfortable present and a resume that looks fine. And in a world where AI is coming for “good enough” engineers, that resume is about to look a lot less safe than you think.
How to Fight “Good Enough”
I’m not saying you should be a perfectionist. Perfectionism is its own trap - the refusal to ship anything that isn’t flawless. That’s paralysis dressed up as standards.
What I’m talking about is different. It’s the discipline to push past the first acceptable solution. To ask “is this actually my best work?” and answer honestly.
Here’s what that looks like in practice:
1. Establish a “Good Enough” Detector
Every time you’re about to call something done, pause. Ask yourself: “Am I stopping because this is truly excellent, or because it’s acceptable?”
If the answer is “acceptable,” push further. Not forever - give yourself a time box. But push past the first finish line and see what’s on the other side. This isn’t about grand declarations or resolutions that fail by February. It’s about a daily discipline of refusing the first acceptable answer.
2. Study the Gap Between Good and Great
In any field, the difference between good and great is specific and learnable. It’s not magic. It’s not talent. It’s usually a handful of decisions and techniques that separate the top 1% from the top 10%.
Find those decisions. Study them. Newport calls this deliberate practice - the intentional focus on the specific sub-skills that separate levels of performance.
Don’t just read code. Read the best code in your field and understand why it’s different from yours.
3. Raise Your Reference Group
You’ll never outgrow “good enough” if everyone around you is also settling for it. Robert Greene makes this point through history over and over: mastery requires proximity to people who have already transcended the level you’re at.
If you’re the best person in every room you enter, you’re in the wrong rooms.
Find the people who make your “great” look like their “good enough.” Then close that gap. Social currency compounds - and so does the standard of excellence you absorb from the people around you.
4. Measure What Matters, Not What’s Easy
Stop optimizing for checklist completion. Start optimizing for quality of output, depth of understanding, and long-term impact.
Ask yourself: “Will this work matter in five years?” If not, maybe it’s fine to check the box. But if it will - if this is the kind of work that defines your career - then “good enough” is not good enough.
5. Embrace Productive Discomfort
Newport’s deep work research makes this clear: the feeling of strain is the feeling of growth. If your work feels comfortable, you’re not improving. You’re maintaining.
The best work happens right at the edge of your ability. That’s where mistakes happen. That’s where it’s messy. That’s where “good enough” screams at you to stop.
Keep going.
The Real Enemy
Let me be clear about what I’m saying and what I’m not.
I’m not saying you should burn yourself out chasing impossible standards. I’m not saying rest is the enemy or that satisfaction is weakness.
I’m saying this: the thing standing between you and the best version of your work is not laziness. It’s not incompetence. It’s not lack of talent.
It’s the quiet, reasonable, well-dressed voice that says: “This is fine. This works. This is good enough.”
Mediocrity is the enemy you can see. “Good enough” is the enemy that sleeps in your house, eats at your table, and convinces you everything is fine while your potential slowly starves in the basement.
Don’t fear the obvious failure. Fear the comfortable success.
And the next time you’re about to ship something, close the laptop, or call it done - ask yourself one question:
Is this good enough, or is this great?
If you have to think about it, you already know the answer.