Let me share with you the audacity… the audacity of programmers. You would assume that being programmers we would have a preference for programming solutions, but — and I’m not so sure this is a good thing — there are times we just… do it manually.
Need to set up a new server? Just copy some files over from the old server.
Need to make a new build process? Just use the UI.
Need to configure an environment? Just remote in and run the commands.
Hopefully at this moment you are recoiling as if to say, “what? We would never do that!” and to you I say… never? Would you never do something related to building or deploying your software manually?
And that answer is a bit more complicated. Because, you see, it’s really flipping easy to just drag a folder from one share to another. It’s easy to right click and say “make new folder”. It’s easy to log into a server and rsync files across with some sort of daemon.
It’s easy to do all these things, and more importantly, it’s even easier to forget that you’ve done them, until one day far in the future, no one knows how the software is configured, only that it works and you shouldn’t change anything because it’s risky.
We choose to ignore that risk in the moment because it’s more expensive to do the thing that reduces the risk than it is to just ignore the risk. But eventually — eventually, we all get bit by avoiding the risk.
You can either hope to outrun that eventuality or do the work now to make sure it never comes to pass.