LibreInfra Field Notes
Automation that cannot be transferred is another dependency
Automation removes repeated manual work, but it can still hide authority, state and knowledge in one person.
Automation that cannot be transferred is another dependency
Automation removes repeated manual work. It does not remove responsibility. When only its original author can understand, change or recover it, the organisation has converted a human process into a less visible human dependency.
Automation often looks like evidence of maturity.
Provisioning is encoded. Deployments are triggered through pipelines. Accounts are created from workflows. Policies are evaluated automatically. Scheduled jobs repair, copy, rotate and reconcile infrastructure without an operator touching each system.
The manual steps disappear.
Then the person who built the automation leaves.
A routine change fails because the pipeline depends on an undocumented branch. A credential expires inside a runner nobody owns. A script produces the right result, but no one understands what it is allowed to delete. The automation continues to act with broad authority while the organisation becomes increasingly reluctant to change it.
The work was automated.
The operating capability was not transferred.
The central test
Automation is ownable when another qualified team can understand its decisions, recover its control plane, change it safely and operate the affected system when the automation is unavailable.
Code can concentrate control as easily as it distributes it
Manual infrastructure concentrates knowledge in people.
Automation can move that knowledge into code, but the move is not automatic. A script may encode actions while leaving the reasons, assumptions and safety boundaries in its author’s head.
This creates a misleading form of resilience.
The organisation can run the automation repeatedly, so it appears independent of the person who created it. In reality, it may be dependent on that person for every exception, failure and change.
Common mistake
Treating the existence of automation code as proof that an operating process has been captured.
Better framing
Treat automation as a control system. Review its inputs, authority, state, decisions, failure behaviour, evidence and transfer path.
The question is not merely whether the code is readable.
The question is whether responsibility can move.
The automation is larger than the script
A script or workflow is only the visible centre of an automation system.
The complete system also includes:
- the event or person that triggers it
- the inputs it trusts
- the credentials and roles it exercises
- the state it reads and writes
- the external services it assumes
- the decisions it makes
- the evidence it records
- the rollback or containment path when it fails
Trigger
|
v
Input and current state
|
v
Decision logic
|
v
Privileged action
|
v
Result and evidence
|
+------> rollback, retry or escalation
Each stage can become a hidden dependency.
A deployment workflow may be version-controlled while its runner configuration is not. An infrastructure tool may have clear definitions while its remote state is stored in an account controlled by a contractor. A scheduled job may have safe logic while using a shared administrator credential with no named owner.
Reviewing the code alone misses the control plane that allows the code to act.
Readable automation is not necessarily transferable
Comments and clean structure help, but transferability requires more than style.
A new operator needs to understand the contract around the automation.
What conditions must be true before it runs? Which systems are authoritative? What may it change? What must it never change? How is partial completion detected? Which outcomes are safe to retry? Which require human judgement?
These questions often remain implicit because the original author already knows the answers.
The code may show that a resource is deleted when it no longer appears in a source file. It may not explain whether deletion is always intended, whether data is protected elsewhere or whether a naming error could make a legitimate resource appear obsolete.
The automation may be technically correct and operationally dangerous because its boundaries are undocumented.
Transferable automation makes its assumptions visible.
It gives a new operator enough context to distinguish intended behaviour from an accident encoded consistently.
State is where simple automation becomes difficult
Stateless scripts are relatively easy to reason about. They receive input, perform an action and exit.
Infrastructure automation often carries state.
It remembers what it created. It compares intended and observed conditions. It records checkpoints, leases, locks, versions or completed steps. It may continue a workflow after interruption or decide that an action has already occurred.
That state can be more important than the code.
If it is lost, the automation may recreate resources, skip necessary work or attempt to take control of objects it no longer understands. If two copies act against the same environment, they may make conflicting decisions. If the state can be changed outside the normal process, the code’s behaviour may no longer correspond to the organisation’s expectations.
A transferable automation system therefore needs clear answers:
Where is state held? Who can recover it? What happens if it is unavailable or corrupt? Can it be reconstructed from the managed environment? How are concurrent changes prevented? Which state is operational and which is merely a cache?
Automation that depends on irreplaceable state is not fully represented by its repository.
Broad authority needs narrow safety boundaries
Automation is frequently more privileged than a human operator.
It may create networks, rotate credentials, modify access, deploy code or delete resources across several environments. The authority is granted because repeated manual approval would remove much of the value.
That makes safety design essential.
A strong automation path limits scope before relying on perfect logic. It uses separate roles for unrelated responsibilities. It distinguishes production from development. It requires explicit approval for high-impact changes. It produces a preview when meaningful. It checks preconditions and stops when the observed environment differs too far from expectation.
The best safeguard is rarely a comment that says “be careful”.
It is a boundary that prevents one error from becoming an estate-wide action.
Operational test
Ask what the automation could change if its input were wrong, its state were stale or its credential were misused. Then identify which technical boundary would contain the result.
A tool may be behaving exactly as written while the architecture around it gives that behaviour too much reach.
Failure behaviour matters more than the happy path
Automation is usually demonstrated through success.
The pipeline completes. The environment converges. The certificate rotates. The backup copies.
Operations are defined by what happens when the sequence stops halfway.
Did the automation change authority before failing to deploy the service? Did it delete the old artifact before verifying the new one? Will the next run continue safely, repeat a destructive action or refuse to proceed? Can an operator identify the last completed step?
These are not implementation details.
They determine whether a routine fault becomes an extended outage.
A good automation design makes partial completion observable. It distinguishes retryable actions from changes that need investigation. It records enough context for another operator to decide what to do without reading the entire codebase during an incident.
Rollback is not always the right answer. Some operations cannot be reversed cleanly.
In those cases, the system needs a forward recovery path: restore known state, complete the transition, isolate the affected component or hand control to a documented manual procedure.
Manual operation is part of the automation design
Teams sometimes remove the manual path because automation is considered mandatory.
That can improve consistency, but it can also make the automation itself a critical failure domain.
If the pipeline is unavailable, can the organisation still recover the service? If the remote state is inaccessible, can an operator prevent unsafe changes? If the automation has a defect, can the team pause it without losing control of the infrastructure it manages?
A manual path does not need to reproduce every convenience.
It needs to preserve essential authority and continuity.
That may mean a break-glass deployment, a direct recovery procedure, a way to rotate critical credentials, or a method to reconstruct the automation control plane before resuming normal operations.
The manual path must be controlled and evidenced. It should not become an informal back door used whenever the automation is inconvenient.
Its purpose is to ensure that automation improves operation without becoming the only mechanism through which the organisation can act.
Transfer should be tested through change, not presentation
Automation handovers often end with a walkthrough.
The original author explains the repositories, runs a successful pipeline and answers questions. Everyone agrees that the material is understandable.
That tests the presenter.
A stronger transfer exercise gives another operator a bounded change.
They might add a new environment, rotate a credential, update a dependency, investigate a failed run or recover the automation state in a non-production setting.
The original author observes but does not lead.
The points where the replacement operator cannot proceed reveal what has not been transferred: permissions, decision criteria, account ownership, hidden dependencies or simply the confidence to distinguish safe from unsafe change.
Transfer test
Another operator should be able to make one ordinary change and recover from one controlled failure using organisational access, recorded decisions and the automation’s own evidence.
The objective is not to prove that every person can maintain every system.
It is to prove that the organisation has more than one path to competent control.
A practical automation ownership review
| Area | Weak signal | Stronger evidence |
|---|---|---|
| Purpose | The script name describes the task | Scope, authority, preconditions and prohibited actions are explicit |
| Trigger | The workflow runs automatically | Trigger ownership, approval and replay behaviour are known |
| Credentials | A service account exists | Scoped machine identity with recovery, rotation and named ownership |
| State | The tool manages its own state | State location, locking, backup and corruption recovery are documented and tested |
| Safety | The code has validation | Blast-radius limits, previews, approvals and failure stops exist |
| Failure | Errors appear in logs | Partial completion, retry and escalation behaviour are defined |
| Evidence | A run is marked successful | Inputs, decisions, changes and resulting state can be reconstructed |
| Recovery | The job can be restarted | Essential operations remain possible when the automation control plane is unavailable |
| Transfer | The code is documented | A different operator completes a change and failure exercise |
The review should be proportionate.
A small housekeeping script does not need the same governance as automation that controls identity, production deployments or data deletion. The necessary standard depends on authority and consequence.
Automation should reduce dependency, not disguise it
Good automation converts repeatable knowledge into an inspectable operating system.
It reduces variation. It makes changes reviewable. It shortens recovery. It allows a team to perform work consistently without depending on one person remembering every step.
But code alone does not create those properties.
Automation becomes ownable when its authority is bounded, its inputs and state are controlled, its decisions are visible, its failures are recoverable and its operation can move to another qualified team.
The question is not how much infrastructure has been automated.
The question is how much operating capability the organisation can retain when the automation, its author or its usual control plane is unavailable.
One question for the next architecture review
Choose the automation with the broadest authority and ask:
If its original author left and its next run failed halfway through a production change, could another operator determine what happened, contain the impact and recover control without guessing?
Make the next decision with clarity