Gant Software Systems

When To Automate

As software developers, one of the main things we are tasked with is the automation of business processes. Typically, we’re given a task to do, with much of (if not all of) the process laid out and told to get it done. As a result of this sort of thinking, it tends to be our default mindset to either attempt to automate everything, or to avoid automating anything in our own workflows. The decision of when to automate is something a lot of developers struggle with, as it’s very easy to either put up with irritating, repetitive processes, or to get lost in the weeds trying to automate something that really isn’t worth bothering with.

A few considerations come into play when one is trying to determine whether or not to automate a process. The first of these is the cost of completing the task, in both time and money, versus the cost of automating the task. This is usually the first thing people consider when determining whether to automate. It’s usually a pretty simple calculation, based off of how long it takes for the automation to pay off in terms of the time and money required to complete a task. Taken alone, it’s a bit naive, but it’s often more than enough justification to bite the bullet and automate something.

However, just because a task is low enough in cost that automating it doesn’t pay off within a short time period doesn’t mean that it isn’t a good idea to automate. There are other practical considerations as well. In particular, what is the cost of failing to perform a task? Frequently, tasks are inexpensive to perform, but very expensive if ignored. For instance, at a previous employer, I had an item on my daily checklist that had to be checked at 10:00 every night. I took about a minute and a half to do the task, which is pretty cheap when it comes down to it. Had I not done the task (which involved looking for anomalous data in a database), everything might have been fine. However, it could have also been horrendously expensive, causing federal authorities to show up, and/or resulted in a lawsuit. The system has since been replaced, but that stopgap measure that I was in charge of was there for most of a year while it was being rewritten. In this case, the low cost of accomplishing the task would have made it unlikely to be automated, but the high price of forgetting to do it made it an excellent candidate for automation.

Going further, when evaluating whether something should be automated, one should also consider the cost of incorrectly accomplishing the task at hand. Computers, properly programmed at least, don’t make as many mistakes as human beings do. Sometimes, incorrectly performing a tedious task can be terribly expensive. You should factor that into your calculations. If the cost of incorrectly doing the task is high and the likelihood of screwing up is high enough, it is often well-worth the time to automate a task, not so much for the monetary value, but for the value in reducing risk. In addition, when considering the cost, be sure to also include the costs of cleaning up the mess generated by a mistake, whether that includes financial cost ($x to fix the server) or costs to your company’s reputation (having to apologize to your entire customer list or inform them of a breach might or might not cost that much directly, but the long-term effects are expensive), or even damage to morale among employees.

Even further afield, sometimes, a task is just plain annoying. Maybe it has to happen during hours you’d rather be sleeping. Sometimes the task isn’t so bad, but it interrupts something else that is critical, like the aforementioned task that could have resulted in lawsuits. Sometimes, the task just puts you in a bad mood, for whatever reason. In these cases, the task should frequently still be automated, if possible, as soon as possible. Like any of the above cases, there is a cost here, and it is one that continues growing and is hard to track. While we in the industry are pretty quick to tell people that their feelings don’t matter, feelings often do have a cost. In particular, when you have to babysit a process that stresses you out, irritates you, and takes up time that could be better used, there is, in fact, a cost here, especially if it eventually contributes to you leaving your employer or other problems. It’s even more pronounced when the same annoyance is spread across an entire company. In aggregate, having a number of these sorts of problems will eventually cause turnover, which is hideously expensive.

When deciding whether or not to automate a business process, it’s important to take the time and determine whether the automation is worthwhile, usually using a cost/benefit analysis and determining how long it will take for the automation to pay for itself. That said, it’s also important to adequately express the cost of the existing system in order to get the best bang for the buck. An automation might, when viewed from a purely financial perspective, appear not to be worth the time and expense of implementation. However, when ALL the costs are weighed, particularly the human factors, sometimes that can change, sometimes drastically. Just something to think about.