DEV Community

Cover image for The Problem with Perfect Engineers
Reme Le Hane
Reme Le Hane

Posted on • Originally published at remejuan.substack.com

The Problem with Perfect Engineers

Every engineer has their perfectionist phase. I certainly did. There's a season early in your career where every line of code must be beautiful, every edge case handled, every abstraction future-proofed. That desire to do things “right” feels noble - but over time, experience teaches you that chasing perfection is often just a well-disguised form of avoidance.

At some point you realize: perfection is the enemy of done.

That doesn't mean we should write careless code. There's still pride in craftsmanship. But what shifts is your understanding of what done really means. You start seeing the bigger picture - that your work exists in a system with deadlines, dependencies, and a team relying on forward momentum. That no feature will ever be perfect the first time, or even the tenth.

One of the best things about modern software is that it can change. We can patch. We can refactor. We can iterate. (The gaming industry might abuse this a bit - but that's a separate post.)

I once worked with a CTO who, during a boardroom code review, threw a snippet onto the big screen and said, “Who wrote this crap?” Then he checked the git blame. “Oh. It was me. Moving along.”

This was someone with over 40 years of experience, looking at something he wrote six months prior. That moment stuck with me. Even the most seasoned engineers look back on their work and cringe. Not because they were bad - but because they've grown.

That's what makes perfectionism a trap. It assumes you'll have the clarity and knowledge today that only experience can give you tomorrow.

Instead, I've come to embrace something more sustainable: progress with intent. A little bit better each time. There's a great blog post about applying the Boy Scout Rule to code - leave it better than you found it LINK. That mindset lets you move, learn, and improve without getting stuck.

In my own teams, I've learned that perfectionism usually shows up as work taking longer than expected. That doesn't always mean overengineering - sometimes it means someone's struggling and not speaking up. Either way, it's a cue to check in. Especially in remote teams, it's easy to miss the signs until someone's already deep in a rabbit hole.

One thing that helps is writing. Documentation, planning, solution design - not as overhead, but as clarity. When we slow down enough to think clearly up front, we're less likely to drift later.

At the end of the day, managing perfectionism is a skill - one we all have to learn. Sometimes we spot it in ourselves. Other times we need a nudge from a teammate or lead to help us zoom out. The goal isn't to lose that eye for quality - it's to make sure it serves momentum, not stalls it.


Next time: Why Senior Engineers Don’t Need All the Answers

Top comments (0)