The Cost of Automation
I love automating things. It's one reason I fell in love with programming even, because if you can write better programs you can automate more things. But there are many costs to automation that people don't always understand, or care to admit. Have you ever spent 25 hours automating something that won't take 25 hours of your time over the next year? Then after all your hard work the process changes and your shiny program now needs another 25 hours to make it work again.
It can be hard to decide when to automate, or when to just leave something alone. The available choices and the impact from decisions will vary greatly from organization to organization. If you're in a highly technical organization the impact can be much lower and automation can easily take over more. But, if you're in a more typical, non-IT driven company that still has IT needs, the decision of what to automate can be tricky and you should proceed carefully. Note: I didn't say avoid automation, nor will I ever. I am simply saying "Choose wisely!"
Why Automate?
Maybe you have a report that runs from a data system that you have to format in Excel every week. Or, you could have a number of files that need renaming to a standardized format. Or, you may have two distinct data systems that don't talk and you want some of the data to sync on a schedule. Whatever your redundant process is, you just know that you hate it with a vengeance.
So why should you automate?
Because you are human, and humans make mistakes that a well behaving program doesn't make. You also can't type or move that silly mouse thing around faster than a computer can execute lines of code. Redundant, time consuming processes become error-prone with human boredom, fatigue, and absent-minded clicking. Automation reduces human error, saves time and improves efficiency. Most of the time...
Costs of Automation
The problem with automation is supporting said automation. The costs can be related to having someone on staff who knows the language at hand, staff time to support the automation and update it as things change over time, hardware to run systems, and so on. Whetherer it's simple VBA automation, a complex program written in a scripting language, or a server running a continuous integration (CI) server, there are costs associated.
I recently migrated rustprooflabs.com to a VPS from a shared hosting environment. Also, in recent history I have become acquainted with two new systems, Vagrant and Chef, and was really excited to use the pair to deploy my new VPS. But, the cost to do so at this time unfortunately outweighed the benefits.
What were the prohibitive costs?
It came down to time, resources and security. I needed the migration to happen, and happen quickly. I didn't have enough time to learn all the ins and outs of using two new complex systems in a secure enough way for production servers. I already have my server configuration tracked in source control and scripted to deploy (almost) automatically, so the benefits of having chef do so were minimal. Second, I only have two VPSs at this time, so the benefit of a more streamlined system is also minimal. If I had 10 servers it might have been a different situation. Would using something like Chef still save me time? Yes. Just not enough right now. With minimal immediate benefits, limited staff hours, and a high priority on getting the project done, it wasn't the right time for me to make the switch.
Decide When Appropriate
There isn't a clear-cut way to decide when it's worth the time to automate something. If you have the time to spare and it will save you more time in the long run, it's likely a good decision. If data accuracy would improve by having humans not involved... again, probably a good idea to investigate automating the process. Think critically, estimate costs vs. benefits, and when all else fails... ask for advise!
Automating processes can have a huge impact on the business -- make sure you're leaving the right impression!