For whom the bell toils

The site reliability engineers, the great folks at Google who keep the servers running day and night, have a term for it: Toil.

This term refers to the tedious tasks that are part of daily routines, and the SRE have one mission: Eliminate it.

I remember back in 1999 when we worked on Mission: Impossible for the first Sony PlayStation. We had a bunch of audio files, but they didn't sound powerful enough, so one of us (poor Ivo ended up drawing the short straw) needed to fix each file.

The audio tool had batching support, but as always, we were in a hurry, nobody was familiar with how to set it up, we were worried that some of the files might get ruined by the batching without us noticing, so we chose doing it manually instead. So Ivo ended up opening hundreds of files, one by one, choosing the compressor option, and saving the file.

Today, this would be unthinkable for me. People are unreliable and suck. The more can be automated, the better. I started moving as many of my menial tasks into the trusty hands of scripts as possible.

When I plug my phone into my laptop, a script will automatically copy all photos from it to my secondary NAS backup and delete older pictures from the phone. Another script scrapes all my incoming emails for mails from Paypal and inserts data about incoming transfers to a database. Even eliminating tasks that only take a few seconds is a no-brainer for me.

Of course, a good bunch of you are smartasses and will immediately point me to the obligatory xkcd cartoon:

(Taken from https://xkcd.com/1319)

There's a good amount of truth to this comic. Setting up proper automation is a time sink. Worse still, those damn scripts break for random reasons, and I spend quite a bit of time fixing them. Still, they're a worthy investment. But why?

I mentioned the first reason - everything people do by hand is prone to errors. A simple slip-up, and you have a problem at your hands. You're the least reliable link in the chain. Remove yourself from it.

The main argument people make for automation is the first panel pictured above - it's a time investment that will eventually pay for itself. And that's very often true. Even a short task that only takes a few moments adds up over time.

But then there's another reason that isn't mentioned as often, yet more important. Even if the time savings from automation would be a slight net negative, I'd still do it. Why? Because removing a task frees up my mind.

Every day, you have to deal with a million of distractions, and every single one takes you away from the important things you need to do. Context switches are expensive for human beings. Every pending obligation is a bump inside your brain that obstructs your thought process and prevents you from being able to think clearly.

There's more than just automation behind this philosophy. You can also simplify existing processes. As an example, I have tons of tabs in Chrome open, but I keep tabs of related pages (like the IDE, the test page, and the debugger) next to each other so I can navigate with PgUp/PgDown, instead of spending a few extra seconds switching tabs with my mouse. Even just a few seconds are enough to derail your train of thought.

And as you probably already guessed, I'm going to take this computer-specific topic and apply it to my life in general, like I often do.

Toil is everywhere in your life. In some cases, you automate it - like automatic bill pay for utilities and credit cards. A robot vacuum like Neato (although these things get stuck like idiots, so that partially defeats the purpose). Electronic delivery of bills and statements. Timers for lights and other electric devices. Instead of forcing yourself to remember repeated tasks, use reminders. Your goal is to free up your brain.

Also, if you have kids, have them start with chores early. You're punishing yourself if you don't - you have more toil to drag you down, and they'll have a harder time getting used to putting work in.

You want to be able to go through your day with a sharp focus and the least amount of distractions. If there's anything that's repeatedly breaking up your flow, find a way to get rid of it.

Make an audit. Look at what you're doing every day, and what you can try to simplify. Toil sucks.


Comments