Chapter 43. What Machines Do Well

Michelle Brush

One common approach to building automation is to have a human do the manual process, capture it, and then create a script that reproduces the human’s workflow. It seems reasonable—so what’s wrong with it? This approach doesn’t consider what steps required a decision that only a human could make, and it doesn’t recognize that a computer might be able to do some things better.

Understanding what humans and machines do well is essential to building good automation.

To automate a complex process, we need to evaluate which aspects of it require human interpretation and reaction. This usually means looking for places it could fail. If some command executed or service call returns an error, we should consider what the human would do at that time and compare that to what the machine could do. Can we replicate the same decision-making process in code? If so, we should. If not, we can fail the automation and alert a human to come make the right decision. For really complex and costly decisions, keeping a human in the process sometimes makes sense.

Another option is to redesign this step so it doesn’t require a human. Automation engineering may require revisiting the design and interfaces of systems it will automate, because there are design principles that make it easier for machines to decide and act. If the system being automated ...

Get 97 Things Every SRE Should Know now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.