Outside of an academic and professional context, where I give my best effort to complete tasks given to me, I finish surprisingly few projects.

There are a few of reasons for this.

Distraction

The biggest issue in completing my projects is distraction.

I don’t mean distraction in the sense of wasting time (e.g. looking at pictures of cats), but in the sense of finding a project more immediately interesting than I’m working on; either because the new project is simply more interesting, or my interest in the current project has diminished.

This generally means putting a project “on hold” and starting work on whatever it was that I found new and interesting – which (until I finish either of the projects) has taken me from one unfinished project to two unfinished projects.

Perfection

The second biggest problem for me is that I too-often try to do things perfectly.

I might spend so long trying to do something correctly that I’ll lose interest in the project, or I might put down a project because I’m unable to do something the correct way for whatever reason.

What I’m trying to do may only be a minor part of the project; probably something which could be deferred to a later release.

What I’ve been doing can be described as making perfect the enemy of good. I’m failing to make the compromises necessary to release a ‘good’ project in my futile pursuit of perfection.

It isn’t all bad

While I do believe there are problems with me not completing personal projects, there are plenty of reasons why not completing them is acceptable.re

  1. I learn a lot from these projects. I find it hard to imagine even my undertaking of a degree in Software Engineering has taught me more than working on various projects purely out of self-interest.
  2. You rarely get the chance to do something perfect in the workplace. In my own time, there’s no reason I can’t have this (somewhat perilous) luxury
  3. I’m always working on what interests me the most at a time. If I become bored of a project, it’s acceptable to drop it, which is perfectly fine provided I do it for the right reasons. Given I’m doing this on my own whim, it’s reasonable for me to work on that which I find most interesting.

But it needs to end

While working on projects and not completing them isn’t necessarily bad, I’d like to stop doing it.

What do I have to show for all these unfinished projects? I definitely gained experience from them, but I could have gained satisfaction for completing those projects. I regret this now.

However, will involve making compromises. Even if ideas for more interesting projects come along, I need to continue working on my current project. If I find myself losing interest in a project, it might be a good idea to reduce functionality, push existing functionality to production and defer future functionality, or get it to the lowest workable state possible and prematurely move it to production (perhaps to work on again at a later date).

Plan of action

  • No more not finishing projects
  • When interest wanes, either reduce functionality or just 'get it working' as quickly as possible
  • Only start new projects when existing projects have been finished