This post was written yesterday night, but I'm only publishing it now. Check here to know why, and to understand why does it have so few links.
José Marques asked in his blog how the hell did we, developers, had time to have our own personal projects.
I liked the question, and I'll not only answer but I also hope to see other answers to the question...
I'll give five hints on how to do it (I could spend all night going on it, but, at least for now, only these), but first I'll have to do a small disclaimer:
I live by myself. I don't have a wife or kids, not a beloved one with whom I live. If I had, probably my tips would be totally different.
1) Get a thrilling job
If you have a bad job, you'll do nothing but whine the whole day, while dealing with it, and then go home, tired. On the other hand if you have a thrilling job, and one you like, then it will be natural for you to have ideas growing by themselves in your head while you're working. You'll learn new stuff, do new things, and think, think, think. And, for you to have a personal project, you'll certainly have to do some thinking.
2) Impose yourself some restrictions
This is somewhat vague. By restrictions I also mean other things, like... "milestones", if you will. I'll give you some examples. One of the things most people can't understand in my lifestyle is why, being a techie, do I refuse to have internet at home. Well, I know what I would do if I had an internet connection at home... But I also know what I wouldn't. I already spend the daywatch working, connected to the Internet. So, by choosing not to install an internet connection at home, I'm only restricting its use in the rest of the day, which gives me more time to do other stuff.
Another restriction I have is that I simply don't watch TV. It's not only throwing away time, but I believe it also makes you dumber. No, thanks.
On the "milestones" theme, I allways set up some milestones I'm way too sure I'm going to be able to achieve. For 2006 I had some ridiculous ones, and for this year they aren't much better: mainly I decided to separate "culture" in five areas: music, movies, books, theatre, others. I've setted up that I need to do something for that list once a month. I have one .txt for each one where I keep track of things: the status now at this moment is:
[~/2007]>wc -l *
meaning that this year I've watched 7 movies, read 3 books, purchased 16 CD's, went once to se a play and did 8 other cultural things (I include there things such as participating on Tecnonov or going to a museum). The total gives me 35 things for 5 lists, meaning 7 things per list, meaning stuff for 7 months made in 2. Of course that I don't really need these milestones in any way, but they help me keeping track on hows my life. I use several schemes like these for various purposes.
3) Get a relaxed job
So, I've talked about the need of a thrilling job, and about some restrictions I setted up for myself including no internet connection at home (either than my cellphone). So, how come I blog so much? Easy - I have what I'm here calling a "relaxed job". I have a job where I have to do my work, but that lets me take time to read news on the web, blog, or whatever lets me take some time to relax. If I want to do something like yesterday (a migration of one service from one server to another, trying to cause the minimum downtime possible), even knowing that it will take me one hour or so of my job... there's nothing wrong with it. Having a relaxed job also makes me spend a lot more time there than the usual eight hours per day, and I feel that it enhances my productivity job-wise and also gives me a better mindset to have my own crazy ideas, and have my own personal projects.
4) Choose your media
Choose the right tools to enhance your productivity. Choose the right way for you to communicate, to gather information, to develop ideas, to keep track of them and your own pet projects, optimize your life.
My choises are, between others, e-mail, talkers, IM only for work-related stuff, my own planet that I read in a browser (via PC or cellphone), GoPlan and lot's of others. I think this is really important, even into the step of choosing the right music player for you.
5) Get a life
The last one, and still not technichal at all... Get a life. Whatch some movies, read the news, have friends, do some expensive dinners as excuse to taste good wine, grab some books, go for a walk, live. When your notice, your mind is racing with thrilling ideas, and even when you're sleeping you're dreaming for a way to solve that problem you noticed you had in your dream two days ago.
And now, excuse me, I have a three articles to read and some coding to do before going to sleep.