When it comes to automating repetitive tasks done on a computer, there seem to be two schools of thought.
Views On Automation
The first view is that only fools would spend their time doing these repetitive tasks manually and not write a script. In this scenario, the developer “wins” while the poor commoner “loses”. Hm.
The second view is that developers are wasting their time since automating a task is often more complex than it seems. It would be simpler and more efficient to just suck it up and do it manually. These nerds can’t just keep their heads down and do simple tasks, they have to overcomplicate everything! Hm.
Personally, I think that the following graph by Jon Udell is closer to a real life and effective way of thinking of the link between automation and etime. Of course it’s also less funny than the xkcd one but that’s fine.
The Missing Factors
The thing is that we’re missing important factors when talking about deciding if automating a task is worth it or not. In these kind of graphs or comparaisons we’re mostly wondering if automating will make us gain time, when in reality time is just one factor in a complex equation.
Let’s take an example and say that every day I need to manually write down 10 numbers in a spreadsheet. Doing this will take me 1 minute, and automating it should take approximatively 10 hours.
If we only base our logic on time and I trust my estimate of 10 hours, it should become interesting to automate if I end up doing the task for more than 600 working days. That’s such a long time that it feels like there won’t be a discussion about it unless I spend at least a year doing it manually.
However that would be ignoring the other factors.
When doing a repetitive task, you’re not only spending time, but also energy. A task can be short, but it can be exhausting mentally. If every time I write down the numbers in my spreadsheet I have to be cautious to avoid making mistakes, it might take a lot of concentration and drain my energy.
Once the task is done, I might not be able to go back to the exact thing I’d want to be doing and pick something easier instead.
Doing repetitive tasks is rarely fun. Because of this, you’re probably building frustration while working on them. In the long run this can be a problem.
Once I’ve done the task a few dozens of times, it starts getting annoying. After hundreds of times, it seems like a complete waste of time and I might even get mad at the very idea of having to do it. Of course it will depend on different people, but I tried to sum up the idea in this graph:
Adding too many repetitive tasks that are not worth automating and you could end up with a higher turnover, a toxic atmosphere or some very low productivity number.
Every day I need to do this one task. I also probably have a few others tasks just like this. To be able to complete them on time, I might have to stop what I’m doing at some point and shift my focus to this repetitive task. Even if the task itself takes 1 minute, the context switching will cost way more.
Getting very good and as fast as possible at a daily repetitive task happens rather quickly. Once the task is mastered, all that remains is doing it over and over again.
In this situation, automating can become a great opportunity to learn something new and think outside the box. This is especially true for non programmers: they can take the opportunity to improve their Excel skills or get into a simple programming language in order to write small scripts.
When To Automate
As we saw, all these factors have an impact on productivity and long term. Focus and energy have a short term effect, when frustration starts to show on a more medium to long term scale.
Overall it is very hard to know when the optimal time to automate is. Do it too soon, you will waste time, do it too late and you’ll get the same problem. However, I feel like it’s more efficient to take a decision about this when you don’t only take time into account.