Thursday, January 28, 2016

Snowbound: Thoughts on Automation

Baltimore, Washington, D.C., and the corridor received record snowfall over the weekend. I measured 28" in a 24 hour period, but measuring snowfall is notoriously difficult and inaccurate. Some locals reported paltry totals in the teens, while others likely exaggerated 36" depths and greater. In any event, the demi-mountains of snow piled along streets and roads confirm non-trivial totals, regardless of the accuracy of the measurement.

In previous years, when faced with the task of removing snow from the driveway, I had two options: retrieve the shovel from the garage and start hefting loads of snow; or cross my fingers and hope that the friendly neighbor would offer to clear the drive with his snow thrower. Usually, it'd be a combination of both: I'd start by struggling with the shovel, and in an act of pity, the neighbor would materialize at the end of the driveway to help out. Well, maybe not pity. He's genuinely friendly, the neighbor.

I haven't left the house since Friday.
This year, I decided it was time to stop relying on the kindness of neighbors; I joined the crowd of consumers who rushed to the local Sears to buy a snow thrower. It's not the best, not the worst, just a tool to facilitate the wintery ritual of moving snow from here to there. There's a photograph of the machine, with your humble correspondent dressed for the weather.

Moving snow from here to there with the snow thrower is stupid easy. Learning to use the machine took all of 10 minutes, after which time it was a matter of following a short litany of steps:

  1. Point machine at snow
  2. Engage auger
  3. Engage drive
  4. Keep up
Aside from totally confusing the hell out of my Apple Watch (which recorded the sloth-like advances of the machine and I as "exercise"), the process of moving snow with the machine was so easy that I found myself considering the state of automation in IT, which is something that no one is thinking, talking, tweeting, blogging, podcasting, speaking, or otherwise considering at all.

And yet.

The Machine and the Shovel

Before the snow thrower joined the growing collection of seasonal machines in my garage, there was the humble shovel. Humble as in: I bought it at the grocery store a few years ago. Its only metal component is the screw which fastens the handle to the blade; the rest is various plastics. It is an inexpensive thing, but it satisfies my requirements, so it earns its place in the garage.

The shovel served its purpose well. The problem was that I couldn't operate the shovel for the duration of the task: cleaning the driveway takes hours, and I'm not a millennial or anything. In past years when I did manage to complete the task without aid from the friendly neighbor, the job was 100% complete. Drive clear, mailbox accessible, front walk passable... basically, a peninsula of asphalt surrounded by a snowy sea. It was a thing to behold, if contrast and clean lines speak to you.

This past week, I observed, scientifically, that using the machine to move snow was approximately 10000% easier than using the shovel. What had taken hours in the past now took 30 minutes, and that's rounding up a bit. The machine is superior with regard to speed, and reduced my effort from humping 50 pound scoops to meandering up and down the drive. The shortfall of the machine, however, is in its ability to handle the details of the chore: when I finished with the machine, the job was about 90% complete. Drive clear, except for the bits the machine couldn't reach close to the garage, close to the front walk, and close to the mailbox. So I found myself putting the machine back into the garage and reaching for the shovel.

The machine made 90% of the work easy, and was utterly inept at the remaining 10%.

The Low A: 90% is Good Enough

The machine's 90% mark is good enough for an A grade, albeit on the low end. And its ineptitude is intentional, not a shortcoming. To make a single machine that is capable of completing 100% of this work would require every possible snow-moving scenario to be both considered and addressed; such an effort would consume massive quantities of time and money, and the cost of completing the remaining 10% would render the machine a financial failure.

We're in the realm of the Pareto principle, for certain.

Automation in IT is no different. Automating 90% of infrastructure tasks is easy. I mean, how many times do we deploy a switch, a VM, a container, an application, a whole infrastructure in the exact same way? Most of the time, I'd wager. So automating that chunk of work is worthwhile. Time well spent. Money invested. But automating the atypical configurations that only a small minority of use cases require? That's rarely worth either the time or money.

Let's be honest here: I'm talking about what happens to people in IT. We've heard the chicken little types for years now, clamoring on about the sky (cloud?) is falling and that we'll all be replaced by clever scripts. But that's not true at all. While much of our work will be automated, infrastructure workers will fall into two categories: the automation junkies, and the "10 percenters." To suggest that either group is more important is to have no sense of history, not just in tech but in Western civilization.

The invention of the snow thrower did not obsolete the snow shovel. And automation in IT will never obsolete the need for craft IT.