Automation · · 8 min read

Automation needs boundaries

Automate the repeatable parts. Keep judgment where judgment belongs.

Automation is valuable when the system knows what it is allowed to decide, how failure becomes visible and where a person takes over.

That sounds obvious. In practice, automation projects are often described as a happy path: receive input, apply logic, update a system, send a message. Real processes wait, retry, time out, receive contradictory data and encounter cases nobody predicted. A script that only handles success is a demo with a calendar invitation.

The difficult work is not removing people from a diagram. It is deciding which actions are repeatable, which evidence is sufficient and who owns the result when reality leaves the expected path.

Model the work before the automation

Start with the work as it happens, including the awkward parts. What starts the process? Which information is required? Which decisions are deterministic? Where do people use context that is not represented in data? What happens when another system is unavailable? How long can the process wait?

A useful model includes states, not only steps. “Waiting for customer information” is a state with ownership, deadlines and possible exits. “Payment failed” may require retry, correction, cancellation or investigation. If these states are implicit in logs, inboxes or someone’s memory, automation will hide them rather than solve them.

This is where workflow engines can help. They make long-running state, timers, retries and hand-offs explicit. They are the wrong fit for a short local operation that a normal function can express clearly. Adding orchestration to three synchronous calls is architecture theatre with more dashboards.

Classify decisions by consequence

Not every decision deserves the same control. A useful classification considers consequence, reversibility and uncertainty.

  • Deterministic and reversible: formatting data, routing by an explicit rule, or retrying a known transient failure. Automate directly and observe the result.
  • Deterministic and consequential: applying a policy that affects money, access or regulatory state. Automate only with versioned rules, evidence and auditability.
  • Probabilistic and reversible: suggesting a category or draft. Automation can act with thresholds and sampling if correction is cheap.
  • Probabilistic and consequential: rejecting a customer, releasing funds or changing a legal status. Keep meaningful human approval and strong evidence boundaries.

The categories are not permanent. Better data, clearer policy or improved controls can move a decision. A process should make that evolution possible rather than burying the rule inside application code.

Put evidence next to the action

An automated action should be explainable from the information available at the time. Store the relevant input, rule or model version, result and correlation identifiers. This is not only for audits. It is how operators diagnose failures and how product owners decide whether the rule still matches reality.

Evidence has a retention and privacy cost. Keeping every prompt, document and intermediate result forever is not automatically responsible. Decide what must be retained, who can access it and when it should be removed. Traceability and data minimization are a real trade-off, not competing slogans.

For AI-assisted steps, separate source material from generated output. A reviewer should be able to see what the system used, what it proposed and which uncertainty remains. A fluent paragraph is not evidence of correctness.

Design retries as business behaviour

Technical retries are often treated as harmless. They are harmless only when the operation is idempotent from the business perspective.

Sending the same HTTP request twice may create two orders. Publishing an event again may trigger another payment. Retrying a model call may produce a different answer. The automation needs an identity for the intended action and a way to recognize whether it already happened.

Define:

  • which failures are transient and worth retrying;
  • the delay and maximum attempt count;
  • the idempotency boundary;
  • what happens after retries are exhausted;
  • which partial effects require compensation;
  • who sees the unresolved state.

Do not turn every failure into an infinite retry loop. That converts an exception into a queue that grows quietly.

Make exceptions first-class

Exceptions are not proof that automation failed. They are part of the domain. The failure is pretending they do not exist.

An exception path needs enough context for a person to act. “Processing failed” is not a work item. Show the case, the relevant source data, what the system attempted, why it stopped and which actions are safe. Preserve the connection back to the automated flow so the person does not need to repair several systems manually.

Works well when

  • Automation handles the repeatable majority

  • Exceptions become visible, owned work

  • Reviewers receive evidence and safe actions

  • < slot="cons">
  • Exception tooling is product work, not a side screen

  • People need training and clear authority

  • Edge cases can reveal that the original process model was wrong

Watch out for

Design the human hand-off

Human review is not a temporary embarrassment. It is a control surface.

Give reviewers the source material, proposed action, reason, uncertainty and a clear way to correct the result. Record the decision without turning the interface into an interrogation. Route work to a role with the authority and context to decide, not merely to the next available inbox.

The hand-off also needs a time boundary. What happens if nobody responds? Some cases can wait. Others need escalation or a safe default. “A human is in the loop” means very little if the loop has no owner or deadline.

Review data can improve rules and models, but only if corrections are captured in a usable form. Do not quietly reuse sensitive operational data for training because it happens to exist.

Keep AI inside an engineering boundary

AI can be useful for extraction, classification, summarization, search, drafting and tool-assisted engineering. Its output is probabilistic, sensitive to input and capable of failing persuasively. That makes it a component with a contract, not a magic layer above the system.

Define the contract:

  • accepted input and prohibited data;
  • expected output structure;
  • validation rules;
  • confidence or quality thresholds where they are meaningful;
  • tools the model may call;
  • actions that require approval;
  • timeout, cost and fallback behaviour;
  • evaluation examples that represent real failure modes.

The wrong fit is an “AI-first” initiative looking for a use case. Start with work that is expensive, slow or error-prone. Then decide whether deterministic rules, conventional software, process change or a model best addresses it.

Observe the process, not only the infrastructure

CPU, memory and request errors matter, but process automation needs business-level observability. How many cases are waiting? Where do they stop? Which rules create the most exceptions? How old is the oldest unresolved case? Are retries recovering or delaying intervention?

These signals turn automation into an operable system. They also show when the process itself needs to change.

Delivery matters here. Rules, workflows and model prompts change production behaviour and need versioning, testing and recovery like other software. Delivery is a system explains why the release path and diagnostic evidence are part of the product, not plumbing added later.

Modernization creates similar transition states when old and new systems run together. Modernization without the theatre covers how to choose seams and evidence-sized slices instead of hiding migration logic in temporary scripts that become permanent.

Failure signals

Automation is losing its boundaries when:

  • success is measured only as tasks no longer performed by people;
  • exceptions land in a shared inbox without context or ownership;
  • retries can repeat consequential actions;
  • rules change without versioning or impact analysis;
  • a model can call tools beyond the consequence of its task;
  • reviewers see generated output but not source evidence;
  • manual overrides exist but are not recorded;
  • nobody can explain the safe state after partial failure;
  • the process creates a new hidden queue.

The response may be better automation, a smaller automated scope or removal of the automation entirely. Boundaries exist to make those choices possible.

Where this approach does not apply

Some tasks are so low-consequence and reversible that a detailed workflow model would cost more than the risk justifies. A local build script does not need a human approval matrix. A personal reminder does not need an audit trail.

Other processes are too ambiguous to automate responsibly. If experienced people cannot agree on the decision or explain the evidence, encoding it may only make disagreement faster. Clarify the policy first.

Automation is also the wrong fit when the process should be removed. Making an unnecessary approval step run in milliseconds is still maintaining an unnecessary approval step.

Review checklist

Before allowing an automated process to act, ask:

  1. What work and state have we modelled, including waiting and exceptions?
  2. Which decisions are deterministic, probabilistic, reversible and consequential?
  3. What evidence supports each action, and how long should it be retained?
  4. Is the action idempotent from the business perspective?
  5. Which failures retry, compensate, escalate or stop?
  6. Does a reviewer receive enough context and authority to decide?
  7. What happens when the human hand-off times out?
  8. Which tools and actions are inside the AI boundary?
  9. How do we observe queues, exceptions and process age?
  10. Can we release, evaluate and recover changes safely?
  11. Which signal would tell us to narrow or remove the automation?

Good automation does not pretend uncertainty disappeared. It gives uncertainty a visible state, an owner and a bounded next action.