Automation is the use of machinery, control systems or technology to manage the execution of activity which would otherwise require human input and/or intervention. While it is arguable, given this classification, that all computer software is delivering automation, the term automation software typically refers to solutions designed specifically for the purpose of automating a defined task, activity or process. In its simplest form automation includes techniques such as macro-routines and scripting, while in other cases automation software is designed to automate a highly specific task, activity or function. The most advanced and flexible manifestations of automation software will include those which deliver the orchestration and execution of a variety of activities and the management of their relationships and inter-dependencies.
Robotic Process Automation
Robotic Process Automation (RPA) refers to an approach to removal of human activity whereby automation software carries out tasks and activities in other applications and systems by interacting with them in the same way as a human – hence the use of the term “Robotic”. Typically this involves the use of automation routines or “software robots” interacting with these applications via an application GUI (graphical user interface) or CLI (command line interface) though can also include other methods of “driving” an application such as calling web services or scripted routines.
The key difference between RPA and other automation methods is that due to the approach of emulating humans in utilising other applications via a standard interface, the software can be deployed without modification to the applications or systems being automated.
Desktop Automation is a form of RPA software deployed locally on a user’s desktop or laptop machine whereby the software is initiated on demand or against a schedule to carry out an automated action. The software executes tasks by emulating the human user, and by having the software execute the “grunt work” within a task or process, operators can manage a significantly increased workload. Desktop Automation is simple to deploy at relatively low cost, and can be a very simple way to deliver efficiency improvements where human workers can call automated routines on demand. However, given the distributed nature of a desktop RPA deployment, attention should be given to the implications on security and management control, on the change and release management of automated processes, and the auditability and reporting of activities.
Unlike desktop automation, Enterprise RPA is not installed locally onto a user’s environment. Instead, virtual environments are created where an automated process is executed by a pseudo-user (the “robot”) emulating the human worker, in a completely hands-off fashion. The virtualised user environment is typically implemented into a datacentre environment with consideration given to factors such as availability, security, management and control which are not addressed in desktop automation. Typical deployments are into business users for high-volume transaction based activities and processes, and execution of processes, rather than initiated locally by an operator, are provided against a defined schedule or through existing task queues and case management applications. An Enterprise RPA deployment is generally configured to operate 24×7 as it does not rely on the presence of a user or their desktop environment in order to execute.
Intelligent Process Automation
Intelligent Process Automation (IPA) is becoming an increasingly common phrase, and attempts to draw a distinction between the more static, rules based approaches of a typical RPA use case, and the use of similar approaches coupled with a level of machine learning or artificial intelligence (see below), such that the automation is operating in a more dynamic environment where multiple factors, data sources and contextual differences might define the action to be taken.
As with much of the current terminology, there is no clear definition of when a process is “robotic” versus “intelligent” and some implementations of RPA technology are in fact using multiple, complex and dynamic sources of information to define the execution of activities. (See Adaptive Automation)
There is no standard definition of what entity constitutes a “robot”. Some providers use the term to describe each time an automated process runs, others refer to each unique automated procedure or scripted action as an individual ‘bot, some consider each desktop agent a robot, and yet more (such as Enterprise RPA vendors) use the same term to describe a runtime resource capable of operating many different processes as a pseudo FTE – the software equivalent of a human operator and their computer virtualised as a single entity.
While there are arguments for each classification, and standardisation of taxonomy is unlikely, the differences can lead to some considerable confusion in pricing and scoping against RPA requirements. Prospective buyers should avoid inaccurate comparisons on a “per-robot” basis and instead seek to relate the costs of an RPA solution to a business case based on the scope of automation possible and the scale or volume of work a solution can deliver.
Autonomics in IT refers to a self-managing computing model named after, and patterned on, the human body’s autonomic nervous system. An autonomic computing system is designed to control the functioning of applications and systems without input from the user, in the same way that the autonomic nervous system regulates body systems without conscious input from the individual. The goal of autonomic computing is to create systems that run themselves, capable of high-level functioning while keeping the system’s complexity invisible to the user.
The term is often used to describe the deployment of automation into IT management scenarios, whereby the automated management and resolution of conditions, events and failures, and/or automated response to demand or context based conditions (e.g. auto-regulating performance by scaling and adapting available resources based on demand) effectively delivers self-managing – or autonomic – systems capable of operating and adapting to circumstances independently of human input.
Heuristics is the application of experience-derived knowledge to a problem or task. Using a basic form of machine learning, heuristics will use historical data (experience) to inform an action or activity. One example of heuristic software is mail quarantine applications which screen and filter out messages likely to contain a computer virus or other undesirable content, based on data from previous activity. Heuristics can be very effective at filtering or processing information based on probability as defined by previous experience, and by definition should become increasingly accurate over time, though is unlikely to be 100% accurate and can result in “false positives” such as incorrectly filtering.
The term Adaptive Automation is used to describe the use of Heuristics in an automated process such that the automation routine or process will be defined based on previous experiences and executions. Examples of adaptive automation are event management processes in system and application support, or automated security management systems which, over time, learn an ever more accurate pattern of “normal” behaviour and will deliver a different automated response based on deviations from that normal pattern.
Unlike AI (see Artificial Intelligence), Adaptive and Heuristic automation remains rules based and, within those rules, actions and outcomes can be modeled and/or predicted.
In its pure sense, artificial intelligence (AI) refers to systems which are self-aware, and capable of rational thought. However in recent years, the term has been used more broadly to encapsulate the simulation of human intelligence processes by machines, especially IT systems. These processes include learning (the acquisition of information and rules for using that information), reasoning (using the rules to reach approximate or definite conclusions), and self-correction (identifying that a course of action is proving or likely to prove unsuccessful and modifying that course). Particular applications of AI include expert systems, speech recognition, and machine vision.
Considerations in deploying truly artificially intelligent systems to automate work include the potential inability of a user to completely and accurately predict how the system will respond to a situation or given set of circumstances.
Machine learning is a type of artificial intelligence (AI) that provides computers with the ability to learn without being explicitly programmed. This area of AI focuses on the development of computer programs that can teach themselves to adapt and change when exposed to new data. Unlike heuristics, which uses historical data to inform decisions, machine learning can include experimentation – testing various approaches via trial and error in order to “learn” what will deliver a successful outcome or the timeliest solution to a problem.
Virtual Workforce® is an Enterprise automation solution encompassing many of the principles covered in this overview. It is an as-a-service software solution which provides a platform for clients to automate a wide variety of IT and business support processes and activities. It is focused on delivering high levels of resilience, security and scalability and a commercial approach which allows users to relate the cost of the solution directly to the benefits being realised. The Virtual Workforce utilises RPA approaches, adding advanced load balancing, workload management, multi-tasking and auto-scaling algorithms to provide a highly flexible platform which can deliver rapid and non-disruptive automation.
It’s integrated web portal provides a custom interface to allow users to interact with automated processes and vice versa, providing a single platform for both back-office and front-office or self-service automation. Thus a single solution can offer both zero-touch automation more typically targeted by RPA, and self-service automation more usually delivered with desktop automation, but with the security and management controls not possible with distributed desktop alternatives.
Typical deployments are into service providers, IT and business process outsourcers and Enterprise IT functions for use against a wide range of both high-volume/low-complexity and low-volume/high-complexity IT and business support processes.
Image Credit: Thinkstock