The Hobby Project Phases
The amount of projects I've started and never completed is amazing, but also amazing is how many projects I've started - launched and then abandoned. So for this blog I wanted to discuss some phases of these projects and spell out a hobby project's life cycle in my eyes.
Like all projects they start with an idea. Just recently this was my idea for a centralized location to find patches for Halo mods. This was going to solve a personal pet peeve where you have to rummage across various sites and social media to discover download links for mods. Yet, patch formats can embed metadata about the patch itself. So why not create a website where you simply upload a patch file and go on your way?
So with an idea that I was personally driven by, it is much easier to go on to the next phase.
The Over Engineering
With an idea in mind - development will soon begin. This is a new project though, so why not go with the latest and greatest language? Soon you'll end up with a checklist like:
- Automated tests (GitHub Action)
- Automated code style
- Automated deployments
If any of these steps are new - you'll quickly realize you are spending more time on just logistics instead of your idea. In the good news, but the more time you mess with the logistics the easier it gets.
After all the stress and misery of setting up your project - you finally have it deployed somewhere. This is a great moment, because you now you can just work the project and the logistics take care of themselves.
You'll quickly spot issues on your first deployment that you need to fix. The good news is that assuming you didn't mess up - changes you make should automatically be released.
At this point in the project you are either burnt out from the setup or engaged in continued development. This leads to spurts of development as you race to squeeze in fixes and add all the features your project is missing.
You aren't ready to show it to the world, but you continue working pushing for the day that you tweet it to your followers. This phase feels great as everything is working and you have the drive to continue work.
Days become weeks and weeks become a few months. Your project isn't finished and you aren't exactly jumping out of bed to complete it anymore. Since no one knows about it yet - no one is jumping at your heels to push you to completion.
An automated security alert draws your attention to the project, but that doesn't hold enough interest to stay and do much more. You start to plan out time to finish the project, but your drive is just gone. As every week passes you get closer and closer to the next phase.
This phase can be entered at really any point of the project. What generally happens for yet launched projects is you realize you are paying for services for a project that has not launched in months and doesn't appear to be ever launching.
You start doubting why you are paying yearly for a domain name for something you haven't used. So you turn it off and say good bye. All you have left is an archived repository to remember the past.
The Green Grass
If you haven't abandoned a project - you more than likely have launched it. This is the first time you can really relax - until you start getting feedback. The project is launched and now folks around the world may be using it.
This is the first time you can just lay down in the grass and appreciate the work. Your vision was built and launched - it may never be over with enhancements and support, but at least it was launched.
This phase is really only encountered if you launched your site and abandoned it. At some point maybe even years later - something happens. It may be an API change, server package upgrades or any possible combination of some problems.
You basically have a choice - investigate this error and resolve it or just give it up. Chances are since the project was abandoned this will be "The Error" - the one that results in you shutting the site down.
You may take a hot fix approach, but you are simply delaying the next large problem. This really only leaves one phase left - a potential revival.
As a project hits success and slowly makes it way through the phases it may be at a stagnant point. It might have been a catastrophic error that brought you back to it - this might be the hump you needed to work on it again. You have been revived with a drive to update it to the latest code & framework. You've learned a lot since you started this project so you start the over-engineering all over again.
Sometimes the words "rewrite" start rambling around in your head. However, you may abandon the project during the rewrite. If you made it this far - you've probably launched a hobby project or two.