You're working on a personal project you are excited about, and you enjoy working on it, but you don't feel like working on it. Outside of a work environment there are no external forces to push you forwards, so what do you find are the most successful ways to sustain your motivation though a several-week project?
Here's what I do:
- pick projects I actually care about
- scope the work so I can get something useful early on and see the fruits of my labor
- stop working on it when I get bored (if done with #2, it's not wasted time since I got something useful early on)
Long term project; Short term goals. I suppose it's a sort of divide and conquer. I, and I suspect many others, relish being able to say I completed something, even if small.
Don't sweat the details; Whenever I go into too much detail on any particular aspect, or worry about being generic, or even about being particularly well designed, I flounder. Remember YAGNI and KISS. YAGNI in particular.
Try new designs; Most of my successful projects were interesting in their own right, but made far more interesting by being a testbed for new software design principles. Don't forget 1 and 2 take precedence though.
Immediate results; Instant gratification; I work in graphics, so this isn't terribly hard for me to manage. Work in such a way that every time you complete anything, there's something to show for it. May or may not be possible considering the project, of course. I suppose in general this means I'd work top-down, rather than bottom-up.
Best of luck!
Grab a notepad and pen, write down your ideas, broken into small tasks which can be completed in 30-60 minutes each. You only need 5-10 tasks, don't be too ambitious - just a few features which would be nice to finish this week. Start coding the easiest ones first, and cross them off as you finish them.
Measurable progress generates momentum, and a physical checklist is more stimulating than any app which can be minimized.
Set a schedule.
If it is a several-week project, try setting a few milestones (perhaps 1 or 2 per week?) and try to stick to the schedule.
Since there are no external pressures, try to pressure yourself.
Good luck!
You need to create the forces which will convince you to keep going. This is pretty basic psychology, carrot-and-stick sort of stuff.
Give yourself a reward when you reach a milestone - this may be anything you'd like but wouldn't normally get in the course of your life (ice-cream, bigger hard disk, massage from beautiful woman, basically whatever wets your whistle).
And make the milestones small enough that there's continual reward for reaching them.
Since I don't program professionally, I've become an expert in the field of personal projects :)!
- Act as though your project may, someday, be released. It makes it feel like there's some reason to keep going... What if this could make you rich?! Obviously richness is a pretty far-fetched goal for a personal project, but it helps keep me on track.
- Tell people about it! People may ask you how it's coming along, and (depending upon the type of person you are) you may feel embarrassed to have given up.
- Make your project a chalenge. In completing your project, you'll have proven your comptence to yourself. You won't want to give up, or give in.
- When you don't feel like working on your project, do it anyways! Chances are, you'll end up enjoying it. Sometimes just sitting down at the computer (or just opening up the editor) is the hardest part.
I have several projects that I work on. If I am out of inspiration on one, I can move onto another one for a while. Often I will spend a week or two working on nothing but project A, then a few days on project B, then nothing at all for a while, then project C, then back to project A, and so on...
That's the great thing about being in control and having no deadline. At work, if I can't find a "good" solution to a problem, I still have to solve that problem by the deadline, so I have to do something about it even if it is ugly. At home, I can just sideline the project until the "perfect" solution pops into my head (sometimes months later).
beer and cookies
best savored in small sips/bites, like side projects
Dream!!! if you dream about your project, you will always feel motivated. The satisfaction I get after completion of the project is priceless.