Standardization: Motivation for Automation

Automation saves time. This can be considered a universal fact, but the question is: How do we enable it? One key is standardization.

Automation: What are some of the challenges?

First, let’s define automation.

Automation can cover anything really, e.g. a process to cook a meal or to fold clothes. To be effective, processes have to be fully defined, covering all use cases to get the job done, e.g. if clothing article is wrinkled, then iron first. Implementing automation is generally difficult, as it often ultimately entails writing code so it can be run by machines (perhaps a robotic arm or two in the aforementioned examples). Supporting/maintaining it can be even harder as resources scale and change.

What is standardization and how does it help?

Common synonyms include: abstraction, normalization, parameterization

Standardization is the practice of breaking down your resources into common attributes. For a clothing article, this may include: type, wrinkled, clean, dry, shelf. It helps minimize automation logic as it allows any resource to be treated simply as a set of values for these attributes. It also increases the impact of automation as new resources can be incorporated just by specifying a set of values. This impact motivates us to further standardize and automate — a (not so) “vicious” cycle — since it gives us confidence that the process being developed and maintained will be scalable/future-proof (so long as you properly enforce the standardization over time).

An Example

Suppose you own a convenience store that sells various items and you need to automate the processes of stocking and selling items. How would you go about this? First, you would break down your items into attributes that are important to your processes, i.e. you would standardize them.

name, price, cost, vendor, expiration date, aisle, shelf, size, weight, refrigerated, minimum age to purchase

With the above attributes defined for each item, you can define your processes to simply depend on values for these attributes. This lets you define how to sell and stock a general “item” and not have to worry about any details beyond your defined attributes. To help further automate these processes, you may also want to define attributes for a “sale”.

date/time, item name, quantity, payment method

This allows you to sum up how many items of each type you have left in stock so you know when to call a “vendor” (potentially another resource to standardize) to restock it. It also helps you analyze what items sell best and when. Of course there are many more resources and attributes that can be explored for this example, but we’ll leave the Running a Convenience Store article of this series for another time.

Summary

The key to developing process for automation is to maximize the impact it delivers while minimizing the ongoing work required to maintain it. Identifying and standardizing the resources that need to be managed motivates automation by allowing process to treat all resources as the same while establishing a blueprint for future resources.

Working @ aramse.io, delivering cloud-native solutions to help companies streamline DevOps

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store