Do-nothing scripting: the key to gradual automation (2019)

Concept and perceived benefits

  • Many commenters like the approach as a low-friction way to encode processes, similar to SOPs or checklists but in executable form.
  • It lowers “activation energy”: you get something useful immediately (guided checklist), then gradually replace printed instructions with automation.
  • Helpful for rare, complex, or stressful tasks (deploys, hotfixes, yearly taxes, lab procedures, homelab ops) where remembering exact steps is hard.
  • Encourages clearer thinking: forces you to define ordered steps, inputs/outputs, and potential failure handling.

Implementation patterns and tools

  • Common implementations: shell scripts, Makefiles with .done markers, Python scripts (sometimes with simple classes), Ansible playbooks with pause, Invoke, PowerShell, Jupyter notebooks, Streamlit mini-apps.
  • Some prefer richer TUI/CLI libraries or OneNote/Obsidian/Confluence with checklists; others argue those aren’t as directly on the path to automation.
  • Techniques for resumability: touching marker files, using per-run directories, Make targets, or DAG-like orchestrators (e.g., Airflow with “sleep forever” steps).

Incremental automation & culture

  • Viewed as a way to get to “functional but not optimal” quickly and iteratively improve.
  • Supports culture change: shows “anyone can do this,” encourages contributions to automation, and can be repurposed into chatbots or self-service tools.
  • Parallels drawn with pseudo code and “holes” in functional programming: scaffolding that guides design and refactoring.

Concerns and criticisms

  • Some see it as overkill vs. a plain checklist or runbook; worry it becomes a process-centric spaghetti of scripts or tech debt if wired into production services.
  • OO-heavy implementations (one-method classes) are criticized as needless abstraction; others defend them as a light, extensible interface.
  • Practical doubts: people may stop using a script that “does nothing,” skip manual steps, or revert to old habits; interruptions and error handling can be awkward.

Edge cases, security, and GUIs

  • SSH key example drew security criticism: admins shouldn’t handle user private keys; cert-based SSH and better key flows are suggested.
  • GUI-only steps remain a major blocker to full automation; GUI testing tools are seen as brittle.
  • Several note the importance of documenting expected outputs and error conditions, or else users/scripts may blindly continue.

LLMs and evolution

  • Some argue that today LLMs can take a do-nothing script and generate partial automation quickly.
  • Others caution: LLM-produced code may encode unsafe assumptions (e.g., reusing keys, no passphrase), so human review and judgment remain essential.