> you need to dedicate time to a project. I do this through predefined 2-hour slots each day or week where I have to work on a project.
I'm glad this system works for you; it wouldn't work for me - my professional coding life is regimentalised enough.
When I step away from "work-stuff" to spend some time with a project I want to work on, I can't approach it like a job; instead I need the work to be challenging and engaging and loosely structured. I'll have vague aims and hopes for the project but I'll also be hoping for unexpected turns. I give myself permission to get sidetracked, to let go of the project's purpose (for a while) so I can explore new thoughts and ideas along the way.
It's all very unprofessional, yes. It's also fun - which is the main reason for me tackling any side project.
And when it stops being fun? I stop working on the project: save it, put it somewhere safe, go entertain myself on a different project for a while. I can do this because I know the first project will still be there, waiting for me to become interested in it a few months (or years) later.
It helps that I keep my side-projects very open-ended - none of them will ever be "finished". Horses for courses, I suppose.