Why automate? I believe this is a very important question, as the why determines whether we should do it or not, when to do it, and how the automation tools should be shaped.

Many people think that automation is about saving time. You are supposed to automate something only if it will save you time in the end. Many tools reinforce this notion. Many will tell you how much time they’ve saved you, which is always wrong and it’s just a measure of how much time they’ve been running.

In my opinion, this is totally wrong. I mean, are you really saving time? How much? Have you taken into account the time spent creating the automation? The time maintaining it? And even if you do end up saving some time, how much will it be? Some people will say that if you save a few seconds a day after 10 years you’ll have saved days… Well, that might be true, but it doesn’t mean you will have an extra week of holidays, does it?

Does that mean that we shouldn’t do this? Should we always do everything by hand? Not at all. So, why automate? I think there are many reasons, and saving time is not what we should be focusing on.

  1. Reducing mistakes. The computer excels at that dull, repetitive work where you will probably make some mistake at repetition 700 that you won’t even realize.
  2. Morale. Nobody likes these kind of work, so why not reduce multiple steps to just one? it feels much better to look at your computer doing the work for you.
  3. Health. Repetitive movements are not good for your body, but the computer won’t care at all about this.
  4. Learning new things. When automating stuff, many times you will learn something that you’ll probably be able to use in the next automation or in your day to day tasks. Next time you need to automate something, it’ll probably be faster.
  5. Reduce friction. When something has to be done manually, it comes with some friction, so you will be less likely to do it if it’s not that important. If it runs by itself or it’s just one click away, the probability of it being done is much higher.
  6. Enabling things that weren’t possible before. Running tests every night doesn’t save me time; if it wasn’t automatic I wouldn’t do it. Automation means new possibilities, as some things would just not happen.
  7. Personalization. You can use automation to customize applications so that you can easily access some hidden features, because maybe you use the app in a non common way.
  8. Standardization. Automating everything means that there should be as little exceptions as possible, because they make things harder to automate. This means there will be less things to explain to newcomers, and everything should be simpler.
  9. Saving time. I know I said that you usually don’t save time, but in some cases, if you have a simple automation that you will use many times and requires little manteinance, it will actually save time.

What does this mean?

First, in general you should always automate if you have the time. The only scenario where I wouldn’t recommend it is when dealing with an ever-changing process. In such cases, automation might become fragile, demanding excessive maintenance. In any other case, just do it and enjoy the rewards.

Next, try to invest your spare time in finding automation tools and keep track of any repetitive processes that you encounter at a daily basis. You will find many opportunities for improvement.

Finally, automation tools should not focus on execution time; they should rather focus on creating the automations quickly and making it easier to debug when they fail.

Now, go and find a mundane and repetitive task and automate it!

Update (March 4, 2024): Added a post with some corrections.