Fuck it, Ship it — Dealing With Perfectionism

Jurn
DAYONE — A new perspective.
5 min readSep 4, 2017

Just like a lot of other people, I have many side-projects I want to do.

Blog posts I want to write, side-projects I want to build and businesses I want to launch.

But something I have always struggled with was with perfectionism. Setting unrealisticly high standards for yourself that you think you need to live up to.

“I can’t start writing a blog post about this topic because I’m not an expert yet. What if I write something that is wrong or incomplete?”

“I want to build this side-project but I really need to learn that shiny new JS framework before I can build that.”

“I can’t release this side-project yet because it isn’t 100% free of bugs or it doesn’t have every feature that I want it to have.”

This probably sounds familiar to a lot of people. So instead of having lots of shipped projects or published articles you have a Trello board/notepad full of ideas that you are going to start ‘some day’.

You KNOW it’s better to just get started, do the best you can and improve it when you can do better.

But perfectionism still always makes you second guess yourself and overanalyze it to the point of inaction.

What if you could overcome this desire for wanting to do everything perfectly?

A great example of someone who, in my opinion, does this really well is a guy named Pieter Levels. I’ve been following Pieter on Twitter for a couple of months and this has really opened my eyes to a different way of thinking about shipping projects.

Here are a few examples

#1 Releasing a side-project

In less than 24 hours he went from idea, to launch, to being covered on TechCrunch and reaching the top on Producthunt.

Most developers are still researching javascript frameworks at that point.

(the website is https://mute.life/ if you’re wondering)

#2 Releasing a new blog post

First he asked for some ideas on Twitter so he knew what people would be interested in. After having the first draft finished he published it and shared it on Twitter.

The post is not completely finished, has some typos, some question marks and every now and then you’ll suddenly find a capitalized TODO in the middle of his post.

But he published it and improved it after.

You can take weeks to write a blog post, edit it and try to make it perfect. Or.. you can write a draft, release it, get feedback and improve it.

From the replies I’ve read, people didn’t really seem to mind that the blog post wasn’t 100% done and had some typos.

#3 Releasing a BOOK

I thought releasing a blog post in draft form was interesting until I pre-ordered the book he is currently writing.

Not a custom-coded eCommerce solution with a polished eBook.

A simple landing page, a button to a Typeform form with payment option, an e-mail with links to Google Docs.

Some people will probably call this lazy but I think think it’s really clever. It does everything it’s supposed to do without overcomplicating the process.

People want to buy the book, people can buy the book. Problem solved. Next.

#4 Sharing the process

Another cool thing about the way he ships is that he also does it publicly.

For one of his projects he streamed everything from the first line of code to launching the new product. Which you can now watch on YouTube.

For many people, including me, this seems pretty scary. What if everyone sees I need to google simple documentation or that I’m on StackOverflow for every error I run in to?

Lessons Learned

I think anyone that struggles with perfectionism can learn a lot from these examples. I also learned a lot from reading his MAKE book.

Here are the insights I took away from the above examples and his book.

Programming is just a tool to accomplish a goal

Nobody cares about what tools you use, people only care about how your website/product/app can service them.

They’ll never know what programming language your website was written in, what frameworks you used, what database you used or if your stack can scale to a million monthly users.

Use what tools you know to build it. Try to fix it when it breaks.

Launch Fast

If you’re a perfectionist you really don’t want to release something before it’s exactly the way you want it.

Perfectionism also makes sure that you are never 100% satisfied with whatever you are working on.

A nice catch-22 that often leads to analysis paralysis.

This either means you’ll spend a long time working on something before you release it, or you never release it at all.

Try to release an MVP as fast as possible and use the feedback you receive to improve your MVP. That doesn’t mean that the MVP can suck. It just means that it doesn’t do a lot of things but one thing really well.

No professional logo. Not having setup all the social media accounts. Not A/B testing the homepage for conversion. Not worrying if your tech stack is capable of scaling to millions of users per month. Not optimizing database queries to gain a couple milliseconds.

Iterate faster

When you have released your MVP or new blog post, try to get as much feedback as possible and use that to improve. Fix bugs, add features, improve the design etc.

Users/readers appreciate when you listen to their feedback and use it to improve your product. They are happy they contributed to the end result, you get to improve your product exactly the way your target audience wants. It’s a win-win situation.

You can then also do a mini-launch for each improvement to get more attention to your MVP/blog post.

Share the process

You can get a lot of valuable feedback from others by being more transparent about the process.

Don’t lock yourself in your room for 3 months and come out with a finished product but incorporate feedback from others early in the process.

Going forward

So from now on I’m going to focus on building and launching MVP’s for ideas that I think have potential as fast as possible. Listen to feedback and use that feedback to improve.

I’m also going to be more transparent in the process of doing this. I’ve just setup this blog where I plan to write about things I learn while going through this process.

I’m still learning programming, this blog is the first time i’m not using shared hosting and FTP but an actual VPS and have only recently learned how to use the terminal, Git, SSH and other development skills.

I still need to learn a lot more about back-end like Node.js, databases and using a VPS (just copying tutorials without understanding what I’m doing at the moment). But I’m not going to wait till I’m an expert in all these things before I am going to use it to build stuff.

Hopefully you won’t either!

If you want to follow my progress, you can follow me on Twitter and Instagram.

This article originally appeared on my personal blog: https://jurn.blog/fuck-it-ship-it/

--

--

Jurn
DAYONE — A new perspective.

🇳🇱 Freelance UI/UX Designer & Front-end dev and builds side-projects for fun and profit.