DEV Community

Steven Mercatante
Steven Mercatante

Posted on • Updated on • Originally published at

Done Is Better Than Perfect

This post was originally published at

How many side projects have you started, but never released? What about articles? Designs? Open source libraries? I have way more than I can count. They're collecting dust on external hard drives and in Github repos. Things that I got excited about, started, and never released.

This is nothing new for me, and maybe not for you, either. It's easy to fall into the trap of "this design needs to be pixel perfect before I can release it", or "this one last feature is essential; I can't ship without it." These thoughts are roadblocks. They prevent your creation from seeing the light of day.

"Done is better than perfect", "Good enough is good enough", "Perfect is the enemy of good". I didn't coin any of these phrases, and I'm not the first one to repeat them. I've been hearing them for years, but have only recently internalized them, and put them into practice. And that's led to me shipping the following in the last 6 weeks:

  • 7 blog posts
  • 9 videos
  • 2 open source libraries
  • 6 features to my site

For every one of the above items, there was a moment when I thought "let me just tweak this one thing, then I can release it." Every single one. But I knew that if I kept tweaking them until they were perfect, they'd never be done, and I never would have shared them.

A funny thing about shipping, is that it gets easier the more you do it. Patrick McKenzie has a great quote:

Being able to successfully ship things is a useful muscle to develop.

The more you ship, the easier it becomes. You start to doubt yourself less, and you put more out into the world.

Here's another funny thing about shipping: it can bring about unexpected opportunities. I've had people email me after reading or watching my content, and checking out my open source libraries. I now have ideas for more content to produce, related to the stuff I recently shipped. It's a virtuous cycle.

This makes me wonder: how many opportunities have I missed from not releasing my previous work? How many cool work opportunities and new clients could there have been? How many people could have learned something new from reading my source code and articles?

Starting things is easy. Shipping them is hard. So start exercising that muscle.

πŸ‘‹ Enjoyed this post?

Join my newsletter and follow me on Twitter @mercatante for more content like this.

Top comments (8)

nataliedeweerd profile image
𝐍𝐚𝐭𝐚π₯𝐒𝐞 𝐝𝐞 π–πžπžπ«π

A mantra I've started to live by whenever I struggle with the perception of perfection is "Anything worth doing, is worth doing badly". If it's worth your energy to start it, then start it and don't worry about it being perfect. This has helped me in everyday life as well, not just programming. :)

mercatante profile image
Steven Mercatante

If it's worth your energy to start it, then start it and don't worry about it being perfect.


ianwijma profile image
Ian Wijma

I personally have huge issues with finishing projects because I often end up "perfecting" one piece of the code. Without finishing the project. And I get burned out on that project before finishing it.

seanmclem profile image

Perfect is the enemy of done.

Perfect is the enemy of good enough.

abhishekcghosh profile image
Abhishek Ghosh • Edited

Couldn't agree more. I have been (and honestly continue to get) bitten by this a lot, so I have to remind the same thing to myself over and over again.

unsolicited suggestion: removing the last "t" from the title sort of makes it speak for itself:

"done is better than perfec" πŸ˜„πŸ˜„

mercatante profile image
Steven Mercatante

I like that suggestion πŸ˜„

bjauny profile image
Bastien JAUNY

Words to live by indeed!

eaich profile image

Amen brother. Thanks for the Friday motivation!