If you're a software developer, it's very possible that this scenario looks very familiar to you
Side Project Cycles - commitstrip.com
It might be because this is an accurate description of what happens when you try to work on your side project.
West-side project story - commitstrip.com
Or maybe because the bottom panel is what you see when you look at your project. Coders are never satisfied - commitstrip.com
I know that this is a problem that I run into all the time. I've started, and not finished, three mobile apps in the past year and a half. Now they just sit on my harddrive and in github repostiories gathering virtual dust. I was so excited to work on them at the time, but things like school or work got in the way. As I started on a fourth project the other month, I realized how important it would be to finish this one. Not because it's going to make millions, or even thousands of dollars. It isn't. It probabaly won't even get hundreds of upvotes on reddit or hacker news. It's important because these projects solve real problems that you have. That type of passion really shines through in side projects. Your side project is something that you've decided to do on your own, when it can take an entire team to ship an app.
Most importantly, side projects are a great way to learn new things about being a software developer. You don't have to run out and use the latest and greatest framework that's still in alpha. Use the language and platform you already know, but go deeper into how things work. Once you frame the project as a way for you to further your understanding of something, it can be easier to actually finish what you've started.
My plan for staying on track is to set a goal for how many nights a week I want to try and work on part of this app. After that it's just a matter of, you know, sticking to it.