Side projects are fun. Most of the software developer I know are doing side projects. A small project is fun an you can use technologies that you can not use in your day job. Sometimes you are just curios to learn something new.
I for myself have always had tons of side projects. But the big problem with my side projects is that almost none of them have reached a state where I considered them done.
It is always easy to start a new project. It is great fun to work on the project and the motivation is high. But there is a point in time when all the fun stuff is built and you get to the boring stuff. You need some refactoring that you do not want to do. You posponed the development of an important feature because it is cumbersome to implement. Instead you added all kinds of bells and whistles.
The last 20% of a project typically take as long to implement as the first 80% of the project.
If you have completed 80% of your project it is somehow finished but not really ready for primetime. And this is when the motivation plummets. You have proven to you self that you can do the side project. But putting the same amount of effort into the project to finished it seems to much of a hassle.
In my world this is when I just stop working on a side projects for a day or two. And then another two or three days and somehow I forget about the projects and eventually a few weeks later I start a new and even more exciting project!
So I made sort of a New Year's resolution three weeks ago:
I will not start a new side project until the prior side project is done.
In software development one of the hardest things is to determine when a project is done.
For my self I defined a project to be done if it is good enough to be shown to the world. In my case I will post my side projects to Hacker News and Reddit.
So I will expose my projects to thousands of people. On both of the sides are very good People that do not shy away from giving honest feedback if your project is crap.
This resolution will affect my side projects in several ways:
- I will not start as many side projects as before
- Before starting a side project I will do more planning. Up until now I was very fast in starting a project. Now I have to think harder, because once started, I have to finish my project.
- I will focus on the important parts of a project. What do I have to do to get the project finished.
- The scale of my projects will probably be smaller but the quality of my side projects will be much better. (At least I hope so)
My first side project with the new rule was Giants of IT. It just a small website where I collected the giants of the IT and computer science world. The persons who shaped the world as we know it. Today I released it on Hacker News and it made the front page and on Reddit.
So far the feedback is OK. I do not have to hide under a rock because of the crap I was releasing. :)
I can now think about my next side project. I have a list of ideas but still have to find out which to pursue next.
(PS: The British Library released a ton of really fascinating old pictures on their Flickr Account.)