I love side projects. They are what wake me up at night with excitement; they are what causes light bulbs to flash on inside my brain while walking my dog; they are what motivate me when all other motivation is lost; they are the distraction from my worries; they are a fundamental part of who I am as a developer; and they are an integral part to the success of so many of this world’s greatest developers and business owners.
Now, I want to tell you a short story.
After graduating high school in 2007, I attended the University of Kansas (KU) and earned a degree in linguistics, the scientific study of languages. Specifically, I focused on the phonology of Kaqchikel Maya, a truly beautiful language. Throughout my four years at the university, I took 17-21 credit hours per semester. In plain English, that means I was in classes for 8 hours per day followed by several hours of studying each night. While taking a much larger-than-normal course load, I also worked two part-time jobs on the university campus to help cover my living expenses. Also during this time, I was dating a girl that lived an hour away and worked hard to spend ample time with her every week as I was hoping to keep her around for a long time. We’re now approached our fifth wedding anniversary, so it apparently worked.
I tell you this brief story of my college life because it’s important to something else that’s integral to who I am today: my career as a software developer. Between the the years 2007 and 2011, I started building the business that I now run today. It all started as small side projects in my few-and-far-between spare hours. Large course loads combined with two part time jobs and keeping the girlfriend happy doesn’t leave much spare time. During those years I slept an average of maybe 4 hours per night in order to make as much time as possible for my side projects.
I learned first hand about the precarious balance between career/college/life and side projects. Adequately balancing those is a trial in time management, prioritization, and determination.
I loved my side projects and I was determined to turn them into something meaningful. To be frank, I think I did okay.
Side projects inspire us. They give us much needed reprieve from the daily grind of our day-to-day work life. They breath new life into what we do and who we are. Side projects are often where we find true passion. They are where ingenuity and brilliance truly shines. They are responsible for some of the greatest products that we all know and love (or maybe hate) today.
There is something to be said for side projects.
Now, however, let’s take a step back and look from another angle.
An absolute truth about side projects is this: they are side projects. They are by definition less important, perhaps even inferior, to not-side projects. That’s entirely okay because that’s why we call them side projects.
This is important to remember because side projects often become the-great-idea-that-I-built-then-left-to-die. It’s common for side projects to start strong but then lose steam as time progresses and then, eventually, die out completely.
Again, this is okay because it is inherent to their nature.
There is, however, a scenario where leaving a side project to die is not okay: when you make money from it. Whether you sell it as a service or a product, the moment you accept any form of obligatory payment for your side project, there is a fundamental obligation you have to maintain it.
Side projects often get launched as a way to bring in a little side income to supplement a person’s primary job or career and it goes great for a few months. While they rarely bring in mountains of cash, a little extra is always nice. I remember my first side project during college paid me just enough to buy a few chai lattes each week in the cold January and February months. I was ecstatic.
Over time, however, that little bit of extra cash is not enough to keep a person’s motivation to maintain the project and keep it alive. Careers and other daily obligations get in the way and the project slowly dies a drawn out and painful death.
The pain felt, however, is not just owner’s to bare; it is every person who purchased or paid into the product or service expecting it to stick around and be maintained properly, as any paid product or service should be.
I have seen it happen time and time again.
This is what I believe: if you build a side project and allow real customers to purchase it, you have a moral obligation to support and maintain it properly and if you are unable to fulfill that obligation, then it is your obligation to shutter the project or find a new owner who can amply care for it.
It is okay to say “I cannot maintain this anymore”. We all have our priorities, but one of those priorities must be the proper treatment of paying customers.
If you struggle to find time to maintain your commercial side project, then make time. Yes, make time. As someone who built a million dollar business from a few not-really-spare hours after studying and working all day, I assure you, there is almost always a way to make time for your side project. What you may discover, however, is that the work it takes to make time for your project does not match the returns, and that’s okay! But if that happens, do yourself and your customers the favor of either shutting it down or finding a new home for it. Allowing a commercial side project to die slowly will haunt you and will do little more than burn relationships with those customers you already have.
The best side projects are the ones that can remain side projects. There’s always the temptation to turn side projects into something big. But often that just transforms them into second day jobs — the exact thing the side project was supposed to be an escape from.
Thanks for sharing this great letter!
I would like to suggest that the “new owner” can also be a community of users/customers who might be interested in maintaining it, if you agree to transfer it them, as an open-source project, or not.
Absolutely. That’s pretty common actually, at least in my experience.
Good stuff. I still like PHP after looking at it for 5 years. Stepping away from it to try languages like Ruby has really helped. I’m not getting any richer, but side projects in other languages seem to recharge me. I admire your hard work…when my son was an infant I slept about an hour a night because I had two jobs but I refused to not make time for him, tired as I was. Really helps to see you’re not alone on certain things.
That drive and motivation pays off in the end!
And it is a REAL GOOD THING seeing you practice what you preach. I’ve noticed recently that you’ve handed off some of those “side projects” to people who seem really interested in seeing them continue. THANKS!
I have handed off several recently and I have several more that I hope to hand off soon.
I totally agree! It sets a pretty high standard for most of us to say that we are morally obligated to maintain and grow a cash earning project, but in the end I believe that’s the spirit that will move the web forward.
I had a lot of side projects but over time I realized I had to let go of many. Now I am in the habit of setting deadlines with goals. If those goals are not met the project has to go. This is painful but necessary because as programmers we can create a project out of thin air in a weekend. Those weekend projects loom over our heads then and create a permanent feeling of begun-but-not-finished which is nothing anybody needs.
So right. It’s easy to forget about the future work load that small projects we build in a weekend can cause.
Side projects should be “side” projects. Their role can’t be too big and can’t be compared to the main projects where we make our living from them. We should treat side projects as a hobby where we can play 2-3 hours / week, but no more. Spending too much time on side projects is the fastest way to say “no” to current customers of the main projects.