The things no one tells you about personal side projects
Exploring the dark, neglected, inhospitable parts of the metaphorical iceberg
Posted on September 28, 2016
Personal side projects have been a part of my life ever since I got my first developer job. Most of them have been about discovery; an opportunity to fiddle with the latest shiny things on the developer horizon.
Other projects have been more serious; with a long-term commitment and a vague goal of financial independence. And a couple of them actually made it all the way to being real products. Yes – with actual paying customers. Good times.
The least common denominator? Passion. A passion for the technologies involved, the mere craft of writing code, and the challenges of problem-solving.
Most employers tend to steer clear of bleeding edge technology, so personal side projects are often the only option for developers to play with new and exciting stuff. At least on their terms, not being restricted by budgets, deadlines, legacy dependencies and other common corporate constraints.
If you are looking to repurpose your career, personal side projects is a good way to get started. In fact, looking back, most of my own career pivots can be traced back to a side project.
To no surprise – when I am doing interviews – candidates with side projects tend to end up on the shortlist more frequently than those without.
As a matter of fact, it is my firm belief that a desire to try out new technologies and ideas – expressed as a continuous streak of personal side projects – is a fundamental characteristic in a great software developer.
Put another way: personal side projects are not only rewarding for personal growth and the sheer fun of it – they can have a tremendous impact on your career as well.
Now that I have you convinced that side projects are a winner, let's talk about the other side of the coin.
Doing side projects can be hard. And by hard, I mean as in really, really taxing. I am talking about the submerged, dark part of the metaphorical iceberg here, the unwritten struggles and failures that never make it to Smashing Magazine.
We basically have two kinds of side projects. Let's call the first kind POCs. These are the ones that are all about discovery and exploration. The ones where you try out new stuff; like Angular 2, WebPack, Event Sourcing or whatever. And sure, while these projects can be time-consuming and frustrating, you typically aren't more emotionally invested than risking a damaged ego when you fail to transpile your TypeScript. You can abort at any given point in time, and the consequences are zero.
The POCs are the vanilla flavored personal side projects, and while fun and valuable, they are not the focus of this post. Instead, let's talk about the other kind: Commitments.
Commitments are way more serious than POCs, and they are almost always associated with dreams of success and a prosperous future. And unlike the POCs, here one is always heavily emotionally invested.
Commitments are the side projects that have the potential to grow into recognized products and start-ups, and they are to POCs what The Lord of the Rings is to Hello Kitty.
Commitments are notoriously hard to estimate up front. Like almost everybody else I know that have done it, I tend to underestimate the amount of hard work it takes to reach the finish line and actually ship something. And at the same time, I tend to overestimate my chances of succeeding. The Internet is full of stories about successful startups, but very few talk about the rough times and the sacrifices one has to suffer.
It's very easy to approach these projects with a nothing-to-lose, everything-to-win attitude. After all, it's just a personal side project.
While true from a financial standpoint, at least as long as you don't quit your day job and live off of savings, there are a lot of other factors that we tend to neglect when we are filled to the brim with enthusiasm and the blinkers are on.
But trust me, you have plenty to lose.
The biggest problem with any serious side project is finding time to work on it. Given that you have a day job, there is a hard limit on the number of hours you have at your disposal. Throw a partner, kids and other commitments into the mix and the available time shrinks even more.
The hard truth is that you'll need to cut back on a lot of the things "normal" people do in their spare time; watching movies and TV, hanging out with friends and just spending time with your loved ones.
Disappearing from the radar might work for a while, but it is not something I recommend for extended periods of time. While your enthusiasm will rub off on your family and friends at first, it will turn into indifference and perhaps annoyance sooner than you think.
With time, you might notice that your friends don't call you as frequently as they used to, or that you don't get invited as often to casual dinners and party nights. And you can't really blame your friends either, since you've turned down nearly every invitation since your side project grew serious. Now, depending on how introvert you are, this might be more or less of a problem, but no one likes to be left out in the cold.
Depending on the scope of your project, you will experience periods of time where you will have to sacrifice all your social life, other hobbies, sleep and fitness; and – worst of all – not spending enough time with your partner and kids.
I am fortunate enough to have a wife that cuts me enormous amounts of slack, but what if you haven't got buy-in from your partner? Are you willing to put your relationship at risk?
It might feel like your project is worth all these risks and sacrifices in the starting phase, but what happens later on?
Every side project I have pursued have eventually reached a phase where it's no longer that exciting. But unlike the POC projects, you can't just walk away from a Commitment: you are far too invested, both emotionally and time-wise. And having made all these sacrifices for so long... one can't just quit, right?
About two years ago, I had to face the consequences of a poor architectural decision for my project Spendalyzer; which resulted in almost two months of redesigning and refactoring the system. Not so good times.
Most of the time, though, these phases pass and the project becomes meaningful again. But this illustrates the importance of having a plan up front, with a clear goal and purpose, milestones and exit criteria. This is also why you should find out if there's a market for your product as early as possible.
No projects are worth getting divorced or burnt out over, so make sure you don't push it too hard.
Next pitfall: how do one stay motivated in longer projects? Are you disciplined enough to keep pushing when you don't feel like it? And to focus on the parts that need to be worked on, as opposed to the ones you feel like working on?
For me, it is very common to lose belief in a project that has been on hold for a while. Often, when I continue working where I left off, either the technology or the architecture feels old and obsolete, and I have to battle a burning desire to refactor the entire project into whatever I just got influenced by.
There will always be social pressure from peers and the dev community as a whole, and everyone wants their projects to come off as cool. It's very easy to fall into the trap of always trying to use the latest shiny things, so form a habit of taking a step back and remind yourself of the big picture and the purpose of the project.
Ironically enough, when your project have reached this phase, you are actually in the same situation as the one I described at the beginning of this post: being tied up by project constraints. Except for the fact that this time, the boss that keeps you from using the cool, bleeding edge stuff is you.
Now, don't let this rant scare you off - personal side projects are always rewarding in some regard. And if you don't try, you will never know if the thing could fly.
Perhaps it is time to ramp up this other idea you have been thinking of lately? After all, as Norman Cousins said:
"Death is not the greatest loss in life. The greatest loss is what dies inside us while we live."
That said, you have been warned. Cheers!
Join my mailing list and get notified whenever a new post is out.
Topics range from team development, to application development strategy, to productivity tactics.
I won't spam you, and you can unsubscribe at any time.
A welcome email is on the way – please check your spam folder if it doesn't show up.
And to ensure that you don't miss anything, add firstname.lastname@example.org to your trusted senders.