"A complex system that works is invariably found to have evolved from a simple system that worked. A complex system designed from scratch never works and cannot be patched up to make it work. You have to start over, beginning with a working simple system."
[0] Systemantics by John Gall https://books.google.com/books/about/Systemantics.html?id=ql...
Some searching today found a wikiquote page[2] which led me here[3] also claiming an EWD498 handwritten annotation as the source.
Do you know definitively whether the annotation appears in EWD498?
(I thought at one time I actually found an image with the handwritten annotation, but I can't find it at the moment... Maybe I dreamed that...)
1. http://www.cs.virginia.edu/~evans/cs655/readings/ewd498.html 2. https://en.wikiquote.org/wiki/Talk:Edsger_W._Dijkstra 3. http://web.archive.org/web/200011201643/http://www.cbi.umn.e...
Automation should follow the same rule as other things in a business. Only automate when it becomes painful not to. Or if it is trivially simple to.
For decades, I've been saying this a bit differently: "Software engineering is primarily an exercise in complexity management".
Complexity is the enemy in software engineering as much as it is in operations engineering. Sustainable reliability is about doing as little as you can get away with to achieve the reliability results that make your customers happy. That does mean following the advice of TFA and avoiding going straight to k8s for a small indie site that could be deployed with a simple Ansible/Puppet script. However it also means defining what your targets are and having indicators so that you're not relying on your gut instincts either: aim for 60% toil, 40% automation at first. Whatever the right balance is review it regularly as you scale your project up.
You can do a lot with a couple of beefy VPSs and a solid database these days.
[0] https://landing.google.com/sre/books/