Small-scale automation
Saving keystrokes is overrated, but maintaining concentration is underrated.
This post is going to look at automating small tasks in order to maintain concentration, not to save time.
If a script lets you easily carry out some ancillary task without taking your concentration off your main task, that's a big win. Maybe the script only saves you five seconds, but it could save you from losing a train of thought.
If your goal in writing a script is to preserve concentration, that script has to be effortless to run. It's worth taking a few minutes to search for a script that is going to save you an hour. But if the purpose of a script is to preserve your state of flow, having to search for it defeats the purpose.
Remembering what you've writtenI've often said to myself I've had to do this task several times. I should automate it!" Good idea, except I couldn't quickly find the code later when I needed it.
I've heard many people say you should automate repetitive tasks; I've never heard anyone discuss the problem of remembering what you've automated and how to invoke it. Maybe there's less discussion of the memory problem because the solution is personal. It depends, for instance, on what tools you use and what you find memorable.
One suggestion would be to periodically review what you've written, say once a month [1]. Maybe you've put useful aliases in your shell configuration file. Skimming that config file occasionally could help you remember what's there. If you have a directory where you keep custom scripts, it could help to browse that directory once in a while. It helps if there aren't too many places you need to look, which leads to the next section.
Tool prioritiesIt would also help to minimize the number of tools you use, or at least the number of tools you customize.
And even with a very minimal tool set, it helps to have a primary emphasis on one of those tools. For example, maybe your work environment consists mostly of a shell, a programming language, and an editor. When it's not obvious which tool to pick, are you going to write a shell script, a program, or an editor extension? By picking one tool as your default, you get better at that tool, accumulate more sample code for that tool, and have fewer contexts to explore when you're looking for something you've written.
***
[1] A long time ago I heard someone say he reads documentation ever Friday afternoon. I did that for a while and recommend it. Maybe set aside a few minutes each Friday afternoon to review and tweak config files. If you don't get through everything, pick up next week where you left off.
The post Small-scale automation first appeared on John D. Cook.