Since learning to code, I was always taught that the keys to decide you need to automate something were: laziness, impatience, and hubris, nicely summed up by The Three Virtues
As a sysadmin, I'm really familiar with the drive to spend three hours automating somthing that would take you two hours to do manually... but what if you needed it again??
I'm no longer a hard core UNIX guy, but I spend a lot of time working on my Mac, usually driving Omnifocus, Dropbox, Evernote or occasionally actually coding in perl/shell/ruby/python.
It is very enticing to use coding as the illusion of productivity. Easy to feel like you're not procrastinating when you're making progress on something that REALLY doesn't matter.
There are times, however, when automation and coding can really help. The time I spend hooking my Fujitsu ScanSnap scanner so I can scan to my Mac, into Hazel and then auto-filled into Evernote and/or Omnifocus saved me litteral hours a month. I'm writing up a longer post on that for the future, but in the interim, you should check out Katie Flloyd's post on the subject, it's where I got the inspriration from.
I was reading a post earlier today and it detailed five reasons to automate and they really resonated with me:
- 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 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.
- 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.
- 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.
- 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.
Dr. Drang really hit the nail on the head here. I suffer from #2 and #3, but justify it by thinking it's #1, #4 and #5.