# Automatización robótica de procesos

Una automatización robótica de procesos, o RPA (robotic process automation), es una forma naciente de automatización de los procesos de negocio que replica las acciones de un ser humano interactuando con la interfaz de usuario de un sistema informático, liberándose de la dependencia de APIs de programación. Por ejemplo, la ejecución de la entrada de datos en un sistema SAP -o, de hecho, un proceso completo de extremo a extremo- sería una actividad típica de un robot de software. El robot de software opera en la interfaz de usuario (UI, User Interface) de la misma manera que un ser humano. Esto es una diferencia significativa con respecto a las formas tradicionales de integración de TI que históricamente se han basado en Interfaces de Programación de Aplicación (API), es decir, formas de comunicación máquina a máquina basadas en capas de datos que operan en una capa arquitectónica debajo de la UI.

## Definición

La Asociación de Normas del IEEE (Instituto de Ingenieros Eléctricos y Electrónicos) define a la RPA como “Una instancia de software preconfigurada que utiliza reglas comerciales y una coreografía de actividad predefinida para completar la ejecución autónoma de una combinación de procesos, actividades, transacciones y tareas en uno o más sistemas de software no relacionados para entregar un resultado o servicio con gestión de excepción humana”.

## Características

Los procesos que pueden automatizarse con RPA muestran en general las cuatro características siguientes:
* Pueden definirse a través de reglas.
* Poseen un volumen de trabajo elevado.
* Se activan por disparadores digitales.
* Datos digitalizados.
La entidad virtual que ejecuta los desarrollos RPA recibe el nombre de robot (agente automatizado), del cual existen dos tipos principales:
* atendidos: colaboran con el trabajador en la realización de un proceso, efectúan las partes automatizables y se ponen en modo de espera cuando llegan a alguna tarea o subproceso que exige al usuario humano; y
* desatendidos: pueden ejecutar el proceso al completo sin la interacción de un agente humano, de principio a fin (E2E, end to end).
Para Moffitt, los robots RPA se pueden comparar con las macros registradas en Excel que automatizan tareas específicas, siendo la principal diferencia que las "macros" de RPA se pueden grabar para que funcionen con prácticamente cualquier software de escritorio o servidor existente.

## Evolución histórica

Como forma de automatización, el mismo concepto ha existido durante mucho tiempo en forma de screen scraping, pero RPA se considera una evolución tecnológica significativa de esta técnica en el sentido de que emergen nuevas plataformas de software que son suficientemente maduras, resistentes, escalables y fiables para hacer viable este enfoque para su uso en grandes empresas (que de otro modo serían reacias debido a los riesgos percibidos para la calidad y la reputación).
A modo de ilustración de hasta qué punto la tecnología se ha desarrollado desde su primera forma en screen scraping, es útil considerar el ejemplo citado en un estudio académico. Los usuarios de una plataforma de Xchanging -una compañía global con sede en el Reino Unido que proporciona servicios de procesamiento de negocios, tecnología y adquisiciones en todo el mundo- antropomorfizaron su robot en una compañera de trabajo llamada Poppy e incluso la invitaron a la fiesta de Navidad. Tal ejemplo sirve para demostrar el nivel de intuición, compromiso y facilidad de uso de las modernas plataformas tecnológicas de RPA, que lleva a sus usuarios (o capacitadores) a relacionarse con ellos como seres en lugar de servicios de software abstractos. La naturaleza libre de código de RPA (descrita más adelante) es solo una de una serie de características diferenciadoras significativas de RPA frente a raspado de pantalla.

## Despliegue

El alojamiento de los servicios RPA también se alinea con la metáfora de un robot de software, con cada instancia robótica que tiene su propia estación de trabajo virtual, al igual que un trabajador humano. El robot utiliza controles de teclado y ratón para realizar acciones y ejecutar automatizaciones. Normalmente, todas estas acciones tienen lugar en un entorno virtual y no en la pantalla. El robot no necesita una pantalla física para operar, sino que interpreta la pantalla electrónicamente. La escalabilidad de las soluciones modernas basadas en arquitecturas como éstas se debe mucho a la llegada de la tecnología de virtualización, sin la cual la escalabilidad de los grandes despliegues estaría limitada por la capacidad disponible para administrar el hardware físico y los costos asociados. La implementación del RPA en las empresas comerciales ha demostrado un ahorro de costos dramático en comparación con las soluciones tradicionales que no son RPA.

## RPA vs automatización tradicional

Los robots de software interpretan la interfaz de usuario de aplicaciones de terceros y están configurados para ejecutar pasos de forma idéntica a un usuario humano. Se configuran (o entrenan) usando pasos demostrativos, en lugar de ser programados usando instrucciones basadas en código. Este es un concepto importante en el mercado de la RPA porque la intención no es proporcionar otra plataforma de codificación para los usuarios de TI (que ya tienen el beneficio de desarrollo maduro y probado de software y plataformas middleware). Más bien, la intención es proporcionar una capacidad ágil y configurable a los usuarios técnicos y no técnicos en los departamentos operativos. El paradigma, en resumen, es que un robot de software debe ser un trabajador virtual que puede ser rápidamente "entrenado" (o configurado) por un usuario de negocios de una manera intuitiva que es similar a cómo un usuario operativo entrenaría a un colega humano.
El beneficio de este enfoque es doble. En primer lugar, permite que los departamentos de operaciones se sirvan a sí mismos. En segundo lugar, libera las habilidades limitadas y valiosas de los profesionales de TI para concentrarse en implementaciones más estratégicas de TI, tales como implementaciones de ERP y BPMS. Tales programas a menudo se mantienen como de naturaleza transformacional, proporcionando enormes beneficios a medio y largo plazo, mientras que el RPA se centra típicamente en la efectividad operativa inmediata, la calidad y la rentabilidad. Por lo tanto, la RPA se considera clásica como complementaria de las iniciativas de automatización existentes.

## Hiperautomatización

La hiperautomatización es la aplicación de tecnologías avanzadas como la RPA, la inteligencia artificial, el aprendizaje automático (machine learning) o la minería de procesos (en realidad, de los datos de los procesos) para incrementar las capacidades de los trabajadores y automatizar los procesos en mayor grado que con la automatización tradicional. También se puede definir la hiperautomatización como la combinación de tecnologías que permiten una aplicación más rápida de la programación (por ejemplo plataformas de desarrollo sin código o bajas en código) con la finalidad de coordinar diferentes "tipos de trabajadores" (humanos y artificiales —robots—, si bien es discutible que un robot pueda ser considerado un tipo de trabajador) para optimizar el flujo de trabajo. Asimismo, se puede aplicar al mantenimiento preventivo.
El informe de la consultora Gartner sobre esta tendencia (que considera la principal de 2021) resalta que arrancó con la RPA, si bien «la RPA en solitario no es hiperautomatización. Esta requiere una combinación de herramientas para sustituir a los humanos en las partes del proceso donde están involucrados».