You don't have to finish them, but you should share them anyway. Software is never finished, so hitting the state where you're happy with what you've built isn't likely to happen.
The same philosophy applies to other ventures and ideas. Just ship it.
This is a common mantra, but I completely disagree with it. I have tons of finished software projects. And yes, I do mean things that need zero maintenance and continue to work after more than a decade without me having to touch the code at all. I don’t necessarily use all of them anymore, but they still work.
And they’re not stuff that’s only useful to me, either. I particularly remember a script I built to unofficially get data from a project. After the project made their own version, I deprecated mine. After years of not using the script, I deleted it. Not even a day later, I had multiple people asking me to bring it back because my version did some small thing in a way they preferred.
I completely disagree. There's always something that can be improved in software. But usually, it gets to a state of "good enough" so people move on to something more important and just leave it. Sometimes, they have to come back to it, perhaps after a long time even, for a bug fix, or to add a new feature, but it may go for very long periods with no updates at all.
Of course, this is all a matter of perspective and semantics.
I suppose if something becomes obsolete enough that no one's interested in developing it further, it could be considered "finished". But even here, it seems like people still have some interest in very old software sometimes, resurrecting it to run on emulators perhaps, and sometimes even making changes (if they can get the source code) to improve its operation on newer systems.
That has nothing to do with the software’s finished state. An NES game which runs bug free and without performance issues on the NES doesn’t stop being complete because someone else decides to run it in a different environment decades later.
> There's always something that can be improved in software.
No, there’s not always something which can be improved. There’s always something that can be fiddled with, which is not at all the same thing.
By your logic, no painting is ever finished, nor is any novel, nor any meal, nor any internet comment, nor literary anything. Things are finished when the author decides they completely fulfil their need, it’s not your opinion as an outsider that matters.
The same philosophy applies to other ventures and ideas. Just ship it.