Software Craftsmanship & Practice

Tooling & Automation

Invest in your tools deliberately: automate anything done more than once, favor plain text for its longevity and tool-agnosticism, and treat editor/shell fluency as a compounding investment rather than an afterthought.
  • "Don't use manual procedures" — a script that runs the release/build/setup steps is more reliable than a remembered or documented sequence
  • A script is accurate documentation — it cannot silently drift out of date the way a wiki page describing the same steps can
  • The power of plain text: greppable, diffable, versionable, and outlives whatever tool first produced it
  • Editor and shell fluency compound over a career — minutes saved per interaction, thousands of interactions
  • Automation pays for itself the moment a manual step is run for the third time — the break-even point is usually much sooner than it feels

A checklist titled "How to deploy" that lives on a wiki page describes what deploying should look like at the moment someone wrote it down — and nothing keeps it in sync as the actual process changes. A deploy script cannot have this problem: if it's wrong, deploys fail loudly, so it gets fixed. The script is simultaneously the automation and the only documentation that is provably still accurate.

Sources
  • The Pragmatic Programmer (20th Anniversary ed.)Ch. 3 — The Basic Tools