Automating processes with software is hard
Why automating processes is hard
- Automation makes processes rigid and legible but strips nuance and informal resilience; over‑automation can damage what originally worked well.
- Software forces determinism and consistent state; many real-world processes are fuzzy, inconsistent, or context-dependent, so they resist clean formalization.
State explosion and process design
- A recurring theme: good automation is “state limitation.”
- Each exception or edge case adds new states and intermediate states, leading to spaghetti logic.
- Recommended patterns:
- Funnel-shaped flows that normalize inputs and collapse branches early.
- Route out divergent cases and, if needed, build separate flows for them rather than one giant system.
- Reunify divergent paths into a single representation (e.g., “estimated income” regardless of data source).
Human-in-the-loop and overrides
- Many argue for explicit “I know what I’m doing” / override mechanisms for edge cases and outages.
- These must be carefully designed:
- Risk: downstream bugs and broken assumptions.
- Need: logging, approvals, audits, and treating overrides more like code review than rubber stamps.
- Toyota-style “jidoka”: automation must be stoppable and inspectable by humans.
When (not) to automate
- Don’t aim for 100% automation; accept that some portion will stay manual.
- Question whether to automate at all:
- Essential in domains like logistics or manufacturing; more dubious for rare, low-impact internal processes.
- Some say best practice is “automate everything”; others counter that cost/benefit and opportunity cost are often ignored.
- Sometimes the right move is to change or simplify the business process (e.g., saying “no” to rare special cases) rather than encode every exception.
Gradual and hybrid approaches
- “Do-nothing scripts” and checklist automation: first script the steps as prompts, then automate individual steps over time.
- Hybrid flows (part software, part notes/manual work) help discover patterns safely before full automation.
- Several deployment and operations stories emphasize incremental trust-building: start manual-with-tooling, then progressively remove human steps.
Organizational and human factors
- Automation projects often fail when domain experts are excluded; software alone can’t fix process problems.
- Overzealous product/management pushes (“automate everything”, LLM-defined requirements) are seen as a major risk.
- Simplicity, explicit state, and post-launch cleanup are repeatedly cited as key but chronically under-valued.