You will never reach an unknown destination.
It’s that simple.
Shipping side projects is difficult. Really difficult.
You sacrifice a metric shit-ton of your free time, building a project you may never finish, never use, and never even ship. Its embarrassing when it happens, and it can happen a lot. It feels like you’ve failed yourself, and didn’t have enough brains to not start this thing to begin with (although, I do still see a huge benefit even in un-shipped side projects).
I’ve shipped plenty, and failed on a few. When I reflect on those failures, I have one strong conclusion (that applies to me personally, and probably some of you).
The projects that failed had at least one major thing in common, I had no finished product in mind.
You know how this happens…you have a great idea! You need to move fast! You just need to get something online! You start with a quick mockup, and go go go!
Then you realize a big feature sucks, and wouldn’t it be better if you added this? and that? and this and that? and the other thing? Maybe its feature bloat, or maybe its necessary and your idea wasn’t fully baked to begin with.
At some point what you’ve created isn’t what you set out to do… its become a Featurestein you’d rather hide in the basement.
So…you didn’t know where the fuck you were going, how the hell would you know if you arrived?
My counterpoint is that each of my shipped products I wire-framed / designed / and mocked up every page / interaction before I touched a line of code. It forced those “this feature/that feature” thoughts much earlier and provided me with a guide to a much more defined goal.
Will things change? Of course. Things wont feel right, and you’ll make mini-pivots - but you’ll still know your final destination.