Definition
Automation is the practice of capturing any procedure that must be performed more than once as a script, tool, or pipeline rather than a manual checklist. Builds, tests, deployments, environment setup, and code generation are all candidates.
The principle behind it is that humans are good at judgment and bad at repetition. A person executing the same ten steps by hand will eventually skip one, mistype another, or do them in the wrong order. A machine executing those steps does it identically every time.
Why it matters
How it works
You identify a procedure, write it down as code, and store that code in version control alongside the project. A build script, a continuous integration pipeline, and an infrastructure-as-code definition all turn a manual ritual into a deterministic artifact.
The Pragmatic Programmer authors push this further: prefer to generate code and configuration rather than hand-maintain it, and make project setup a single command. The payoff compounds, because every future run is free and every team member gets the same result.