I've got a folder on my laptop that's quite a sad sight. You can find a bit of everything in it: an unfinished Haxe game, few browser plugins, a bitcoin trading bot, an attempt of writing a Go web application, and much more. It's a graveyard for all of my abandoned side-projects.
These abandoned projects are a result of what I call a 'side-project fever'. I first noticed this pattern during my stay at a co-working space that was mostly used by local startups. Compulsive starting of projects, being obsessive about them for a short while - just to completely abandon them afterward is all too familiar to me. At one point it got so far out of hand that a strict "no side-projects" rule had to be introduced in our co-working office - we were just wasting too much time on this dead-end work. I ended up breaking that rule a lot.
I've been aware that this behaviour is futile, and I was doing it anyway. It's not surprising that I started to wonder: am I sane? Why do I spend hours upon hours working on projects most of which never see the light of day? How many hours have I wasted on these projects that in the end didn't accomplish anything?
You might argue that I have learned a lot while working on them - and you would be right. But aren't there better ways to learn advanced programming techniques? For example: getting involved in a popular open-source project. Not only would I get an opportunity to learn from more experienced developers, but it would also look better on my CV and I would make valuable contacts. My main drive in starting these projects is not an urge to learn.
I love stories. I sometimes get inspired by a story of someone turning their side-project into a profitable business. They make it look fun. And like a child that just watched a movie, I want to emulate my hero - I want to go through all the troubles and end up victorious on the other side.
These stories can also make me question my self-worth and build a lingering feeling that normal career is not enough. That I must run my own business to be fulfilled.
Other times it's the pressure and stress of the day job that pushes me into starting a side-project. I use a side-project as an escape from the problem I'm currently supposed to be solving. It's a bit more productive variant of procrastination, so instead of wasting time on social media, I delay one programming problem by solving another one.
There's irresistible ease of starting a greenfield project, especially in an exciting, cutting-edge technology. It's easy to imagine that the project you are building on your own terms is going to be perfect, and the development process will be easy and stress-free.
And this is the reason why it's a lot easier to start a side-project than to get involved in an open-source project. The initial effort to start your own side-project is a lot lower than to break into open-source.
But soon this ease fades as reality kicks in. The beautiful greenfield project starts to get complex. I add a quick hack or two just to get that new feature done. Technical debt starts to accumulate and soon the project is not that fun to work on anymore.
I effectively created a second day-job for myself. Except that for this one I'm not getting paid. I start wondering how much money I could make if I spent all that time on client work?
This builds pressure to make the project profitable. It turns out that this is extremely hard, and it requires skills that have nothing to do with programming. The combination of endless hours working on a side-project combined with the day-job becomes stressful, and that's when it stops being fun.
So the side-project becomes a giant waste of time, money and a great source of stress, so why keep bothering with it? And that's how another project dies.
But what if everything goes right and a side-project becomes profitable?
By some wonder, I managed to make this happen with one of my projects. First payments started to roll in, and now I'm officially running a profitable business. Slightly profitable - but profitable.
It turns out that even when the project is profitable, it's not as fun as I have imagined. It's extremely exciting when things go right, and extremely stressful when thing are going bad.
But my main problem was having wrong expectations of what running your own business is like.
I thought that being my own boss means spending all day solving fun programming problems in an amazing technology that I love. Instead, I spend most of the time thinking about how to sell stuff to people. And I do not like selling stuff to people.
I foolishly believed that running my own business would create a stress-free job. Ironically, by doing this, I've made my life more stressful.
Instead of spending my free time with my friends and family, and reducing stress, I've been chasing a carrot-on-a-stick promise of stress-free life in the future.
So after tremendous effort and years of work, dozens of abandoned project I finally managed to create a profitable business - that I hate.
This made me realize that every job involves solving problems, and solving problems is always to some degree stressful. No career is stress-free and the only thing we can choose is the kind of problems we solve.
I love software development. I've been doing it for over a decade before I started earning any money off it. This is the kind of problems that I want to solve and I'm incredibly lucky that it happens to be well paid.
I believe it's time for me to take a side-project sabbatical. And if you recognize yourself in this post - I hope you will consider joining me.
Running your own business is not a requirement for having a fulfilling career, in fact, it might be blocking you from reaching your full potential.
The only question left is - what the hell do I do with my slightly profitable side-project?
Cover photo by Aarón Blanco Tejedor on Unsplash