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
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
(the website is https://mute.life/ if you’re wondering)
#2 Releasing a new blog post
Okay first draft up, very very very very rough: https://t.co/aAXoGqwQ3Y might take another 24 hours to get it right— Pieter Levels @ 🇳🇱 (@levelsio) 7 augustus 2017
First he asked for some ideas on Twitter so he knew what people would be interested in. After having the first draft finsihed 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?
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.
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.
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.
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!