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
.donemarkers, Python scripts (sometimes with simple classes), Ansible playbooks withpause, 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.