Just Ship It
I have many hobby projects. In fact, every time I am working on one it becomes a bit tedious, I have an incredibly exciting different and new idea, and start working on the new one.
This is cool - hobby projects are not work. In fact, they should not at all be about getting things done, nobody is paying you for this and there will be no consequences.
Sadly, the flip side is that projects disappear at the bottom of a deep (digital) crate and never see the light of day. After years of oblivion, you might randomly find them again, will be ashamed they ever existed, and simply delete them unceremoniously.
Why though? How can this be "better" than, even if the project is not polished and ready for the world, just putting the idea out there? Let me introduce you to the (incredibly radical, I know) idea of: "Just ship it!"
With shipping it I don't mean setting up a Kubernetes cluster, making your app redundant across multiple countries and test-pyramiding the hell out of it so that it never ever fails (the kind of thing you do at your paid daily job). What I mean with this is: just make it available in some way on the Internet, so that someone might find it.
In the case of a GitHub repo, write a short README and make it public. If it is a website, build it statically and host it for free on GitHub Pages or Vercel or your provider of choice. For a CLI tool, document it just enough for people to run the most basic use case, then upload it somewhere.
I bet you are already feeling the internal resistance. Why is this so hard? I believe the main factor that holds you back is shame. As professionals, should we not be able to build software in a professional way? Clean code, clean architecture, no bugs, perfect documentation, etc etc. I mean, what if someone saw this unfinished POC and thought: "Damn dude, what an absolute amateur..."
Honestly, what I have come to believe is: nobody really cares that much. In fact, if the idea is even remotely interesting to someone stumbling over it, they will appreciate it rather than get lost in the implementation details!
To give you some more reasons why there are more advantages to just shipping it:
- You will feel proud! And you should! You put time and effort into something and you got it out there! Way to go!
- Just ship it attitude will force you to focus on the most relevant, essential parts of your idea (it would embarrassing if they are missing, right?)
- Once published, you will have additional drive to iterate on the current state and improve it. This motivation to iron it out would just not be there if the project was wasting away on your hard drive.
- Someone genuinely interested might find it and be entertained and inspired!
- Someone might find it actually useful and ask for more features, which in turn means more motivation to work on it!
- Someone might give you constructive feedback (in the form of a pull request, comment, or other). And: should you currently have no time or motivation, you can always choose to ignore it - there is literally no real pressure to immediately react.
And to address the main fear of shame: nobody has ever written to me expressing their disgust at any published project. When you find something on the Internet that you don't find mind-blowing, you simply move on.
For a very specific example, see Minecraft! You can browse the Internet and easily find out that the creator, Markus Persson (Notch), is not considered to be a good programmer by the community. When Mojang employed additional programmers, the game needed a complete rewrite! So what? Minecraft had and still has a huge fanbase, even before it was sold to Microsoft for a unfathomable amounts of money! What would have happened if Notch was ashamed of his code quality an programming skills? Or could not get over "that one small bug that happens when you place a certain block type on top of another one"?
So this is a call to action: what project is dusting in your digital crate? What is the smallest delta you need to tackle to make this your "minimum not-shameful product"?
Then go and do exactly that and get it out there! Then let me know how it went!