Knowing When to Automate
This episode is mainly geared towards helping developers decide when it is a good idea to automate a process and how to best convince their boss of the value of automating particular tasks. The guys discuss four arguments for selling the automation of tasks to the people making decisions where you work
“The biggest thing is getting rid of repetitive and annoying tasks, this is kind of a cornerstone of programming. It’s why we’re all here”
Automation helps to get rid of repetitive task and allows you to do things even when you are not present. You are able to react to changing conditions when they occur and make sure systems stay up when the cost of failure is high. This could include non-critical system failures that could lead to cascading failures in critical systems. It also avoids interruptions of higher priority tasks when the workforce is limited.
“Complex systems evolve from simple systems” ~ Gall’s Law
Start with limited straightforward use cases and work outward. Applying the Pareto Principle 80% of your results come from 20% of your work. If you can automate 20% of your work make that 20% count. Finally Murphy’s Law, anything that can go wrong will go wrong. This is especially important when you do a thing many times. Appropriate handling of errors must be in the plan or your automation can end up creating work rather than removing it.
24:09 Cost vs Benefit
“How much is this gonna cost and what’s it gonna benefit me?”
Given the cost to automate how long does it take to break even? Given the cost of doing the task manually? Don’t forget to include maintenance costs for the new solution in you calculation. Also don’t forget the opportunity costs of having to do the task in a non-automated manner. This is the easiest methodology to use when trying to sell automation to management.
28:38 Opportunity vs Drudgery
“If this is a repetitive task it’s not going to get your developer’s full attention”
Doing a task manually not only costs in terms of the time and money to make it but also in terms of the time and money that could go to other profitable tasks. There is also a cost in doing repetitive things in that you get complacent with repetition over time. This argument for automation is harder to sell to management but can often be effective in determining what you should automate for your own tasks.
32:54 Scalability vs Specialization
“This is especially pernicious in startup environments”
Sometimes a task is managable at the current level but you know that you’ll be doing a lot more of the same task. If the task has to be managed manually how does a team of people scale in regards to dealing with the task versus how does a set of machines scale? This approach deals more with the organizational difficulties of scaling a task as opposed to the direct cost to the business. It is an argument for the long term and can work better than cost vs benefit when exact numbers are not accessible.
37:31 Human Factors vs Inertia
“You will see a lot of organizational inertia with companies that are a little bit older”
Even if a business case can’t be made in terms of actual costs or risks of manually doing a task human factors come into play. People doing tasks repeatedly tend to get bored. This increases turnover which is a cost but hard to tie directly to the cost of the task. Sometimes the human costs of the repetitive task make it worthwhile to automate. Harder to sell to larger businesses this argument can be tremendously motivating for small business or personal side projects.
$10 USB Charger That Can Record Keystrokes
The FBI issued a warning recently about this inocuous looking generic charger that records keystrokes from wireless keyboards. The keystrokes are relayed via KeySweeper to the operator over the internet or stored on a flash chip. The effective range is similar to any bluetooth gadget but could be extended with an amplifier. Web tools evel allow live viewing of keystrokes and it works when the charger is unplugged.
“If placed strategically in an office or other location where individuals might use wireless devices, a malicious cyber actor could potentially harvest personally identifiable information, intellectual property, trade secrets, passwords, or other sensitive information. Since the data is intercepted prior to reaching the CPU, security managers may not have insight into how sensitive information is being stolen,”
Tricks of the Trade
Along the same lines as automation is a core principle that comes before automating which is batching or doing a lot of similar tasks at once. Many developers will keep their email client open all day and attend to tasks as they come in vs doing a bunch of similar tasks at the same time. It is easier to do a group of the same task in a row as opposed to switching between tasks. You increase your efficiency by breaking tasks into batches even if you are not automating them.