Reflections on a six-month side project
I just crossed the six-month line for my side project, CompareRC. I’m building a search engine and aggregator for the Remote Controlled hobby (planes, helicopters, quadrocopters, etc).
(If you happen to build or fly RC, check out CompareRC and let me know what you think!)
Since six months is a nice round number, I wanted to spend a few minutes writing down some of the things I’ve learned. I hesitate to call myself a solo-founder, since this is a side-project and not a startup, but I think there are relevant parallels.
More importantly, I want to share my experience trying to bootstrap something meaningful while still holding down a full-time job.
Embracing technical debt and using duct-tape
A thing you learn about working nights and weekends is that you never have enough time. You have responsibilities like the dishes or going grocery shopping. You have a girlfriend or dog that needs attention. You have other hobbies that you like to pursue. In short, there are always distractions.
And on top of that you want to build a meaningful side project (are you crazy?).
The problem with well thought-out code is that it takes time. I’m a mediocre programmer at best, so for me good code takes considerable planning. I’ve found that I simply don’t have the time to do this. I can spend the entire week planning out a perfect system…or use some duct-tape and spackle to get a close approximation up and running.
As an example, look at this flowchart of how I used to get data into my system (it’s been “modernized” slightly…but not much):
Each of those triangles represents a physically separate PHP script (oh god!) that performs a single function. I ran this tool-chain manually, moving from one step to the next and verifying results since my data is noisy…there are always oddities that need manual attention.
I hated this workflow. It totally sucked. But it was quick to setup, easy to maintain and relatively quick to execute. A more automated solution, where all of these steps are executed without user intervention, would be great. But it would also cost time – and time is too precious to waste.
This is one of those key inflection points in any business or project. The time saved manually running this tool-chain is not outweighed by the time I would have to spend debugging and maintaining a more automated solution. Of course this won’t scale, I know that. But I don’t need it to scale yet.
I realize I am borrowing heavily on technical debt. As a side project, I think this is ok. If (when!) my project takes on a life of it’s own…then I can stop deficit spending and balance the budget.
Just Ship it
This is such an oft-repeated phrase that I cringe to write it, but it is strongly linked to my previous point.
I’ve come a long way in these six months. In the first month, I built a quick prototype to get user feedback, and man was it ugly. Worse than ugly, it was functionally incompetent. It simply did not work very well.
But it provided feedback from users and I knew there was a gem hidden inside that mountain of lumpy coal. More recently, I’ve shipped a number of features that are – at best – sixty percent complete. Category support? Mostly working. Properly tagged and clustered data? Sorta.
Getting these releases out the door is great for collecting data. I have logging code that records every action my users take on the site, so I can see “Do people actually use the categories I just implemented? How deep do they browse?”. Getting this data is critical to prioritizing my time.
But more important than the user feedback is the motivational boost. Working by yourself on nights and weekends, you will often question yourself:
Do I really want to waste my evening screwing around with a website no one uses?
The little enthusiasm bump you get from Just Shipping is the perfect medicine to overcome your lingering doubt. Ship it, talk to users, iterate.
Sure it’s good for your product. But the real reason is because it’s chicken noodle soup for your worrying mind.
Being employed is awesome. Being employed sucks.
Working on a side-project while being fully employed is both great…and horrible. Having a steady paycheck means I can do things like pay for services that make my life easier, or hire an outsourced contractor worker. I’m not overly worried about not generating significant revenue yet. I can justify expenses because I’ll just take it out of my “waste on booze and other hobby projects” budget.
Full-time employment is like having a little VC that sends you a check each month.
However, the downsides are both obvious and subtle. Obviously, I have less time to work on my project. My attention is split. CompareRC usually get attention when I’m no longer fresh. These are obvious side effects of working full-time.
But there is a more subtle side effect. I’m happily employed at Launchbit and have no intention of leaving any time soon. So when I get done with work, exhausted from hunting down an insidious caching bug, I have two options:
- Man up and work on CompareRC
- Drink a beer, chat with my girlfriend, take the dog for a walk
I can tell you that option #2 get’s a lot of consideration. The thing about being employed is that there is no urgency to working on your side project. So what if you don’t work on it tonight? It isn’t making you much money anyway, there’s not a whole lot of traffic that is going to notice that feature XYZ isn’t perfect.
In short, you realize that the world isn’t going to fall apart by taking a day off. Good for your mental health…but decidedly not good for your product. Startups (and projects) need a sense of urgency so that they are always moving forward. Complacency means inaction.
Long term projects become a habit
Luckily, once you’ve been working on your project for a few months, it becomes a habit. No matter how many days you check out at 5pm and choose Option #2: drink a beer, you’ll get some work done on it soon enough. After a few months it just becomes a habit. You sit down on weekends and work on your project instead of reading Hacker News.
I might not work on it every night, but I know that I’ll work on it soon. I’ve invested too much time to let the project fizzle now. I’m over the “ooooh shiny” phase that happens with new projects. More and more, I find myself entering the “ooooh shiny” phase with new CompareRC features, not new side projects.
Obviously this can be a problem for the project itself, but in terms of moving your project forward, it’s a great problem to have.
Happy Birthday CompareRC
So, here’s to six months of hard- and not-so-hard work. Six months is a short amount of time relatively speaking, but it’s a long time for a side-project.
So here’s to CompareRC, you lovable duct-tape abomination that eats up my free time. Sometimes.
Like this post? Vote on Hacker News Vote on HN