I have about a million things I’d like to do at any given moment. If I sit down and try to choose something to spend my time on, it’s fairly overwhelming. There are blog posts I could write, books I could read, movies and TV shows I could watch, or any number of ways I could continue my own education via videos or articles. And then there are the side projects. So so many side projects.
The problem with side projects is that you can’t complete them. No matter what you think, side projects aren’t done1. You might be able to finish reading a book or watching a run of a TV show, but you’ll never finish that “small” tool you’ve been meaning to write. There will always be something to improve, something to tweak, something to fix.
I decided a while ago to write my own microblog. This “small” app was supposed to serve two different purposes:
- To take back ownership of my writing and host it under my own domain and in my own database.
- To act as an excuse to learn Yesod so that I could start on my real side project.
My microblog is now 7 months old and has seen 133 commits to master (at the time of this writing) and isn’t close to being “finished”. And this isn’t even the thing I want to work on as my side project. I’ve spent so much time working on The Small Thing that I’ve barely even started on The Real Thing.
So, presented with infinite things to do, an infinite amount of time that those things will take up, and a spectacularly finite amount of time to do them: how the shit do I actually get things done?
The solution I’m going to experiment with is to explicitly set aside a part of my week that I tend to otherwise “waste”2, and dedicate it to working on a side project. For me, this means Sunday mornings (before noon). I expect most of that time to be spent working on my main side project (a workout tracking app I’m currently calling Swole), but I’m also not going to stop myself from working on projects like my microblog, my dotfiles, or any of my other open source projects if they should catch my interest that week. The important thing here is not necessarily the specific project I work on, but is instead to be strict with myself about stopping at noon and not letting that time spill over into the rest of the day, or the rest of the week. By limiting myself to this specific sliver of time, I hope to see myself be able to focus on my project when I need to, and ignore it during the rest of the week.
As an added bonus here, the short time frame should present itself well to learning (or implementing) small, specific bits of functionality. My hope is that these weekly experiments will easily translate into blog posts on the subject, which will help me improve my writing habits.
See this post by Good Friend And Awesome Person Gabe Berke-Williams: Move Your Goalposts ↩
I firmly believe there’s no such thing as “wasted” time, just time that’s spent with a different set of priorities. See the venerable Merlin Mann’s post Mud Rooms, Red Letters, and Real Priorities for more on “priorities”. ↩