The Automation Plateau

January 14, 2020

Tweet This:
Share on LinkedIn:

By Taylor Owen, Kovarus Automation Practice Manager

Often times when talking to customers who have started implementing automation in their environment, they’re happy with the results of the initial implementation. Over time though the return on the time spent automating things starts to diminish. Sometimes the customer will blame the technology, lack of resources, complexity, etc. or a combination of all of these, which can be valid. Most of the time however it’s a result of having to maintain existing automation tasks and resources not having the time to dedicate to automating new tasks.

I call this situation the automation plateau. What is really the cause of this automation plateau? Honestly, it can be a result of many different things. Before throwing more people at the problem, as most tend to do, let’s explore what can be done with existing resources to make them more effective.

Common Issues

Lack of Version Control

More than half of the projects I’ve seen use some kind of code version control, but not all projects do. Some rely on the code to be accessible via some centralized server or shared directory. To help with scalability and accountability all code, scripts, etc. that are run on systems need to be placed in version control. This allows more insight into changes, approximate what the code was when it was executed, when were changes made to the code, who made those changes, and easier integration with other toolsets for further automation. This is the critical first step to ensuring that the team’s automation efforts can scale effectively with the current number of resources.

Duplication of Effort

With automation projects there are multiple groups working together on automating the same application deployment, operating system configuration management, etc. These efforts often times have some overlap and lend themselves to a duplication of effort. This can come from one group just not knowing what has already been automated to one group simply trying to do it better. For these reasons it’s important to have a centralized version control repository that other internal groups can leverage for automation. This also allows other groups to expand, improve, open issues, etc. to make existing code better versus multiple groups approaching the same problem in different ways.

Lack of Automated Testing

When talking to customers about creating a shared repository of code which other groups can edit, there is often times hesitation in doing so. Most of this hesitation comes from the fear of, “What if their changes break my code?” While this is a valid concern, there are ways of dealing with this through testing. When automation code is written it is tested in some manner, but it tends to be very manual. When you’re trying to maintain a centralized code base where multiple people can edit it, it is not feasible to manually test everything to ensure that those changes didn’t break something else.

This is where automated testing comes into play. This is nothing new in the development world, but for system administrators, engineers, network administrators, etc. it tends to be new to them. Through the use of automated testing a new change can be tested before it can be merged into the code base. This allows a higher quality in released code and a higher velocity of changes while freeing up everyone else involved with the change. The best toolsets for testing changes are CI/CD related tools such as Jenkins, Bamboo, CircleCI, etc. Leveraging these technologies, testing can include steps such as automatically creating VMs, applying the code to VMs, and then verifying the changes are as expected. There are other tests that can be done prior that are quicker to execute and can catch potential issues faster. If there is a potential issue, the faster one can fail during the CI/CD process the better.

CI/CD Automated Testing Diagram

Diagram key:
Blue = Manual Steps
Green = Automated Steps

In a nutshell the best way to alleviate an automation plateau is to implement a CI/CD pipeline that allows a shared development platform that can rapidly and efficiently test code and changes. This allows the constant improvement of existing code bases that everyone can benefit from, enables collaboration between silos, and increases the efficiency of a team of automation engineers.

Looking to learn more about modernizing and automating IT? We created the Kovarus Proven Solutions Center (KPSC) to let you see what’s possible and learn how we can help you succeed. To learn more about the KPSC go to the KPSC page.

Also, follow Kovarus on LinkedIn for technology updates from our experts along with updates on Kovarus news and events.