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 = process (i.e. fully defined series of steps) to manage resources, generally run by a machine
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?
Standardization = definition of common attributes for resources
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).
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.
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.