On Hobby Projects
Over the last few years I’ve started a lot of hobby projects and I haven’t finished a single one of them.
There was the app to do basic Twitter sentiment analysis to tell you what the vibe is where you are, then the glanceable display to show the sea conditions at the local beach. There was the cross-platform mobile app that shows when sewage is discharging at the local beach (by reverse engineering the excellent idea but terrible implementation of the Safer Seas Service). There was the computer vision project to get a drone to follow me around. There was the app to tell me what veg is in season at the moment, which at least I use. And countless others.
All of them fizzled out, despite me still wanting those apps to exist and despite me getting quite far, with some of them anyway. Maybe I need to team up with a finisher. But for me that isn’t the main point (although it would be nice).
It’s well documented that hobby projects expose us to new technologies and keep our saws sharp but I haven’t heard anyone talk about their value to keep us inspired.
Most developers I know go to conferences and watch talks about the latest trends in software. We listen to podcasts about machine learning and chatbots. We discuss the blockchain and the ethics of self-driving cars. We get excited about WWDC and Google IO announcements. We tell each other that software is eating the world and that — as programmers — we’re inventing how the future is going to work. Some of which is true, to an extent.
But what’s also true is that most developers I know work on apps for other businesses, internal line of business apps and legacy code. There are always interesting engineering problems to solve but more often than not it’s another app that talks to a web service, does some database work, presents something to the user and gets some input. Bang out a few Gang Of Four patterns, a bit of MVVM, write your tests, turn the handle and out it comes.
And this is where I think the hidden value of hobby projects comes in. Because despite being so interested in the bleeding edge of computer science and telling each other we’re inventing the future, most of us aren’t solving those new problems or pushing back those frontiers. We keep building similar things and finding the bits that stoke the fire where we can.
But in our hobby projects we build whatever want. We come up with weird ideas and build them. We test things out, get creative, go down dead-ends, play with new things and most importantly: stay inspired to keep building software. Hobby projects keep the passion going.
The problem is that as time goes on most developers I know make less and less time for hobby projects. Some have started families, most have long-term partners. And some, after getting home from 9 hours in front of the screen — concentrating on concepts so abstract they have no hope of explaining their day to their significant other — don’t want to sit down and spend another few hours doing any more.
So what’s the answer? I don’t know. But if you’re lucky enough to find somewhere to work that offers you 10% time for your own projects, go and work there.