The importance of automating the right things
The danger of automation is that if you are not careful you can end up automating things that just don't matter, as well as the things you do. The by-product of this is that you can end up creating a lot of work for yourself that doesn't contribute to your goals. From a software engineering point of view this could look like:
- An impossible number of PRs that need reviewing.
- Extra infrastructure maintenance: You might need extra resources to deal with these extra features.
- Extra attack surface: There will be a greater chance of your system being compromised - you'll need to stay on top of making sure your dependencies are up to date.
- Extra monitoring noise: You could end up with so much irrelevant noise with your monitoring tools that it becomes impossible to do anything useful with it.
Tim Ferriss in his book "The 4-Hour Workweek", outlined a framework that can help you avoid this: It was primarily for lifestyle design but can be readily applied to software engineering - it has the acronym DEAL:
- Define: First define what you want the outcome to be.
- Eliminate: Get rid of anything that doesn't contribute to the outcome. You should get rid of the trivial many, so you are only left with the vital few.
- Automate: Only now do we automate.
- Liberate: In theory we can now enjoy the outcome because we have automated the right things.
Yes, the writing of the code and the creating of features are cheap. However, the legacy can be very expensive. If we are not careful, AI can easily accelerate this, creating an inhumane burden.