Incremental Improvement in Computing

Monday, July 22, 2019

Over at Hacker News this morning, I learned that something I have been doing for years has a nickname, "do-nothing scripts." (I was calling them "guide scripts.") The basic idea is that one can write a script for a cumbersome process one might ultimately want to automate, even when only pieces of it are immediately amenable to automation. In other words, the script serves to provide cues, help one keep one's place in the procedure, and act as scaffolding for a piecemeal automatization:

Image by Jannis Brandt, via Unsplash, license.
At first glance, it might not be obvious that this script provides value. Maybe it looks like all we've done is make the instructions harder to read. But the value of a do-nothing script is immense:
  • It's now much less likely that you'll lose your place and skip a step. This makes it easier to maintain focus and power through the slog.
  • Each step of the procedure is now encapsulated in a function, which makes it possible to replace the text in any given step with code that performs the action automatically.
  • Over time, you'll develop a library of useful steps, which will make future automation tasks more efficient.
A do-nothing script doesn't save your team any manual effort. It lowers the activation energy for automating tasks, which allows the team to eliminate toil over time.
I do not write software for a living -- I see my software more as an "exoskeleton" -- and I am always on the alert for ways to make it even more useful. I stumbled upon the idea for this kind of script a couple of years ago, when I had to generate a large number of reports with very similar steps very quickly. I saw right away how to automate some of the steps, and knew I could do the same for others, but that I'd need to learn more about some software before I could do those. I also wasn't sure how long I'd need to keep creating the reports, so I doubted that getting myself up to speed on the unknown software was really a good use of my time.

But in thinking about doing this, I did realize the value of having the computer keep track of where I was, so I wrote the script, anyway. This was so helpful that I have since written several other "do-nothing" guide scripts. The one I use for weekly data backups has been helpful in that that process has a couple of time-consuming steps. I don't need to babysit them, so I can focus on something else. I can turn again for a moment to backups at any convenient time, when the script awaits input between steps -- and I am in between tasks that require my full attention.

-- CAV

No comments: