Did it ever happen to you that you started working on a project just to abandon it at some point? You have a brilliant idea and you can think through in your head how it’s going to work and which libraries you’re going to use. You can’t wait to start. Then, after a while, you finish most of the work and the boring part comes. You find some edge cases you didn’t think about and discover some bugs you didn’t anticipate. Or maybe you don’t feel like working on the payment page or you’re not sure how to upload it to the app store and you give up.

The problem is that working on something new is way more interesting and exciting that trying to figure out some weird edge cases. Starting out a fresh code base it much easier than fixing bugs. Writing code is easier than digging through endless documentation of how to release an app or deploy on some platform you are not familiar with.

It happened to me a lot. I have a big graveyard of projects I spent time on but didn’t finish. More than that, the projects that I did finish and turned out to be profitable for me - I finished despite thinking that I’m wasting my time and that they will fail. I just finished them because I was tired of working on half finished projects, but I did it even though I was sure there is no chance anyone would use them and if someone would like to use them, there’s no chance they will work properly.

This is a major issue for me because if I would have quit with the projects that became profitable products and sent them to my graveyard like I did with all the others, my life would have looked different. It’s a small decision with big consequences. Also, maybe some of the projects that I did stop working on, could have been successful and I just gave up too early?

I don’t think there’s an easy answer or a magical solution to this problem. Sometimes you do need to acknowledge that what you’re doing is a waste of time and move on to something else.

But I will be paying more attention in the future to:

  1. Make sure I think through in advance what I’m planning to work on and what it requires. I don’t want to work on something that I’ll later on find out was a waste of time.

  2. When I do decide to work on something, I’ll make sure to finish it even if it doesn’t make sense any more at some point and I’m too tired of working on it. If I started it, I’ll finish it.

  3. Release it even though I might think it’s not ready yet. If the main feature and the payment page work, ship it. Iron out the edge cases and make it perfect later.