Automation is present in our day to day life all over the place. Comparing to 15 years ago, when this seems like a very distant dystopian future, right now we can do more and more with it. Clearly, it has impacted everything, from the way we turn on the lights to the way to public transportation works but also the national power distribution. Now, why is automation in web development so important?
We’ll start from the definition: a series of processes that can be delivered with technology and with little to no human intervention. (more here). Referring to web development, we can state that automation can have its place in all recurrent processes and can replace human intervention in “problem causes” areas that are widely known. But, is that really a fact? All processes that be automated should be?
What are the key benefits of automation in web development?
Efficiency. As a manager you always see your teams struggling with certain specific tasks or with shitty recurrent tasks (same things all over again like deploys). Part of your job, and not only yours, is to identify these bottlenecks and to try to make them as smooth as possible or even remove them completely. Automation can do this, all you need to do is to identify if that specific area can be truly done without human intervention.
Focus time. From my point of view, this is the biggest enemy of every developer in our current world, especially for a senior one, and it’s linked directly with efficiency. He gets pulled in all directions to help and assist (and that can be part of his job, nothing bad here), but putting on top tasks and duties that do not challenge him will basically drop his performance. You are better letting him focus on helping, mentoring, and assisting other parties and all the other parts moved to automation.
Streamline process and fewer issues. Everyone makes mistakes and everyone forgets, we are humans, it’s normal. Automation can help a lot in this part, most of the time (except Skynet) it does what you program it to do. That means that specific processes will be followed to the letter, and at the end of the day, you will see better results in whatever you use them.
Knowledge sharing and a better understanding of the actual needs. You will say I’m an idiot because of this statement, but hear me out. Automation does not appear by magic or you harvest it from a tree, it needs thorough analysis, understanding, and development to make it happen. So, the people that are supposed to do the tasks will be the ones doing, reviewing, and maintaining the automation. You do not need a 3rd party here to do it, each developer needs to see by himself the actual benefits.
There are many others of course, but until now, for me, these are the ones that took the front stage after automating a lot of stuff in my teams.
How do you choose the areas to implement it?
Well, to be honest, some decissions in this area are brain dead ones some are tricky as hell.
There is no right or wrong per se, but more, what does actually fit for the business? See, as with all the benefits I mentioned above, automation will always come at a price. Maybe that process that nobody follows should only be partially automated or maybe if you fail all of your deploys the actual release step is not the real problem.
As any manager, you really need to understand the actual weak links and start from there. Your team needs to be mature enough to understand it, you need to do “the right PR” preparations to get everyone on board with it. If you fail to understand where the problem is or prepare the team for this step then you will never fix the root cause.
At the end of the day, my job is to be sure everything works smoothly, people are happy at their workplace and the final product we deliver is top-notch. There is a sweet spot, I love to say I’ve got a pretty good idea where it is and I believe I am also close to hitting it but not there yet. So this being said, the last thing you should know about automation in web development is to have patience and think it through from the start.