Just as automation fueled the industrial revolution in the early part of the 20th century, today automation is a cornerstone capability of modern digital business.
Automation helps you:
- Accomplish more in less time
- Reduce costs
- Eliminate human error
What’s not to like?
The challenge is that while automation is intuitively valuable, automation strategies that only address one infrastructure domain or one use case often come up short, with IT professionals scratching their heads and struggling to show its value.
Here are six tips to help you create a more successful IT automation strategy.
1. Remember Pre-Execution and Post-Execution Activities
When people think about automating a process, they often focus on the actual execution stage, where the “real work” gets done. However, there’s more to automation than just execution. Before you automate anything, make sure you understand the three stages associated with all automation tasks:
Pre-Execution: Decide what needs to be done, whether it needs approval, who should approve it, what justification is required, and when it should be executed. Dependency and preparation work happens during this stage.
Execution: This is the “automation” stage. Tools run, jobs execute, and things happen somewhere in the IT environment. It’s the heavy lifting — the fun stuff.
Post-Execution: Report what happened, document changes, and update audit logs and tracking databases. Verify that the post-execution state of the system is what you expect it to be. Did the automation actually succeed? If not, you’ll need to take corrective action, possibly invoking other automation actions to restore the environmental state to that before the first automation was executed.
When you estimate the time savings associated with a proposed automation, make sure you are taking into account all three execution stages. For instance, say you have a three-day process where each stage takes one day:
- Pre-execution: 1 day
- Execution: 1 day
- Post-execution: 1 day
If you automated this process using an infinitely fast automation tool (not possible), the best case is that you’d save 33 percent of the time, reducing the execution stage from one day to nothing. But you’ll still end up spending two days on pre-execution and post-execution tasks.
If you want to reduce the time taken on this task even further, you’re going to have to concentrate on the pre-execution and post-execution stages, shifting manual work from these stages into the execution stage where it can be automated. Possibilities:
- Pre-authorize a broad class of tasks to reduce or eliminate the pre-execution approval process
- Make tasks completely self-service, where users are responsible for a greatly-abbreviated pre-execution stage
- Automate some of the post-execution bookkeeping as part of the execution stage itself (e.g. reporting or verification work)
If none of these are possible, then accept the fact that your overall time and cost savings will be substantially reduced if you choose this task for automation. Factor the realistic estimates into your project prioritization process. Perhaps it would be better to focus on automating other tasks with greater impact.
2. Reduce Tool Proliferation
Remember the old saying, “The more, the merrier?” Unfortunately, that doesn’t apply to automation. The more automation tools you have in your toolbox, the more likely you’ll face an integration problem.
Fundamentally, tasks are automated bottom-up: First, you automate two or three subtasks and then you string those subtasks together using more automation. The new, main task calls the automation for the subtasks recursively.
As you introduce different automation tools into the environment, it gets more and more difficult to create those larger use cases by linking subtasks. Tools won’t work together and you can’t easily pass information about task status from one tool to another.
So, that means it would be good to standardize on a single tool, right? Unfortunately, that’s not realistic, either. Different systems (servers, networks, databases, middleware, applications, etc.) often have specific tools for each of them, sometimes produced by a variety of different suppliers and running on different operating systems. The upshot is that you’ll almost always be forced to have at least a few different automation tools.
Spend some time trying to standardize and reduce needless proliferation. One of the most common causes of needless proliferation is simple organizational dynamics. Isolated teams, each working on their own automation, choose different tools to solve the same fundamental problems:
- One team chooses an open source tool.
- Another team chooses a vendor tool.
- Yet another team chooses a text-based tool with a scripting syntax that’s now in vogue.
- Finally, another team chooses a GUI-based tool with a cool reporting interface.
Ideally, you can pull these teams together and reduce the needless duplication and proliferation by agreeing to a couple of standard tools. This is a great task for an automation specialist (Tip 4, below).
3. Orchestrate Across Tools
If you have more than one tool, or you’re battling needless tool proliferation, look to process orchestration to help you out. Unfortunately, the word “orchestration” has lost some of its meaning in automation circles through years of misuse, so we’ll need to define it. People often use “orchestration” synonymously with “automation” — anything that is automated is also orchestrated — but that’s not what we want.
For the purpose of this article, we’ll define orchestration as automation that is specifically targeted at linking together different process across various automation tools, with specific features to make integration easier.
Orchestration tools are often the fastest way to link together previously-automated subtasks into larger, macro-tasks. Orchestration tools simplify the process by supporting a wide variety of subtask interface methods (including but not limited to):
- Operating system script execution
- SSH to command line interfaces
- Web services
- REST interfaces
Some orchestration tools provide user-friendly interfaces from which to invoke these larger automation jobs. A user can simply select an action from a list and say “Go!” without having to understand all the underlying complexity which allows automation generalists to manage the process and reduces the need for advanced automation skills.
Make sure your orchestration tool supports the standard set of automation tools you already selected (Tip 2).
4. Create an Automation Specialist Role
In Tip 2, I said that one of the most common causes of needless proliferation of different automation tools is simple organizational dynamics. Different teams, working in isolation, choose different tools to solve the same fundamental automation problem.
This same organizational dynamic can also hamper the creation of more advanced use cases that span different functional areas. Each team is responsible for automating tasks within its own stovepipe, but nobody is responsible for automating across stovepipes.
To combat tool proliferation and foster greater end-to-end automation, create an automation specialist role within your organization. The automation specialist is responsible for:
- Helping select a standardized, limited set of automation tools (Tip 2); the specialist doesn’t have to select every tool, but she needs to provide a focal point for the tool selection process and reduce needless proliferation when she sees it.
- Selecting orchestration tools to integrate automation across individual teams
- Educating and training teams on automation best practices
- Developing automation strategies; You need more than ad hoc automation, you need a strategy that focuses on delivering business value
- Designing, supporting, and delivering end-to-end automation that deliver measurable results
- Creating dashboards that show automation status and real-time cost savings and value-delivery over time. Remember automation is the gift that keeps giving, returning more value each time automation results in success
It’s important to note that automation specialists aren’t the only people identifying opportunities for greater automation or creating the actual automation. Rather, an automation specialist will work with multiple teams to ensure that the right use cases are identified, designed, and managed using a coherent strategy and process.
Automation specialists will have unique skill sets:
- Technical expertise in automation systems, particularly orchestration
- People skills so they can work well with individual teams or business stakeholders to help develop larger, end-to-end use cases
Look for these individuals throughout your organization or recruit new talent with experience and an appreciation for automation. They will be instrumental resources as your automation landscape grows, driving a culture shift that looks to automation as a first step and not an afterthought.
5. Automate End-to-End Business Services
Many organizations (frequently those without automation specialists) will automate small pieces of work but will stop short of delivering full services.
For example, when a user requests a “server,” you might route that request through an ITSM system and then break out the top-level request by hand into three individual requests for compute, storage, and network resources. Those sub-requests are then routed to three individual teams behind the scenes. While each resource might be provisioned and configured using automation, the total service is delivered semi-manually.
At first this might seem tolerable, but those manual steps that tie everything together are ripe for errors and delays. Further, you probably have pre-execution and post-execution stages (Tip 1) for each sub-step.
Look for opportunities to tie together multiple automation jobs that target complete business services. Think like a service consumer and ask yourself, “What are the common use cases for my consumers and how can I make each of them a fully-automated, self-service experience?”
Once you have identified the use cases and prioritized them according to business value:
- Identify existing automation at the stovepipe level. You’ll want to leverage whatever already exists, if possible, rather than recreate it from scratch.
- Use orchestration and process management to tie things together. If you can fully automate a process, use orchestration. If your end-to-end process still requires some number of non-automated steps, consider using process automation to help bridge the gap.
- Identify a method for users to invoke these business-level automation jobs. That might be a flexible service catalog, an ITSM system, or a simple web page.
6. Create “Before” and “After” Measurements
Whenever you identify an opportunity for automation, make sure you benchmark the existing process before you develop the automation. This will help you articulate the value of the automation to the organization in meaningful terms once you’re done. Without this, it will be hard to show exactly how much time or money you’ve saved.
This seems simple and obvious, but you’d be surprised how many organizations charge into an automation project without taking baseline measurements before they start.
Once you’ve developed the automation, take new measurements and quantify the time and cost savings. Find a way to articulate those savings in status reports and organizational presentations to highlight the value of the work you have done. An ideal way to do this is to add counters and graphs to self-service interfaces where users access automation so that everybody is aware of the total savings every time they use them. Make sure you are creating metrics that the business will understand and appreciate.
Once you have your measurements, make sure you track them over time. Are people using automation as much as you thought? Are they really saving the company the time and money you thought they would? Any deviation between expected outcomes and post-project reality might be highlighting a deviation between the true business needs of your user base and your automation work. Take whatever you learn and roll it into your future strategy planning.
Finally, start a process of continuous improvement. Use the numbers to help you look for areas where you can:
- Make your automation more efficient, saving additional time or reducing resources used during the execution of the automation. Perhaps you initially automated an inefficient process and you can simplify the process itself.
- Move activities out of the pre-execution and post-execution stages and into the execution stage. Examples might be to streamline the approvals process with pre-authorization or automate post-execution testing and verification.
- Use orchestration to link multiple automation jobs together into high-level business service automation. You’re never done until everything in your organization is fully automated, so this is a rich area for improvement.
Get Out There and Automate!
Remember that automation is a great way to save time, reduce costs, and eliminate painful human error. With an effective automation strategy, you will be successful!
These postings are my own and do not necessarily represent BMC's position, strategies, or opinion.