Automation can be a big time saver and create consistency for IT pros tasked with repetitive processes, but if used for the wrong processes, it can also end up being more work to implement than it's worth. Surely there's some balance between the time savings versus how much effort it takes to set up a workflow. Or, should you spend less time worrying about what to automate and get started automating just about everything? This month we ask our Advisory Board experts how they find this balance and whether the size of your company should be the determining factor.
Dave Sobel, Evolve Technologies
When deciding what to automate, I'm a believer in automating as much as you humanly can. Any task you will do more than once should be automated, and if you're unsure if you'll do it more than once, automate it anyway. The reason for this is to create consistency in an infrastructure. When you automate a task, you can be assured it will be done exactly the same way in both places. Doing a task by hand leaves small variables open to human interpretation. The use of automation ensures consistency and repeatability.
Automation also enhances disaster recovery, as anything that you created previously can be recreated via automation. Any IT organization should have some automation framework in place, and those companies too small to have their own should work with a solution provider that offers one, such as a managed services provider.
Jason Helmick, Concentrated Technologies
I'm often asked, "What should I automate and what should I not?" This question is not as easy to answer as some would believe, but here is how I approach the decision about what to automate. Let's start with the benefits of automation:
- Automation removes human error. This is often overlooked, but it's one of the reasons many of us have automated for years. Think about your disaster recovery processes. Do you really want to rely on a human who is suddenly awakened in the middle of the night -- under considerable stress -- to correctly start a recovery process manually? Automation removes human error.
- Automation removes repetition. If you or another admin performs the same repetitive task -- automate it!
- Automation is documentation. We have all had the experience of desperately trying to pick the brain of an admin leaving the company -- to learn how they managed their product -- because there was no documentation. When something is automated, the exact management process is documented.
This might make you think I recommend automating everything, but that's not always the case. Suppose I wanted to create a new Active Directory site and site link for a new branch office. It would take me longer to figure out how the cmdlets work and write the automation than to just open Active Directory sites and services and make the new site. Why would I waste my company's money automating a quick one-off task? I don't usually automate one-off tasks, but I would take the time and investment to automate the disaster recovery of Active Directory, including my entire site topology.
Selecting what to automate is not difficult, but first ask yourself, "Do I really need to automate this, and is it saving time and money?" Automation is quick with PowerShell, but as the complexity increases, so does the development and testing of your automation script. I look at the return on investment for every automation task. Here are factors that I consider when automating:
- How many future human-hours will I save over the next year if I automate this?
- How long do I think it will take to automate and test this task? (How much time am I saving versus how much time does it take to write the automation?)
- Is this a critical path -- such as disaster recovery -- where removing human error would be more beneficial than the development cost?
- Is this a management process that needs to be documented with automation?
The moral of the automation story is to make sure that you're automating tasks that should be automated and not everything that comes to your desk. Making that decision, usually based on time saved and a reduction in human error, cuts down the amount of automation to only the tasks that make a good return for the business.
Rob McShinsky, Dartmouth Hitchcock Medical Center
I am on the pro-automation bandwagon whenever I can. Apart from troubleshooting tasks, most administrative tasks are repetitive by nature, so why not automate the procedure? Whether it be a scripted or wizard-based automated task, the creation of an automated process takes time, sometimes days or weeks, but it also reduces variations in your environment that could crop up. VM templates are a prime example of this. Sure, you could build a VM from scratch every time and follow a menu of tasks for hardware configuration, software installation and configuration changes, but all these steps are an avenue for variation.
As a father of four kids, there are days when I am considerably less focused than others, so the time to prepare your base image for a VM template or other automated tasks is well worth the effort, because I know when I am finished, each provisioned VM will be the same. In case there is a problem with a provisioned template, I know the extent of my problem and can target those with a fix. In my mind, less variation equals less administrative oversight, which can be critical for lower-level administrators to be effective without needing a high level understanding of the process's inner workings. However, being overly cautious of your automation talents is necessary. Blasting mass changes without first hitting a test group and allowing for some time could leave you with a long night of cleanup.