When and why I automate

Way back in February, there was a Back to Work episode in which Merlin talked about how easy it is to waste time on “productivity”—spending more time on automating a task than you’ll ever get back on the savings that automation gives you. I was going to write a little post on that topic but work got in the way and then I forgot about it.

At the end of March, Clark Goble wrote a post on the same topic, complete with a funny graph taken from a now-lost recently resurrected post by Jason Verly. Clark made this point:

[G]eeks generally relax writing these sorts of things. I know probably half of my scripts were as much me relaxing and trying to clear my head from whatever I was working on at the time. That they make me much more efficient is just icing on the cake.

This was one of the points I had planned to make: For many of us, automating tasks is a form of recreation. A strict, green-eyeshade accounting of time spent doesn’t capture the value to us of writing a script. There was another point or two I wanted to make on the topic, but I was on spring break with my family at the time and wasn’t blogging. When we returned, I had some unexpected travel, which delayed my return to posting even further.

So now that the topic is cold and dead, I’m finally getting around to writing about it. This is why I’m not a link blogger.

There are five things I weigh when deciding whether to automate a task:

  1. The potential time savings. This is based on estimates of how often I think I’ll have to repeat the task, how long it takes to do manually, and how long it’ll take to write a script (or macro or Automator action or whatever). The stuff Merlin talked about.
  2. The entertainment value of creating the automation. For example, I’m currently beta testing an app that’s adding a sort of scripting language to an upcoming release. Learning the language by writing a few scripts in it was fun. I’ll certainly use the scripts I wrote, but I’ll never get back the time I put into them. That’s OK with me.
  3. The annoyance I feel when doing a task manually that could be automated. This is the flip side to the entertainment and relaxation value Clark talked about. I hate hate hate doing repetitive tasks when I know I could write a script to turn several steps into one. I know this is a personality defect that keeps me from being as efficient as I could be, and I try to keep it in check, but it’d be foolish to deny it exists.
  4. The value of learning a new technique or library and keeping sharp with what I already know. I write scripts to get my professional work done, and the more nonessential, recreational scripts I write, the more efficient I am at writing the scripts I need to get my job done.
  5. The value it might provide to others. I’ve learned so much from people who share their knowledge on the web, I feel compelled to reciprocate. This is, I confess, almost never my initial motivation, but it the reason I sometimes add a little extra polish to a script that’s already working.

Sharing scripts and scripting techniques also changes the accounting of time. A script that takes an hour to write but only saves me 15 minutes may seem like a waste, but if it saves three other people 15 minutes, too, the overall accounts are in balance. I’ll get my “lost” 45 minutes back when others share the scripts they’ve written.