Work Projects At Home
So what is the boundary between work projects and home projects? This past weekend (and tonight), I’ve been working on a piece of C++ code that will be used to do some specialized data lookups / interpolation at work. Why in the world should I be doing this, when there are other personal projects that I could be doing? (These questions sound like they might be rhetorical devices, and I’d use it as a point to jump into some philosophical allocution that emphasizes the virtue of work. While I certainly think that work is virtuous, there are lots of ways of being productive, and I am honestly trying to figure out if I should do things like this.)
There are some good reasons why I shouldn’t do work like this at home. First, I won’t be compensated for any extra time spent on this project. More: This new library routine is so specialized that there is a good chance that it won’t come to the attention of very many others (so it probably would have a very limited effect on my future compensation). There’s even a chance that some rivals will dislike the approach that I took, and might criticize me for actually identifying the need and finding a solution (i.e. actually doing something). On a personal level, there are lots of other interesting personal projects that I could be undertaking (such as the herb garden, general house maintenance, little science projects, plotting trips with my girlfriend, etc). My free time is so limited that I might not be able to work on those much in the near future. A new quarter’s worth of classes will begin next week (“Venture Capital And Private Equity” and “Fixed Income Securities”), and I already have homework.
On the other hand, there are good reasons to do this particular project. First and foremost, it is an interesting puzzle. I haven’t really coded anything new in a while, but rather have been mostly doing planning / requirements, design, documentation, training, and some maintenance. It is nice to build something from scratch. The problem has been around for a while, and I’ve been mulling over solutions for a long time. Also, it will make life a little easier for some (internal) customers at work, which may make life a little easier for me. It is easy to work on this project, as I have all of the requisite materials on hand (computer, compilers, test data to manipulate).
Maybe those observations lead to a reasonable rule-of-thumb. This is my personal time, so all value judgments should be from a personal perspective. (Questions of work-benefit are irrelevant.) Do I (personally) benefit from playing around with this project on my free time? Yes, as this sort of computer programming is like a hobby. It may be a bit surprising that this project has bubbled up to the top of the list of my personal projects, but it has, so I’ll run with it. When the puzzle finally comes together in my mind, and the rest is just cleanup / grunt work, I’ll put it aside and move on to my next personal project.