I take “study days”.
A study day is a day blocked into my calendar where my only task for the day is to play. Sometimes I’m looking at a new API that I’m interested in using, sometimes I’ll be using the time to spike on a new tool or technique to use for the next project. I had a phase of study days where the result was an entire product: Bitestats.com is a service that links to your google analytics data and emails you a pretty one-page report on the first of the month. I mostly built this because I needed it, but I challenged myself to go beyond the technology solution and also figure out how to build a product.
My study days are a repeating schedule in my calendar. I move them around to make room for other commitments, but I consider them just as set in stone as if I had scheduled that day to work on an article with a fixed deadline. Today is a study day, and I’m bending the rules a little by blogging, but I do often write up little case studies of what I was doing, so that I can refer back to these posts later on (or refer other people to them) if the thing I was looking at turns out to be useful. So far this morning I’ve fiddled with rst2pdf, generated pygments styles from a vim colorscheme, debugged python and ended up upgrading pygments before discovering that while rst2pdf offers pygments themes, they’re in some other format and not actually coming from pygments itself – and it’s barely 11am :)
What are the business benefits of me burning a day fiddling with rst, pygments, and whatever else (actually I’d like to write my first phing plugin this afternoon, we’ll see how that works out)? Well, nothing measurable. But when I’m working on talks and training I can sometimes generate 200-300 slides every week, so a good toolchain here will reap significant rewards for my business over a longer period.
If I need to pick up something completely new, often I’ll just buy a book or find a tutorial online, and use the time to work through it and take my own angle on it. As developers, we are becoming increasingly polyglot, using deployment tools in ruby, testing tools in node, everything else is python, and in theory I write PHP for a living. We shouldn’t be afraid of picking up something new but this approach of taking a block of time with no commercial pressures means that I have a safe space to try things, to fail, to seek help, or to just chalk it up to experience and move on.
Study days also bring something less tangible into my professional life. I’m a developer because I love technology and I love to solve problems. I enjoy coding and sometimes there are too many articles and training courses to write, and not enough code. I’m freelance which is isolating and can sometimes magnify my own insecurities. The blocked-out study days give me a moment to geek out, to avoid the fatigue of always doing the same-old, and to return to my desk tomorrow refreshed.
Just Set Aside A Little Time
It sounds so easy, but as with so many things that you should “just” do, this is hard. Study days get lost when my schedule is busy enough that there isn’t time to sleep. Some of them achieve me exactly nothing as I just can’t get going with whatever I thought I needed to do. For me, putting a repeating appointment in my calendar (a full Thursday on a 6-week repeating cycle) has mostly worked. This time is my investment in my future, and I believe in that.