I can't think of a piece of software I wrote and feel finished, not because I abandoned them, but because I stop improving them when they are good enough for the task.
Maybe it's just me but I never feel a software is finished. You can at least refactor it or add new funcionality, improve speed/readability/reliability until the end of time. It's like writing a book. You can always rephrase, add new characters improve the story, but you have to stop writing it sometime.
In the end though, readability/maintainability end up being at odds with features/speed. I like to think about the hypothetical programmer that has to take over my project ten years from now. Is the value of a new feature worth their pain and suffering? Is my project going to be too painful to keep alive?
I think the projects at http://suckless.org have taken maintainability to a really inspirational level.
Maybe it's just me but I never feel a software is finished. You can at least refactor it or add new funcionality, improve speed/readability/reliability until the end of time. It's like writing a book. You can always rephrase, add new characters improve the story, but you have to stop writing it sometime.