Welcome Welcome to ADMIN Lead image: Lead Image © saracorso, 123RF.com
Lead Image © saracorso, 123RF.com
 

Dividing by Zero

I love automation. Almost every day I write scripts to automate some task, and then I schedule that task to take place at a specific time. Sometimes I automate so many things that I forget they're automated. I'm not sure if that's good or bad, but it does happen. Part of the problem is that I don't document as well as I should – I know, shame on me. I am a writer after all, so shouldn't documentation be sort of second nature? Well, writing is a thing that I do, but documentation seems unnecessary, and I can mathematically make a case for never documenting a single automated task. For me, documenting automated tasks is dividing by zero.

I'm taking a task, creating a pseudo entity to handle the processing, and then I set the whole thing into motion with a schedule. Why should I document that process for this pseudo entity that I've created? No one is going to read it. And if they do, my motto has always been, "It was hard to write, so it should be hard to decipher as well." Not really. Full disclosure: I stole that from some forgotten source.

I've taken a time-consuming thing – a repetitive thing – and I've removed the human element from the equation. There is this thing that happens, and it takes zero people to perform it, hence the division by zero metaphor. The more tasks I automate, the weirder, in a mathematical sense, it becomes.

I feel a sense of joy from defying mathematics in this way. I can just see Mr. Spock raising one eyebrow over a Saurian brandy while having this conversation with me. He would no doubt implore me to document my automated tasks, even if for historical purposes alone. "It's gonna take a lot more Saurian brandy to convince me, Mr. Spock, because nobody likes to document." See that? Another zero entered into the equation. Nobody likes to document. Zero people like to document, which includes me. Another mathematical dilemma with no resolution.

Automation is a good thing. Documentation of automation is a bad thing, but it shouldn't be. So, why is it so difficult to do? Why is it so difficult for people to document their code, their procedures, their recipes, and their actions? I propose to you the idea that it's mathematically impossible, or at least improbable, to document a process because of the division by zero thing. The undefined character of it bothers us. It bothers me and, by extrapolation, I make the assumption that it also bothers you. Sure, some people document their code, but they actually expect someone to read it. My automated processes require no human intervention; therefore, I expect no audience. My effort would be pointless. I would get zero results from the effort. Another zero. I hope you're keeping track.

There is a certain discomfort to writing something that you feel no one will ever read. A diary, for example, is merely for catharsis. It's written with no audience in mind. Autobiographies or memoirs, by contrast, both have intended audiences. Automated processes have no such audience. They're written. They're scheduled. They go. Interference not required.

Perhaps you think that I don't document these things because I'm lazy. Not true. I automate processes and tasks because I'm lazy. I don't document because it's a waste of my time, when I could be automating some other undocumented tasks.

When asked how my documentation is coming along, I'll reply mathematically to avoid ambiguity. I have documented zero automated tasks because I have multiplied the number of potential automated task documentation readers by the number of automated tasks and the expected result is zero. I have also used mathematics to derive a formula for saving labor: (Number of hours not spent repeatedly typing commands into a shell)/(Number of humans required to not type in those repetitive commands into a shell) = Undefined. And no, I can't define it, because it's mathematically impossible to define. You see kids, math can be fun and useful. Numbers don't lie.

Ken Hess * ADMIN Senior Editor