I keep seeing this topic pop up on Hacker News (you read it right?) and figured I'd share how I battle it. However, this is primarily aimed at developers/designers, but anyone can use it. First and for most...
No corny motivational BS.
I'm not saying it doesn't work, it just didn't help me. And as someone who's experienced extreme depression, the last thing I want to hear is "You just DO IT!" I have things to get done. I'm not going to read your 400 page manuscript and I'm not going to enroll in your self-help program.
Okay, to the process.
1) What are you trying to get done?
Answer that. Got it? Great. Okay, next step.
I need to make it so my application can handle discussion and comments.
I make this logo for this business.
2) Think of the most immediate step that you can take that WON'T STRESS YOU OUT.
This is the real art to how I deal with it (again, how -I- deal with it, not what scientifically works). Take your overall problem and split it into pieces until you arrive at something you can do that will not stress you or depress you. It should almost be "too easy."
Let's set up the route in my application so that when I go to "myapplication.com/discussion"
I'll pick 3 fonts I think work best for this logo
3) Do The Task from #2.
4) Start at #1.
Why This Works
The first and foremost reason is that it's eliminating distractions and giving you MOTIVATION to get things done. The task you've come up with is SO easy, that hell, you might as well do it. If you're having trouble with procrastination or depression, then this is what you need... not an overwhelming to-do list of 100 items.
The second reason is an actual factual reason to not over think the next steps. Think about development and design. Everytime you complete one step of the process there is a HUGE chance that the landscape of what you need to do will change. Prior to completing step X, step Y seemed like the next best thing. But after step X is complete, the next best step my be Z...examples:
I setup my route, and was going to then do the database query... but after doing so, the next thing I should do is code up the view
I picked 3 fonts, and I was going to narrow down to 1, but because they're all so good looking... I'm actually going to cycle each through 3 colors in Adobe Illustrator.
The final reason this works (for me) is that it creates momentum. You start doing something. Progress begins to happen. It breaks the mold and you'd be surprised when you're done just how easy it is to keep going.
Just so we're clear, I've developed 4 large scale apps while on this mentality. That means not planning out X and Y, and just getting right into the design and code. So this isn't just some tip-base for people doing pet projects. But then again... this is just how I do it (as stated at the beginning).