Ask HN: What did you do differently to ensure completion of your side projects?

10 points by deker_ ↗ HN
I often start side projects to explore new ideas or learn a new technology, but have a bad habit of leaving them half-finished.

If you were like me at some point, what work habits or best practices did you develop that enabled & encouraged you to start seeing your projects through to the end?

7 comments

[ 3.1 ms ] story [ 27.3 ms ] thread
I tell all my friends about it.

I owe them to finish my projects, they know that if I promise something I deliver.

This helps, I'm working since oct 2016 on a project, I don't like it anymore since march 2017, the honeymoon is over, the tech stack is boring and the project makes me upset every time I have to write code.

I'm still coding every day, it should be done next month.

I'm doing this too, after a long time trying to do the opposite because it was frustrating to have to explain why I didn't finished something. It's better to have social pressure than not, actually.
Totally, especially when we care about those people and when we value their opinions.
Start by building small, interesting, independent parts first. You'll gain momentum and then be able to stitch them together/do the boring things, like authentication, home page, etc.

For my notes app (Notational https://github.com/tmm/notational), I first built the editor, then incremental search, then authentication. Finally I went back and did note sharing, dark theme, and the home page.

I think the trick is to release them as soon as they are almost done, think 95% because for me the last 5% was always the hardest and that's what caused the longest delays.. Trying to sort out all the bugs and making it perfect.

Once some money or feedback starts rolling in it makes it incredibly motivating (or sometimes demotivating but that's good too) to keep working on it.

1. Make releasing your stuff the primary goal, because anything you don't actually put into the world is just personal research.

And then update the project and release a new version!

Your product-making skill level is the number of product releases you've created. If you want to get better, you have to do more releases! Unreleased projects do not count because there are no other users!

Releasing is like exercising a muscle, so the more you do it the stronger you get. Jony Ive would be like a 350 lbs bodybuilder of product development.

2. Constantly be creating new projects. Do not settle on one and spend years perfecting it, unless lots of people are really excited about it and you are too (see: Linux).

Don't get your ego or excitement wrapped up in one project. Tell yourself that this is just one of many projects and that you're going to keep doing new ones even if this one is successful.

Keep creating new things at a rapid pace. Don't get bogged down unless by very deliberate choice.

3. Be ambitious. Go ahead and create a Google competitor in 1000 LOC, or whatever. It's amazing how few people even attempt to do anything big just because they assume that's someone else's job.

Go bonkers. Tilt at windmills.

I agree with staunch. It's important you know whether you're doing it for the end result or to learn a new stack. If it is the end result train yourself to not care about the details. Keep the tech minimal and all the design choices should be centered around one question - "Will this help me ship?"

I had the same issue of getting bogged down by technical details, so when I was developing my side product (https://discoverdev.io) I ensured everything I do will be geared towards shipping it!

I hadn't developed a frontend app before so I kept it simple, just HTML and CSS - no JS, no framework.