We all know that we should automate as much as possible. In fact, we should automate everything that can be and effort spend on it would pay off. However, I have a feeling that we frequently forget about this principle. We are hesitating regularly on automation and often as a result skip it completely. As professionals we should always ask a question about most of the activities – is it automatable? Would an effort pay off? How can automation change the current situation?
What makes a task or an activity a good candidate for automation? There are several traits which distinguish such issues:
- they are repeated on a frequent basis by a person or group of people,
- they are repeated, not often, but by a great amount of people,
- they do not contain creative steps, they are rather mundane activities,
- all decisions taken during their execution can be written as some kind of algorithm,
- they are described by a documentation, usually consisting a list of steps to do.
Keep in mind that even if a task or an activity can not be fully automated (there are some decisive or creative steps within them) partial automation can still help a lot. Removing all manual steps might facilitate the whole process significantly.
Well implemented automation can provide tremendous value both for yourself and your organization (that’s why the IT industry skyrockets). The most common benefits includes:
- elimination of error prone, human procedures execution – automated solutions always work the same way. It doesn’t mean that there would be no errors but that there will be no random human errors. While software has bugs and functionality problems it has also one nice trait: if error or problem is really fixed then it is fixed for ages,
- no need for detailed procedure documentation – well created automation will be self descriptive (get rid of documentation). While some small amount of documentation might still be required, no longer will detailed procedure description have to be maintained and kept up to date (which is usually troublesome activity),
- encouraged collaboration and integration with other systems and organizations – since the process is no longer executed by humans it is easier to modify and integrate it with other processes (especially if they are also automated). It is much easier to add dependencies and increase complexity. Additionally, there will be no need for staff training and overcoming their potential resistance,
- the task or activity is no longer dependent on one person or group of people – it is a common situation when teams and even organizations are based on silos of skills and knowledge. When a key person is missing, some tasks are hardly executed, even if at all,
- mundane tasks are eliminated – repetitive, complex and complicated procedures often needs to be executed by a competent, highly qualified and as a result, well paid member of staff. Eliminating such activities from their work motivates them and allows them to work on more entertaining tasks,
- procedure or task is always performed in exactly the same way – automated activities always provide the same quality. The service is fully repeatable and it’s maintained on the same level. Additionally, it is much easier to audit a non human executed procedure. With enough logs and debug data you can easily figure out what happened and where is a mistake,
- empowering people and lowering theirs stress, especially in the case of critical and complex procedures – manual activities that are critical to a team or organization involve a lot of stress. Remember your last deployment to production (if you of course have not automated it already)? Full automation would free you from such duties and let you focus deeper on more interesting and valuable tasks. The lower amount of stress will also empower greatly and make going to work more a pleasure than a torture.
This is a compilation of the most common benefits from automation. However, depending on the project, team and many other factors it can vary a lot. Ask yourself in your project context – are there any things that can be automated that I haven’t considered as eligible for? Which are manual ones and I still do not consider them important? Does the automation really not make sense there?
There are thousands of examples of what can be automated. Here are several scenarios in which we often hesitate to automate while it can bring major value to our work:
- your application deployment – quite an obvious one. However, many developers still do not automate it. Do you? Instead of performing it manually 10 times per day or more, you can just simply execute one command and have it working. You will not only empower yourself during your daily work but also save a lot of time. Additionally, while you will have it automated you will be able to use the mechanism on your staging and production environments,
- any reporting procedures – there are a class of dedicated business intelligence systems which assist in data manipulation and reports automation. However, not all companies want or can use them. Initial costs are also usually significant. If you cannot use one of them, you can easily create a bunch of scripts which would acquire all required for the report data, compile it into one template document and automatically send it to all interested parties (potentially after your approval). This saves a lot of time and mundane work. You can also easily maintain the same quality of service,
- email segregation – a lot of us receive more than 200 emails per day. Current email clients allow us to easily implement a set of rules to automatically filter and categorize messages.
We all know the automation concept. However, we should also use it actively. Keep it in mind whatever activity you are doing. Think about the enormous benefits it can bring. At the end, we should automate everything and do whatever we want!