For the last few years, I've really struggled with making progress on my side projects.
5 or 6 years ago, this wasn't a problem. I'd be working for hours on my side projects almost every day. Slowly however, this changed. I found new hobbies, started hanging out with friends, got married, became a father.
Life got in the way.
Looking back over the past 2 years, I don't think I've finished any side project, of any size. That realization hit me like a brick a few days ago.
Something has to change.
My failed system
Up till now, I've tried to follow good task management practices.
I would break down a project into smaller tasks, made sure I wasn't doing too much (build an MVP), and assigned deadlines to the tasks.
Problem is, deadlines don't work for me when I'm the one who has to enforce them. These are soft deadlines. They would approach and I would push them forward by a week or two. Until a year had passed by and I couldn't get through watching the 3 videos that would complete that course I started a year ago.
Deadlines only work for me when they are hard deadlines, like the kind at work where they mean something. A commitment to an external stakeholder, with real consequences for missing them.
Life getting in the way of side projects is not a bad thing, but because I had assigned deadlines to the tasks, not being able to complete them on the assigned day made me feel like a failure.
I had free time, but I would spend it watching TV or doing irrelevant things, because I couldn't get myself to start on the tasks for my side projects, maybe because I feared I would fail to complete them by their new deadline anyway.
My new system
I'm giving up on deadlines for my personal side projects.
Instead, I'm just going to have a list of in-progress projects. Each project is broken down into tasks, and every project has a next task that I can just pick up and go. Whenever I find free time, I'm going to pick one task from one project and work on it.
Deadlines don't work for me because they are soft deadlines. So I'm getting rid of them.
Deadlines do serve another important role however, which I have another way of replicating.
Deadlines give you a finite amount of time to work on something, so you come up with a version of the solution that can be done in that time. Without a deadline, you could keep working on just one task, trying to complete it to perfection.
I'm replacing that with a well defined definition of DONE for my side projects before I start working on them.
The definition of done should lead to an MVP, a small but working version of whatever it is I'm trying to build. This will serve the same purpose as a deadline, but without the artificial constraint of time or the feeling of failure when life get's in the way and I have to move the deadline.
I'm starting on that now. This blog post is the first step in my journey towards this new system. I'll check back in a few months to see how much progress I've made on my projects with this new way of working.