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
Top comments (8)
This all sounds very familiar. In the end I decided to only work on open source projects instead of trying to make money from side projects. This may not be profitable but gives you a sense of accomplishment you are helping other developers.
With your business, if you don’t want to run it anymore, maybe try asking a friend to take on the day to day running so you can focus on the development, or even try selling the business on.
It's good to hear I'm not the only one with these struggles. :)
What kind of open source projects do you work on now? Are you focusing on a single one or just jump in and resolve an issue occasionally?
I also have a huge folder of unfinished side projects, but my one qualm about not doing them is that as a junior developer there is this big emphasis on having a portfolio. My main drive in building side projects is to be able to showcase skills, I contribute to some awesome open source projects but is that something I can showcase on my portfolio or just my resume, and if I do how do I explain which parts I am actually responsible for? I also can't show anything I build at my current dev job for privacy reasons
I would argue that having commits in an open source project is even better for your CV. First, it proves that you are able to solve real problems on a big project. Just linking to the list of your commits on a specific project should explain pretty well what part you are responsible for. For example Here's my small list of contributions to dev.to. If that's not enough, you can easily add a list of points describing what exactly you did.
The problem with adding side-project to your CV is that they get stale. You learn new things and you are not so proud of the way you solved something in there. Libraries get outdated, you might have built a great app with Rails 3 few years ago but now that version 5 is out is it really relevant to show it any more? You also need to host them somewhere.
Great thing about OS projects is that you can jump in when you have time available and then not work on them for years, but your contributions are recorded and will be valuable on your CV for a very long time.
This is super helpful advice thank you
You might try to sell the profitable side project? Might need to spend some time on making the code better documented?
I also have more and more side projects, while also doing some open source contributions recently. As I just 'finished' one, I have a hard time deciding between finishing another one, fixing some problems in an open source library I used for the finished one, or start a new sure project learning squeak.
What's the profitable side-project? Any links?
I appreciate your points, but I think side-projects can still be useful learning tools. My usual process is...
No doubt some such projects can be a waste... looking back... in the sense that the learning and the material end-product were not enough to justify the time. But, since it was fun doing it... I get value... if I ignore opportunity-cost :) .
It can definitely be a great learning tool and if you're having fun while doing it just go for it. :)
On a side note, having a side-project is especially useful for people still studying because you get something similar to real work experience.