Probablemente si una tecnología de automatización y digitalización de procesos esté en de moda hoy en día, esa es RPA (Robotic Process Automation). Se trata de una de las áreas de mayor crecimiento en materia de software y dos de sus principales actores, UiPath (del cual, por cierto, Reingeniería Digital es partner, como contaremos en breve) y Automation Anywhere han recibido recientemente unas espectaculares rondas de financiación.
Se trata, sin embargo, de un tipo de soluciones afectadas por un gran bombo publicitario y no poca confusión que a veces puede hacer difícil su asimilación. Vamos a intentar entender qué es la automatización robótica de procesos y lo que puede ayudar en materia de digitalización de procesos.
Robots software
El primer punto de confusión sea, probablemente, su propio nombre. Hablamos de automatización robótica y en general, cuando se habla de robots tendemos a pensar o bien en robots androides cercanos a la ciencia ficción o bien a los típicos robots de brazo articulado en cadenas de montaje como por ejemplo de automóviles.
Los robots de que se habla en RPA nada tienen que ver con eso. Los robots de RPA son robots software, es decir, no son más que programas o módulos software y, por tanto, no son más tangibles que cualquier otro programa que podamos pensar.
Es más, aunque el campo de aplicación de RPA es muy amplio, tiende a estar más ligada a entornos de oficina que de fabricación.
Entender lo que es RPA
Ahora que ya sabemos que estamos hablando de software vamos a intentar explicar qué tipo de cosas hace ese software. Sin ánimo de dar una definición absolutamente definitiva, proponemos esta definición de RPA
RPA (Robotic Process Automation) es un tipo de soluciones software que permiten desarrollar y ejecutar unos módulos denominados robots que interactúan con aplicaciones, ficheros y APIs de sistemas computerizados para realizar tareas normalmente confiadas a personas e imitando la forma en que las realiza un humano y sin requerir modificaciones en esas aplicaciones, ficheros o APIs.
La definición es un poco larga pero nos permite ver algunos elementos fundamentales de este tipo de soluciones, a saber:
- Crean unos módulos software que denominamos robots
- Permiten tanto el desarrollo como la ejecución de esos robots
- Estos robots interactúan no con elementos físicos sino con sistemas informáticos.
- Dentro de esos sistemas informáticos, la interacción se produce con aplicaciones (por ejemplo un ERP o una página web), con ficheros (por ejemplo una hoja de cálculo, un documento PDF o una base de datos) o con APIs (por ejemplo, para la gestión del correo electrónico o la transferencia/recogida de ficheros vía FTP)
- Esos robots realizan tareas normalmente confiadas a personas. La mera mención a la palabra tarea ya nos hace pensar en su relación con los procesos de negocio, aspecto que luego veremos un poco más en detalle. Y el que sean tareas normalmente confiadas a personas sobre sistemas computerizados ya nos hace darnos cuenta de que hablamos con frecuencia de lo que en BPMN se llamaría una ‘User Task‘, es decir, tareas realizadas manualmente pero sobre sistemas informáticos: una cumplimentación de un formulario (por ejemplo con un pedido), un traspaso de información de ficheros a una aplicación (por ejemplo, introducción de datos de facturas en un ERP) etc.
- Imitando la forma en que realizan esas tareas los humanos nos lleva a una característica muy diferencial e importante de entender de RPA. Aunque es cierto que en algunos casos los robots interactuan con APIs, la mayor parte de su trabajo es con aplicaciones y/o ficheros existentes. A la hora de interactuar con aplicaciones, por ejemplo, RPA utiliza las mismas pantallas que los humanos, con los mismos campos, los mismos botones, etc y trabaja con ellos exactamente igual que las personas. Los robots son capaces de interpretar los campos de las pantallas y de transmitir órdenes simulando el uso del ratón y el teclado. De la misma forma con ficheros. Así, por ejemplo, pueden trabajar con una hoja de cálculo y abren también el fichero, buscan celdas, cortan y pegan, introducen nuevos datos, ordenan por columnas, etc.
- El punto anterior, interactuar igual que lo hacen los humanos tiene una consecuencia importantísima: no modifican los sistemas sobre los que actúan. No es difícil de entender. Pongamos un robot que trabaja sobre un ERP. Si el robot software utiliza las mismas pantallas, campos y datos que el humano, e interacciona con el sistema simulando movimiento de ratón, click e introducción de datos en teclado, el ERP ‘no sabe‘ si quien está interactuando con él es un humano o un robot porque la interacción es exactamente la misma. Por tanto, no es necesario modificar ni las pantallas ni la lógica del ERP.
¿Qué aporta RPA?
Además de las capacidades de las soluciones RPA que hemos visto al desmenuzar la definición, conviene decir que las herramientas de RPA del mercado ponen énfasis en hacer que el diseño y desarrollo de robots sea muy sencillo, según una filosofía de tipo ‘low code‘ lo que hace que el desarrollo sea más rápido que el de un software tradicional y requiera menos conocimientos técnicos (en el caso de robots sencillos ni siquiera son necesarias habilidades técnicas o de programación).
Con lo que hemos visto, sabemos que RPA es capaz de automatizar tareas (por tanto partes de un proceso de negocio) y lo hacen:
- Sin requerir modificación de los sistemas con que interactuan
- Con un desarrollo comparativamente rápido y sencillo
Más abajo veremos escenarios típicos de aplicación, pero vemos que la aportación diferencial de RPA al campo de la automatización y digitalización de procesos es:
RPA aporta una automatización comparativamente rápida sencilla de tareas de usuario sin requerir modificaciones en las aplicaciones, ficheros o APIs con que interactua.
Antes de pasar a ver sus campos de aplicación habituales, detengámonos a intentar aclarar el punto de mayor confusión: cuál es la relación de RPA con la Inteligencia Artificial.
RPA e Inteligencia artificial
La literatura comercial y poco profunda tiende a confundir RPA e Inteligencia artificial y no son lo mismo ni mucho menos. Ahora lo aclaramos un poco pero primero afirmemos con rotundidad lo siguiente:
- RPA no es inteligencia artificial…
- … pero RPA incluye algunas capacidades de inteligencia artificial.
Podríamos decir que en relación con las tareas que automatiza RPA hay dos puntos donde el humano aporta capacidades cognitivas diferenciales:
- Sentidos: es decir, en la interacción con el exterior fundamentalmente mediante la vista para entender pantallas, documentos, imágenes, etc
- Análisis y decisión: A la hora de decidir qué hacer
Aunque las fantasías alrededor de RPA e inteligencia artificial llevan erróneamente a pensar en una inteligencia completa, capaz de razonar, crear y decidir (es decir, actuando sobre todo en análisis y decisión), lo cierto es que las técnicas de inteligencia artificial que se usan en RPA hoy en día van más en la línea de los ‘sentidos’.
Veamos un poco cómo funcionan ambas variantes.
Cuando RPA trata con pantallas y documentos, puede suceder que estos se encuentre muy claramente estructurados, con los datos perfectamente definidos, etiquetados y en los mismos puntos de la pantalla o el documento. En esos casos, RPA es capaz de extraer o introducir información mediante tecnología software digamos ‘estándar’. Sin embargo, cuando los datos son desestructurados (por ejemplo, correros electrónicos o ficheros PDF en texto libre o cuando las pantallas vienen en forma de imágenes como sucede en aplicaciones virtualizadas) normalmente RPA necesita aplicar técnicas de inteligencia artificial del campo de reconocimiento de imágenes, procesamiento de lenguaje natural (NLP, Natural Language Processing), entendimiento del lenguaje natural (NLU, Natural Language Understanding) u OCR (Optical Character Recognition) avanzado. Ahí es fundamentalmente donde hoy día aplican inteligencia artificial las soluciones existentes.
En la toma de decisiones, éstas pueden estar regidas por unas reglas de negocio sencillas y claramente procedimentadas o bien requerir juicio humano. En el caso de la existencia de reglas de negocio claro, no se precisa de inteligencia artificial y un software ‘normal’ lo puede hacer perfectamente. En el caso de decisiones complejas y sin reglas claras, puede tener sentido la aplicación de Machine Learning e Inteligencia Artificial. Sin embargo, conviene evitar fantasías y tener claro que las soluciones actuales de RPA están orientadas a la decisión basada en reglas de negocio sencillas, es decir, a que el análisis y decisión se realice con algoritmos sencillos tradicionales. Cierto es que ya existen algunas posibilidades de enganchar módulos más avanzados, por ejemplo en Python, y que se trabaja mucho en la dirección de incluir nuevas capacidades cognitivas. Pero, por ser prácticos, a día de hoy hay que pensar que las capacidades de análisis y decisión de las soluciones RPA son básicas y no incluyen inteligencia artificial.
¿Cuándo usar RPA?
Con todo lo visto, ya nos hacemos una idea de e qué tipo de tareas se aplica RPA. Como regla básica podemos decir que:
RPA se aplica a la automatización de tareas repetitivas, masivas y basadas en reglas realizadas actualmente por humanos interactuando con aplicaciones y ficheros.
- Se aplica a tareas repetitivas y basadas en reglas porque es viable de una forma sencilla automatizar su lógica (a la espera de un desembarco de mayores capacidades de inteligencia artificial)
- Se aplica a tareas masivas por un razonamiento económico: porque si son tareas masivas se recogen mayores frutos con la automatización en forma de liberación de recursos humanos, eliminación de errores, etc
- Y se aplica a tareas basadas en la interacción con aplicaciones y ficheros porque esa es la naturaleza misma de lo que hace RPA y uno de sus mayores beneficios diferenciales frente a otras formas de digitalización de procesos: no precisa modificar las aplicaciones y ficheros existentes.
Algunas de las tareas normalmente confiadas a RPA pueden ser: carga de datos en aplicaciones a partir de datos de ficheros (por ejemplo, carga de información de facturas en un ERP), paso de datos entre sistemas (por ejemplo, paso de los pedidos del CRM al ERP), traspaso de datos entre ficheros (por ejemplo, en una migración entre sistemas o en cargas masivas periódicas entre sistemas), repetición indefinida de tareas concretas sobre aplicaciones (por ejemplo, en pruebas de regresión de software), procesamiento de correos (tratamiento automatizado de la entrada o envíos automatizados), etc
Adem´ás de tareas puntuales, las soluciones de RPA permiten construir flujos de proceso que enlazan diversas actividades y permiten elementos como las condiciones, los bucles o el tratamiento de errores. En ese sentido, en teoría RPA puede automatizar un proceso extremo a extremo de forma similar a un BPMS pero, en la práctica, las capacidades de RPA son algo más limitadas y están orientadas o bien a la automatización de procesos muy sencillos o bien a colaborar en la automatización de procesos mayores cuyo núcleo reside en otro sistema o sistemas.
Sin embargo, hay un punto que no suele tratar la literatura sobre RPA y que en una perspectiva amplia de digitalización de procesos hay que tener claro: ¿por qué automatizar usando RPA en lugar de hacerlo, por ejemplo, evolucionando un sistema de gestión empresarial o un BPMS?
Para contestar esa pregunta hay que tener claro lo que decíamos más arriba que es diferencial de RPA, a saber que es rápido (vamos a añadir que comparativamente barato) y no afecta a los sistemas actuales. Si la automatización que queremos hacer es muy importante para la empresa, tiene mucho retorno y se va a mantener en el tiempo probablemente debamos pensar en una automatización vía sistema empresarial o BPMS. Sin embargo, escenarios típicos de aplicación de RPA son:
- Se trata de automatizaciones de tareas en que no podemos o no queremos tocar los sistemas responsables de los procesos en que se enmarcan. Motivos por los que podemos no querer/poder tocar los sistemas responsables pueden ser, por ejemplo:
- No tenemos poder de negociación suficiente como para cambiar ese software. Por ejemplo, hablamos de una suite ofimática o un SaaS cuyo software es utilizado en el mundo por miles o millones de clientes y por tanto no es su funcionalidad la que se adapta a nuestras necesidades sino nosotros al software. O bien somos una PYME y no podemos aspirar a disponer de una versión personalizada de un ERP.
- De naturaleza presupuestaria (no disponemos de fondos suficientes)
- Por obsolescencia del sistema (queremos automatizar sobre un sistema que se supone va a ser sustituido en el plazo de unos meses o como mucho un año o dos)
- Por falta de capacidades tecnológicas o de desarrollo en el momento actual
- Queremos automatizar en corto plazo ciertas tareas masivas y poco eficientes mientras nos damos tiempo a modificar el sistema empresarial/BPMs. Para que esto tenga sentido, el retorno de la inversión de usar RPA mientras se modifican los sistemas subyacentes tiene que ser claro.
No hay reglas fijas pero lo indicado arriba nos puede dar una idea clara de cuándo tiene sentido aplicar RPA.
Conclusión
En resumen, RPA son un tipo de soluciones que nos permiten automatizar tareas repetitivas, masivas y basadas en reglas actuando sobre unos sistemas, ficheros y APIs existentes sin modificarlos. RPA aplica técnicas algorítmicas clásicas para el tratamiento de pantallas y datos estructurados y recurre a la inteligencia artificial para el procesamiento del lenguaje natural y el tratamiento de ciertos datos no estructurados y, de momento, aplica lógica basada en reglas sencillas para el análisis y la decisión.
Las grandes ventajas diferenciales de RPA se basan en la sencillez y rapidez de desarrollo y en no afectar a los sistemas y ficheros sobre los que actúan.
Teniendo todo eso en cuenta, se debe decidir en cada situación concreta si queremos automatizar mediante RPA, mediante sistema empresarial, mediante BPMS o mediante algún tipo de combinación entre esas tres opciones.
Artículos anteriores relacionados
Imagen: Pixabay, dominio p´´ublico