If you are a developer, you have surely, at least once in your career, started a little side project either because you had a “great” idea, or because you were on leave and had nothing to do. You probably also spent the entire night working on the idea. Sadly, you never got to finish it, for many reasons. And now, it has joined your many other unfinished side projects.
You are not alone. Every developer has unfinished projects. You can prove me wrong if you don’t. I have dozens of them myself. So, having unfinished side projects is normal, the question is, what do you do with them.
Let me first share my take on this. Personally, I believe that if it’s a pastime, you should only do what you enjoy. There’s nothing else. If it entails a lot of labour or a significant time commitment for you, it’s best to avoid it.
Your idea is not a bad idea
You should not think of these unfinished side projects as a sort of failure in any way. Unfinished side projects are hidden pearls. For many, it may seem like a waste of time. Yet each minute spent on a side project is worth far more than a minute spent on your daily routine. I have dozens, maybe hundreds of these things lying around or already discarded, with old hard drives, and I don’t worry about them for even a millisecond. As a professional developer, I consider these my practice playgrounds. I toy around with new technology, interesting ideas, etc. and I never plan to make a huge impressive app out of it that hundreds or thousands of users will use.
Hobby vs career
If you keep your enthusiasm under control and start your projects without having such a dream, then not finishing it all up is perfectly fine. If you want something to show for the time you spent on this hobby, then you should maybe switch to something with a much shorter time-frame needed for its completion. The reason many developers have many unfinished projects is because their enthusiasm dies off before the project is completed. So going for projects that have a short time-frame will ensure you complete the project before you loose interest in it. The project might be small, but you can always build on it when users start using it.
More so, if you have any plans to turn this hobby into a career, then don’t throw away the code. Just let it rest. Come back to your old code after a year or two for a very instructive experience. It will show you how much better you got in the meantime – the typical reaction to one’s old code is “oh my… did I really write code like that once?”. And if you take the project on again, you’ll get some valuable experience with regards to developing with legacy code bases. By the time you will have forgotten all of the intricate details, all of your great design plans. Your documentation may be outdated (hopefully you wrote some). The code may be a mess and your dependencies may no longer be available. In short, you just got yourself the real world deal – you will mostly be working with old code bases in your developer career.
You may be interested in my post on writing clean code.
The power of crowds
Finally, Share the knowledge. These incomplete side projects are frequently not discussed with peers in the developer community. We dismiss these as a waste of time far too soon, without first seeking out other people’s perspectives. Recent events have taught me the importance of sharing these ideas with others. Developers don’t usually abandon side projects because they’re lazy; we frequently abandon side projects because we have a full-time job and a family to care for. Leaving us with little time to devote to them. However, this does not imply that it was a bad idea to begin with.
We create side projects when our body produces an overwhelming dose of adrenaline during our “great idea” moment. This is what enables us to stay awake all night. This adrenaline is not self sustaining, and sharing the information with other could help you. First, getting feedback from others can help you realize that the idea isn’t so ridiculous after all. And it can also help you build more adrenaline. Then, having an open conversation with others will assist you in establishing a habit to continue working on the project. Finally, it could be able to assist you in finding some assistance, whether it’s just morale, technical assistance, or another pair of hands to help with the work.
Don’t just share the idea, share the code too. Put it up on GitHub and open-source it. There are countless developers out there who like to code for fun and are willing to continue the project, if you just post it up on GitHub for the community.
As you share your ideas with others and get feedback, do not undermine the ideas of others who may come to you for feedback. Do not write their ideas off. Do not attack ideas, instead, offer constructive feedback.