top of page

Stop Repeating Yourself – Automate It

  • Writer: Andrew Kirch
    Andrew Kirch
  • Jul 1
  • 4 min read

Updated: Jul 7


“Don’t repeat yourself.”

I said, “Don’t. Repeat. Yourself.”

Looks like we need to talk about this.


In aviation, the leading cause of accidents is human error. The primary cause of major IT outages and security incidents is also human error. If you're still making manual changes, patches, and fixes to your production environment, it’s only a matter of time before something breaks. The good news is that you can reduce risk by implementing automation that prevents errors before they happen. Focus on three areas: eliminating repetitive tasks using free tools to show value, creating configuration consistency across similar systems, and automating system provisioning.


Step 1:  Eliminate repetitive tasks with automation

I started with “Don’t repeat yourself,” and now I’ve said it three times. Which, I’m told, is a waste of your time. So let’s get that time back for you.

The first step in eliminating repetitive tasks is identifying what you keep doing and finding ways to not do those things anymore. For the next month, keep a running list of every task you perform. Highlight anything you do more than once a month.  This is your first set of tasks to automate. Estimate how long each task takes, then start matching those tasks to tools that can replace you. For Linux environments, Ansible is a great starting point. It’s free, agentless, and can handle some Windows tasks too.  For more advanced tasks, Ansible can integrate powershell scripts.

In the past, I used Ansible to cut a pretty brutal 55-hour workweek down to 20. When two coworkers left, I didn’t replace them, I replaced most of their work with Ansible playbooks. The result was that I could cover the work of three FTEs in about 35 hours. This gave me time for long-neglected projects and removed the need to constantly say, “I’m too busy,”. 

The second step in eliminating repetitive tasks is targeting regularly scheduled maintenance. If it happens on a calendar, it should be scripted using Python, BASH, or Powershell.  Start with human oversight. Make sure the automation runs correctly and consistently. Once you’re confident in the results, let it run unattended and notify someone with the results and logs when the task is done. A simple email confirmation is enough. This shifts your time from doing the work to verifying that the work was done.

As this automation builds up, track the time you're getting back. Ten minutes saved here and an hour there add up quickly, especially across a team. After a month or two, summarize the hours saved and the manual work eliminated. Put it into a short report and show it to your boss. You’re not just automating. You’re adding value: fewer errors, faster recovery, and more time for real work. If you want buy-in for bigger automation projects, prove that the free small projects delivered value to justify the spend on more automation tooling.


Step 2: creating configuration consistency across similar systems

The second step in eliminating drift and error is creating configuration consistency. This applies across the board — from BYOD phones and laptops to servers and cloud workloads. We’re going to have an article soon about the challenges associated with cybersecurity and BYOD soon, when it’s done, we’ll link it back here!  Start by defining a secure baseline for each category of user device your company supports. Then enforce those baselines using policies managed through an MDM solution. This includes desktops, laptops, tablets, and phones — anything with access to company data.

Ideally, your MDM should cover every device your users use to access your company’s resources. Splitting management across multiple tools creates complexity and increases the risk of drift. Your goal should be one platform for every device in the fleet. 

For servers and applications, configuration consistency brings another benefit: real change management. We’re going to have an article about comprehensive change management coming in the future, and just like the BYOD blog article, we’ll link it back here!  Use a DevOps tool like Ansible or Terraform to create DevOps playbooks for deploying both applications and system configs. These playbooks should reflect your security baseline and be tested thoroughly before they touch production. Once in place, running a playbook at any time should never break your environment.  If it does, review why, and ensure that tests are written to detect this in the future.

Avoid one-off manual changes. If something needs to be updated, change the playbook and run it through a change management  process. That gives you a clear, auditable history of what changed, when it changed, and who signed off, no digging through shell history, no guessing which step someone skipped.  You will rapidly eliminate 90% of your downtime, saving the company much more money than the MDM and commercial automation ever cost.  Again, track these numbers, and report what you’ve accomplished to your boss.


Step 3: Killing your pets (don’t worry, it’s not that bad)

The third step in eliminating manual fixes and inconsistencies is automating provisioning. Every system should be disposable. Whether you're deploying servers, containers, or full environments, the process should be fast, consistent, and repeatable. Tools like Packer, Terraform, and cloud-native services from AWS, Azure, or GCP make this possible. You define what "correct" looks like, and then you deploy it the same way every time.

When a production system breaks, you replace it, automatically. This reduces downtime, simplifies scaling, and makes recovery a matter of your operations monitoring system running a script, not calling a fire drill. It also removes the single points of failure hidden in undocumented tweaks and undocumented special-case snowflakes.

For desktops and laptops, the same logic applies. Modern MDM solutions with features like Windows Autopilot or Apple Automated Device Enrollment make it possible to wipe and redeploy devices without IT intervention. When a user calls in with a problem, instead of troubleshooting, you just remote wipe it.  When the system reboots, the user logs in, their apps install, and their data is downloaded from backups.  This is a massive time savings for your support team.


Final Thoughts

Eliminating repetitive tasks, enforcing configuration consistency, and automating provisioning aren’t just technical wins, they’re operational leverage. They give you time, reduce mistakes, and make your environment easier to manage and scale. Automation doesn’t mean less work. It means less waste and more time for what actually matters.  Even if you can’t sell your boss on switching to an automation culture, you can still automate your job, and learn cool new things with the time you save.


bottom of page