This is still the header! Main site

Automation is Worth It

2024/06/20

It is a balance. Will you do the thing enough times so that the time spent on automating it will pay for itself?

At least that's the traditional reasoning behind automating stuff. See this XKCD comic with some calculations in the same way.

Is this reasonable though?

Trading off time spent writing code for time saved overall assumes that there is a specific task to be done a given number of times, or at a given frequency. If you only have three exams to grade, it's worth it to do it by hand; if you have 200, making up some solution to do the bulk might pay for itself. If you find a good system to prepare food for the entire week, you are now more efficient compared to doing something every day. Also, if you have a single-click solution to creating your new blog post every week, you can create them faster than copying files and directories into place.

Meanwhile, this other XKCD comic is arguing for being slightly more pessimistic than expected about how much time you will actually save with this. After all, automation rarely works for the first time. Maybe you're still better off doing it by hand?

When more is better

Spending as little time as possible on something is not the only goal you could have though. Sure, being faster is better, but you might be able to accomplish more by doing more of it.

Take writing scientific papers, for example. There is no magic maximum amount you're allowed to write. If you publish twice as much research as other people, you are an objectively more successful scientist, all other things being equal. The same is true for making most things that you can sell for money.

Making things easier and easier might seem like it has diminishing returns in terms of time saved, since there is less and less time left to save. On the other hand, if you spend a constant amount of time on each iteration, you can scale up your production arbitrarily.

Trying to compress a complex operation into one easy-to-perform step is also compelling for other reasons. While you can argue that setting up automation will probably take more time than expected, doing it by hand might also end up taking more time than you thought. If this happens, you will be very happy to know that your solution is easy to retry, with the correct parameters. (This is a good reason to turn almost everything into a script instead of a one-off command, almost right away.)

When you wouldn't do it at all

In fact, choices for doing things compete with other possible actions: you will just plain not do the things that aren't worth it, or you'll do the bare minimum you can get away with. Making them easier results in them being done more, in terms of total count.

This sometimes also leads to fairly counterintuitive results. For example, minimizing the amount of time it takes to select videos to watch does not lead to TikTok users spending less time watching videos. The action itself feels like it's worth it, intuitively.

This is one of those cases where your internal, intuitive, System 1 assessment of usefulness might not agree with your possibly more accurate, logical, System 2 version. The former is not entirely wrong though. Often, the difficulty level of doing something directly influences how much worth doing it actually is.

For example, people who have fun writing code are, annoyingly, also a lot more efficient doing it than the people who really hate the entire thing. In fact, it's likely that the latter people hate it because they feel it's not the best thing they could be doing right now. It's not what they are good at. It's not what they could be the most useful at.

Similarly, school assignments that feel stupid and useless and therefore require a lot of willpower to finish are, in fact, often stupid and useless.

If you can spend the time to make yourself mildly more efficient at something, you don't just win on the efficiency. You also decrease the amount of willpower needed to continue this course of action (assuming this is what you want). Thus, you spend more time on it, which, combined by the increased efficiency, makes things quadratically better.

How?

You can put things into your visual field, easily clickable. (It doesn't seem like a huge win compared to being able to type something into a terminal; it actually might be.)

There is, of course, writing scripts. Making your computing environment do complex things with minimal effort.

Similarly with actions that just happen, even if you put in zero effort. You do end up making more backups, for example, if you don't even have to remember starting them. Same with getting daily emails on how much traffic your blog articles got.

You can also automate planning your actions by, for example, having Beeminder force you into writing blog posts every Saturday.

In fact, blog posts themselves are a way to automate conveying your thoughts to other people, without having to make up a new explanation on the fly for every single person. A way of having people just magically emerge with opinions and feedback.