Everything repetitive should be automated
Nobody that I know of is happy with endless repetition. Software has drastically improved any field of work where repetition takes place by facilitating a certain level of automation to ease all of our jobs. But when you’re implementing any automated process, there’s always a cost to consider.
The good news when working on software, is that cost is relatively low compared to effort. Since we’re working in a landscape that’s so very tightly coupled to the tools that provide automation, most of the automating is a breeze!
For a standard application, the entire pipeline (code formatting, linting, testing, packaging and publishing) can be done automatically. If you have the entire flow automated, testing suddenly isn’t that much overhead. This means you can (and should) frequently deploy to production in small increments!
This way, automation in testing and listing catches a lot of errors that could potentially end up on your production environment. And we don’t want that! 💔🐛
A lot of big tech companies work in these small increments. Obviously there’s some (human) gatekeeping involved, and the only reason is to prevent human errors to slip into an application. Automation even helps with that! By applying formatting and pretesting anything apart from the change, for a code review you only have to focus on the change. A lot of the overhead is factored out of the equation due to automation.
The obvious reason for automating is to save time on the repetitive actions. Again, saving time allows for focus on the stuff that matters, which is great for development.
There’s a secondary benefit to having automation. For everything that is an automated process, it is documented to a certain degree (the configuration of the automation), and this means that you have fundamentals to build your software on, rather than opinions.
This is important, because software is written by humans and it is very likely that multiple people are working on a same product. Having different people with different perspectives is great. But not always when it comes to decision making. Having written down certain agreements in automation, saves meaningless discussions.
So apart from saving some time, there are some other factors that make automation a key factor for successful projects. The longer their longevity and the bigger the team, the more you should dedicate to automation.
There’s this infamous “hacker” who allegedly wrote scripts to automate texting work, his partner, restore a database and even a timed script to brew himself a coffee. Should you go this far? Maybe. His point of view was: "if I spend x amount of time on a repetitive task, what does it take to automate to save me x amount of time?"
And why not, go ahead and see where it takes you! 🤖