One goal that seems to be common among most organizations is to automate as many repetative manual tasks as possible. Automation has many advantages, it removes the risk of human mistakes, it reduces the time it takes to get things done, it frees up human resources, and hopefully saves the business quite a lot of money.
As developers we have the ability to automate a lot of repetative tasks, and we do, but are we taking automation too far sometimes? Is there a need to also look at the negative aspects of automation?
I believe that, when it comes to automating manual work, we tend to focus solely on the benefits and forget to think about the drawbacks and risks involved. Below I will list some of the risks I have seen that comes with automation.
The process becomes hard to understand
Automating a process often makes it almost completely opaque to the majority of the people in the organization. It goes from being something that you can easily track and talk to people about to being something that only a few developers really understand (if you are lucky and the developers who automated it are still part of the organization).
This leads to the organization becoming dependent on the development team for support. Questions on why the outcome from the process looks a certain way, how to use and integrate with any tools and so on now needs to be answered by the development team, who often has a lot of other tasks and may not prioritize support very high.
Minor deviations becomes a nightmare to handle
It is often easy to make small adjustments to a manual process for those cases that doesn’t fit 100% into the ordinary workflow. You may attach a note with some extra information, write something in the margin and then just continue with the next case.
In an automated process however, it is often required that every case is handled the exact same way. There is no room for adjustments. So when these cases happen, and they will, the process needs to be updated by the development team, or the development team might need to carefully make manual insert and adjustments to databases and handle that single case. This makes any small deviations very expensive, and risky, to handle.
When things go wrong, they go very wrong
In a manual process, mistakes are often minor and can be adjusted when discovered. When an automated process go wrong the impact may be huge.
There are many examples of automated systems causing havoc because of bugs or configuration mistakes. The computers works extremely fast and will continue to produce incorrect output as long as the bug is present or the configuration mistake is discovered and fixed. The manual work needed to fix all the incorrect output might be very costly. There is even an example of a company loosing $1 Billion in 45 minutes due to a configuration error in an automated process.
Here is a list of the 7 worst automation failures: https://www.csoonline.com/article/3188426/the-7-worst-automation-failures.html
A single equipment error causes your entire organization to halt
When a process is automated the manual way of doing the work is often removed. This can cause large parts of you organization to become dependent on a single piece of computer equipment. I have seen this happen many times during my years as a developer, with sometimes hundreds of employees being unable to do their work.
I am all in favor of automating repetative tasks, and I strongly believe that it is a good thing to free up human resources for more qualitative work. But I also believe that we need to be aware that automation comes with risks and drawbacks and we should think carefully before carelessly automating everything we think can be done by a computer.