Which infrastructure automation actually pays back?
Most automation is judged on the time it saves and should be judged on the time it costs to keep working. A script that removes ten minutes a week and needs an hour of repair every time a dependency changes is a loss, and it is a loss that is invisible because the saving is attributed to the automation while the repair is attributed to maintenance. The tasks worth automating are identifiable in advance, and there are fewer of them than a new hire's first backlog suggests.
What is the actual payback test?
Frequency multiplied by the number of people affected, minus the cost of keeping it working. The last term is the one that gets omitted, and it is usually the largest. Any automation that touches a cloud provider, a CI system or an authentication flow will need attention several times a year because those things change underneath it, and that ongoing cost has to be set against the saving before anything is built.
The rule this produces is unglamorous: automate what is done weekly by several people, not what is done annually by one. A quarterly task that takes an afternoon is a poor candidate even though it feels wasteful, because a script used four times a year will be broken three of those times and nobody will remember how it works.
There is a second term that people leave out in the other direction, which is the cost of the task being done inconsistently. Access provisioning done by hand is not just slow; it is done slightly differently each time, and the divergence is the actual damage. Where consistency is the point, automate below the frequency threshold.
Which tasks reliably return more than they cost?
Ones with high frequency, mechanical resolution and a real cost to getting them wrong. The table sorts the common candidates by whether they earn their maintenance, which is a different ordering from how satisfying they are to build.
| Task | Typical frequency | Automate? | Reasoning |
|---|---|---|---|
| Deploying a service | Daily or more | Yes, first | Highest frequency in the estate and the thing everyone else waits on |
| Creating a full environment | Monthly, until it is easy | Yes | Frequency rises once it is cheap, and it is also your recovery plan |
| Granting and revoking access | Weekly | Yes | Consistency matters more than the time saved, and revocation is what gets forgotten |
| Base image and dependency updates | Weekly if scheduled, never if not | Yes | Only gets done at all when it is automatic, and it clears most scanner findings |
| Restoring a database from backup | Rarely, ideally as a drill | Automate the drill, not the decision | The value is proving the backup works, not saving the hour |
| Diagnosing a specific recurring incident | Varies | Write the runbook, do not automate the fix | Auto-remediation hides the fault and the cause stops being visible |
| A one-off migration | Once | No, script it for repeatability only | Building a tool for a single use costs more than doing it carefully by hand |
Which automation quietly costs more than it saves?
Bespoke internal command line tools with one author, wrappers that reimplement a supported product's interface, and anything that generates code nobody can subsequently edit. All three feel like progress and all three convert a documented public tool into an undocumented private one, with the documentation living in one person's memory.
Automatic remediation deserves particular scepticism. A job that restarts a service when it becomes unhealthy removes the symptom and hides the cause, so the underlying fault continues undetected until it grows past what a restart fixes. If you build one, make it visible and noisy: it should record every intervention somewhere a human reviews weekly, and a rising count should be treated as an escalating fault rather than as the system working.
The general test is whether the automation can be debugged by somebody who did not write it, at three in the morning, with only the repository. Anything that fails that test is a liability held by whoever wrote it, and its value evaporates on the day they leave.
Why does the manual step usually survive?
Because it is an approval or a judgement rather than a task. When people describe a process as manual, the mechanical parts are often already scripted and what remains is somebody deciding that this change is safe to release, or that this person should have this access. Automation projects that treat those as steps to eliminate stall, because the organisation is not trying to remove them.
The productive move is to automate around the decision rather than through it. Assemble everything the decision needs, present it in one place, and reduce the act itself to a single confirmation with a recorded outcome. That removes the twenty minutes of gathering context and keeps the accountability, which is what the step was there for.
This also explains a common false measurement. A team reports that deployment is fully automated, and it is, but a release still takes three days because it waits for a change advisory meeting held on Tuesdays. The automation worked and the lead time did not move, because the constraint was never the mechanical part.
Who maintains it after the person who built it leaves?
This is the question that should be asked at the start and almost never is. Every piece of internal automation is a small product with users, and it needs an owner, a place to raise problems and a decision about what happens when it breaks and the author is unavailable. Without those, it degrades into something people work around while nobody admits it is dead.
The cheapest protection is preferring supported tools over written ones. A managed dependency update service, a standard CI feature or a provider's own capability carries a maintenance burden somebody else pays. Internally written equivalents are justified when the requirement is genuinely specific, and that is a smaller category than engineers building them tend to believe.
Where you do build, make the failure mode obvious. Automation that fails loudly and stops is safer than automation that fails silently and continues, because a stopped job gets fixed while a silently degraded one produces incorrect state that surfaces months later during an unrelated incident.
How do you decide this afternoon?
Export the last month of tickets and interruptions, group them by title, and count. This takes an hour and produces a list that is almost always different from the automation backlog people carry in their heads, because memory over-weights the annoying and under-weights the frequent. Anything appearing more than four times with a mechanical resolution is a genuine candidate.
Then apply two filters to the top of that list. Is the resolution actually mechanical, or does it end in somebody deciding something? And who will own the automation in a year? Items that fail either filter go back to the list, and the ones that pass are usually a short list of two or three, which is the correct size for a first quarter.
For a candidate interview, this makes a good exercise. Give them a genuine month of ticket titles and ask what they would automate first and what they would leave alone. The answers reveal whether someone reasons about maintenance cost or reaches for the most technically interesting item, and that difference predicts a great deal about the following year.
Common questions
- How do you decide what infrastructure work to automate?
- Multiply frequency by the number of people affected, then subtract the cost of keeping the automation working, which is the term most people omit and usually the largest. Anything touching a cloud provider, CI system or authentication flow needs attention several times a year. The general rule is to automate what several people do weekly rather than what one person does annually, with an exception where consistency, not time, is the point.
- What infrastructure automation is not worth building?
- One-off migrations, bespoke internal command line tools with a single author, wrappers that reimplement a supported product's interface, and automatic remediation that restarts unhealthy services. The last is the most damaging, because it removes the symptom while hiding the cause until the fault grows beyond what a restart resolves. The test is whether somebody who did not write it could debug it overnight using only the repository.
- Why does automating a process not always speed it up?
- Because the slow part is usually an approval rather than a task. Teams frequently report fully automated deployment while releases still take days, since the pipeline waits on a weekly change meeting. The mechanical steps were never the constraint. The productive response is to automate around the decision: gather everything it needs into one place and reduce the act to a single recorded confirmation.
- Should you automate incident remediation?
- Rarely, and never silently. A job that restarts an unhealthy service masks the underlying fault, which then progresses undetected until restarting no longer helps. If you build one, record every intervention where a human reviews it weekly and treat a rising count as an escalating fault rather than as evidence the system is working. Writing a runbook for the incident is usually the better investment.
- How do you find automation candidates in your own organisation?
- Export the last month of tickets and interruptions, group them by title and count them. This takes about an hour and reliably produces a different list from the one people carry in their heads, because memory over-weights annoying tasks and under-weights frequent ones. Anything appearing more than four times with a genuinely mechanical resolution, and with a clear owner for the next year, is worth building.