My work is also my hobby. Some days I come home after a day of programming and all I want to do is get in front of a computer again. I'll disappear for hours working on random projects just for the sake of coding some more. It's not that I'm not fulfilled by my job, or not challenged enough by it. In fact I think it's the opposite, I enjoy the challenge and I want more of it.
The end result of this has been dozens of half finished projects. Those that make it online are the lucky (and rare) ones, most never see the light of day. I used to have a Trello board that tracked the status of my hobby projects. I gave up when the list of "dormant" projects got to twice the size of the "released" list.
Why don't they ever get finished? Because that wasn't why they were started in the first place.
The aim was never to finish and release them. They were started because I wanted to play with some new piece of technology, or new method of programming. If a project is started because it's fun and interesting then there's no motivation to finish it once the fun and interesting bit is done.
This isn't necessarily a problem. If your spare time isn't for doing fun and interesting things then what is it for? On top of that I learn a lot from these projects. This feeds directly into my work and makes me a better programmer. For example, one dead hobby project a few months back was an experiment with Knockout. As a result Knockout's played a central (and very successful) part in some of Fluent's work recently.
There are downsides though. I've deleted the Trello board, but the sheer amount of abandoned code in my Github, Bitbucket and Dropbox accounts does get me down. It's hard not to see them as failed projects.
Even the work that does get released never finds much of an audience. I think the key reason for this is that it isn't solving a problem. When the main point of a project is to be interesting to write, what's the motivation for anyone to use it?
So all this effort goes in, and nothing useful comes out the other end. Yes, I will have learned something new, but I can also do that while building software that solves problems people actually have. At the moment I'm teaching myself Ruby on Rails by building sites for Cultivate London and a friend of mine. The work I'm doing is benefiting people, and I'm learning as well. It's the best of both worlds. There's no downside, as long as these projects don't have hard deadlines or get too stressful.
I think that's the sort of thing I'd like to focus on. Helping others while learning myself. I've come up with a simple test potential projects have to pass. They must have this aim:
"Helping those who do good do more"
If it doesn't live up to that then it doesn't happen.
This is partly inspired by the day a fortnight I give to charities. Two of the key problems for them are 1) reaching out to people and 2) making the best use of volunteers' time. These are both areas that software can help with. I want to be building those systems.
Of course there will still be abandoned projects. Sometimes you try an idea and it just doesn't work out. However, I'm hoping working on actual problems will mean that some useful things come out the other end.
If you've got an idea for some software that matches that aim then get in touch. I might be able to help you out with some time or advice.
Or do you want to help build something like that? Do let me know, it would be great to collaborate.