If you are a programmer, most projects are long term. Even if the initial project is quick to build, you will need to support it going forward. Contrast this to a painter, who can create something more quickly and doesn’t need to support it. A painter could create a painting every day and each day would be free to start a new one.
As a programmer, I think it’s important to give yourself short term projects as well. Short term project allow you get faster feedback on your creations and allow you to learn more quickly. Short term projects include: A blog post, giving a talk, making a video tutorial, writing a throw-away application for practice.
In addition to short term vs long term projects, you should also be aware of ‘support vs no support’ projects. Starting an open source project requires ongoing support. Writing a blog post typically does not require ongoing support.
As well as mixing up long term projects with short term projects, you should avoid taking on too many projects that require support. The problem with projects that require support is that you can only do so many. Your time will quickly be consumed with ongoing maintenance.
For me, I’m trying to have a good mix of long term, short term, support and non-support projects. Having too many of any type contributes to the feeling of burnout. A good mix makes me feel like I’m productive and that I’m learning.