I used to have your problem. In 2009 I said I would make a new miniapp every month. I failed most months. I also said I would make a new mp3 (of electronic dance music) every day. I failed something like 1 out of every 3 days. However, the pressure from both projects, especially the daily mp3 project, changed my life.

In order to stay on point with the daily mp3 project, I bought an iPhone app called Streaks and marked an X on my calendar every day I made an mp3. Soon I was posting mp3s every day like clockwork. Since it worked so well, I started adding new calendars. I quickly had more calendars than Streaks could handle and the app slowed to a crawl, so I switched to a paper calendar on my wall and some thin Crayola markers. I now have, and have had for months, a daily real-time paper dashboard of how all my habit-generating projects are proceeding.

The key is to focus on generating habits rather than accomplishing goals. To understand why, consider the phenomenon of passive income. Passive income is money which comes from projects that make you money. A person who works at a job trades time for money. A person who builds passive income projects decouples time from money, and puts their time into building something which will, once built, generate money for them autonomously.

Every programmer should know that tight coupling leads to bad OO design. It also leads to bad business structure. Passive income wins over working for a living because you get a much more enjoyable lifestyle. Instead of working to make money, you create things, and those things make money for you.

In the same way that passive income gets you money on autopilot, when you focus on habits instead of goals, you accomplish your goals on autopilot. You decouple time from money with passive income; when you generate the right habits, you decouple effort from results. You put a little time in to create a passive income project, and thereafter it generates money for you; you put a little effort in to create habits, and thereafter your habit gets results for you.

When I got in the habit of creating mp3s every day and marking each daily mp3 on a calendar, I didn't just establish the habit of making music every day. I also established the habit of completing a tiny project every day. This is the part that changed my life. Over the past year, I have morphed from a completely disorganized person into an unusually organized one. I used to never even make a to-do list; now I have an original planning and organizing system with three separate layers. All this happened because I started by establishing the habit of completing projects.

When the mp3 thing started working well and I started tracking many other desired daily habits, I created a pattern of working to complete small tasks every day. The brain is a fantastic pattern-matching machine, and if you focus on creating habits, your brain will generalize out to broader things. Since I was in the habit of tracking my music and my workouts, I soon fell into the habit of tracking how often I ate the way I wanted to eat and even how often I put gas in my car. Once I had established these habits, of tracking nearly everything on paper, it became absolutely trivial to make and complete to-do lists every day, and to track my finances, my weight, and my sleep schedule on a daily basis.

Remember, this took me a year. But all you have to do to get started is pick one thing you really care about, more than anything else, and make a deal with yourself that you will do at least one tiny bit of work on that one thing every single day. Put that on your calendar, mark an X on the day every time, and don't break the chain. That's the Seinfeld method (google "Seinfeld Lifehacker"). If you want to expand that method to something more sophisticated like me, it will be easy to do, AFTER you have taken the time to establish this habit of completing one tiny project every single day.

If you do what I just told you, your problem will be solved for the rest of your life.