4 Reasons Why You Need Automation

Photo by Sai Kiran Anagani on Unsplash

Like most Software Engineers, I started my career by being interested in solving problems. It took me a while to realise that some of those tasks were daily issues. By nature, we want to solve that problem fast and move on to the next thing, and this might mean using the quickest and dirtiest method available. But I knew, deep down, solving problems using that method wasn’t scaleable. It was just firefighting.

I have a vision to help create a world in which we can do more using the time that we have available. Part of being able to achieve that is writing code that will solve problems without human interaction.

Remove unnecessary human error

We’ve all been there. Ask anyone who’s worked in the industry long enough and they’ll happily share some of their most painful experiences. Whether it’s dropping a table in a production database or removing all healthy instances from a load balancer, each story will stay with them forever.

Most of the time, those mistakes don’t lead to disciplinary action. They’re taken as a positive learning experience and provide a platform for that department to improve. That’s why we have Root Cause Analysis (RCA) documents or Autopsy Reports, so that we can learn how the situation occurred. That’s also why there are plenty of tools out there that mimic those kind of behaviours, such as Chaos Monkey, created by Netflix.

Because time waits for no man (or woman)

This led me to the idea of automating everything that I possibly could. If I was doing a task that took longer than 5 minutes that I knew I would have to repeat, I would try to find a way to automate it. I was fascinated with being able to code, seeing that code translate into tasks and having the satisfaction of knowing I had created a useful tool to save time and effort later.

The idea of creating all these efficiencies within your day can free up that time for you to do something else is very attractive. Doing the same mundane tasks day in and day out doesn’t get you anywhere. It doesn’t use your brain, your creativity or your aptitudes.

Using time wisely frees it up to do what you love

Several years ago, I started a new job at a new Digital Agency in London. They were growing rapidly and had some large and interesting projects on the go. I took the job because it seemed exciting, and fulfilled the overwhelming drive I had to ‘get stuff done’. If you’ve worked at an agency before, it’s a bit like getting on a moving train. Everything needs to be done yesterday and you don’t have time to do what you had in your head. Instead, you end up with some bastardised version that just about works and at the end of the day little idea of what you’ve achieved.

This agency mindset allowed me to think of an abstract way to automate as much as I could, so that when a new project came along, I could focus on the elements that I wanted to do; the things which caught and fired up my imagination. If you can identify the repetitive tasks, then you can set yourself up for automation.

Learn from your corrections

It’s very easy for someone knowledgeable to step in and do something, hiding the reality of manual changes, without documentation or sharing it with other members of the team. I always try to put myself in the shoes of someone who has never deployed a particular application, or has never seen this side of the code before, and try to share as much as possible. Knowledge is power and it should be shared: there is no room for selfishness and the more altruistic you are about this, the more you will find team members cooperating, helping each other and dropping the blame mentality when things go wrong: they will all be eager to help work out how to fix the problem. Automating the mundane can help build a cooperative and solid team.

Try and automate as much as possible, where it makes sense. Never catch yourself doing the same repetitive task ever again. Life’s too short.

Software Engineer, passionate about all things technical. GitHub: github.com/olivertappin