An intro to the landscape of software automation
Automation as a concept has been around with us for 3/4ths of a century now, with its origination lying in Ford Motors all the way back in the year 1946. The word automation has its etymology in automaton, which basically means any machine, instrument or equipment that can virtually go about autonomously operating with none or minimal human intervention needed. In the nascent days of automation, it was primarily applied to what we refer to today as mechanical hardware. The automation was fuelled by mechanical assemblies that enabled machines or portions of them to operate autonomously.
With the passage of time, technology experienced evolution and got more sophisticated and with it, automation moved forward as well. The earliest application of automation – going by its classical definition – can be tracked back to the very first computer engine developed on Alan Turing’s design known as ACE (Automatic Computer Engine). In one way, automation and technology have had somewhat of a symbiotic growth. With no automation, computers would not have been a possibility and without the progression in computing, the present state of automation could never be a reality. Fast forward to the 21st Century and we still suffer to identify any electronic device with no automation. As a matter of fact, presently we can state that we are residing in an era of digital transformation and automation.
Computer automation too has several flavours with regards to the spheres it optimizes through automation. For the scope of this blog post, we are going to restrict ourselves to software-based automation. Even in the perspective of software automation, we have had automation in some fashion for approximately five decades now.
With the advent of programming languages, software automation also became a thing, probably in its simplest variant. Mathematical and linguistic applications are in all likelihood the earliest instances of software automation. From there, software technology – in a nutshell – exploded! With the proliferation of several programming paradigms and languages, computer software developed a new space for engineers of the future.
Operating systems came into being, subsequently graphical user interfaces followed, applications, games, etc. Currently we are at a juncture in time where we think that nothing can shock us any longer and out comes a new advancement that still manages to wow us. Then, you may question, if automation has been around for 3/4ths of a century, what is this new hue and cry with regards to software automation?
Well, this is where stuff starts to get fascinating. While automation has indeed been around us with us for quite some while, only lately did we begin its application to our current processes.
Let us take a simple instance: Jane Doe gets to the office and has to invest a couple of hours of her time everyday to develop a complex report that she will then leverage to make some decisions that influence the enterprise at large. The production of report is a very monotonous activity where Jane has to gather data from differing systems, apply some logic to it, and on the basis of a lot of eyeballing, she then develops a final summary sheet. What a tremendous waste of Jane’s valuable time!
Let us observe another instance. John Doe is accountable for upkeep of the IT infrastructure in his organization. Combined with this, John has also been conferred the accountability to migrate the legacy systems in the enterprise to advanced cloud applications. Unluckily, John has to allocate 9/10ths of his time attending to mundane tickets such as password reset, software provisioning, onboarding, therefore keeping him from working on critical things that require his unique talents. Life would be a lot better off for Jane and John if they had some help which would enable them to focus on activities that make a difference and need their talents and abilities.
Modern-day software automation is widely divided into two unique variants of automation. RPA or Robotic Process Automation is mainly leveraged in automation of business processes. RPA is primarily reliant on emulating the actions that a human being would perform and functions with the UI elements of an application. Jane from our prior instance can leverage RPA to make her work-life simpler. ITPA or IT Process Automation on the other hand, tackles differing IT systems leveraging the classic programmatic approach of scripting and/or consuming API(s) to get the things performed. John can leverage ITPA to handle the monotonous tickets and focus on application migration.
Going beyond these two primary streams of automation, we have several specialist branches of automation too such as ETL which enables users to go about automating scenarios with increased data volumes, machine learning driven automation to assist users in activities that need some fundamental decision making on the basis of data, chatbots to assist in getting things done on the go, etc. Terms such as hyperautomation and service orchestration are dependent on the same principle: Surpassing the realm of leveraging a singular technology to attempt and automate each process out there which has the outcome of fragility and inefficiency.
It is imperative that users have several options with regards to technology with regards to automation of any process, therefore platforms should take advantage of all the above-specified technologies and more. This confers the automation with robustness, resilience and scalability. As we march ahead in the direction of digital transformation, being reliant on a singular automation technology is not going to be adequate and therefore it will be really critical to opt for a platform that enables us to harness several technologies to facilitate an efficient automation solution for your existing processes.