miércoles, 7 de noviembre de 2018

Una definición de Robotic Process Automation (RPA) y una llamada al realismo


Como por desgracia ocurre con tantas tecnologías novedosas, especialmente cuando incorporan algo que tenga que ver con la inteligencia artificial RPA (Robotic Process Automation) es una tecnología, más bien un tipo de soluciones, sobre los que existe mucha literatura confusa, cuando no directamente exagerada. Puede venirnos bien, pues, disponer de una definición de Robotic Process Automation.

Aunque es quizá excesivamente simplificada, me ha gustado la propuesta que hace Vaibhav Jain en su libro 'Crisper learning for UiPath'. Nos dice:

Robotic Process Automation is the process of imitating the job a normal person would do in front of a computer system.

En esa seudo-definición, he resaltado en negrita dos aspectos que pueden parecer triviales pero que son muy importantes. 

El primero es el hecho de que RPA imita a un ser humano. Es decir, interactua con aplicaciones existentes, usando la pantalla, el teclado, el ratón o tratando por los mismos medios con ficheros ofimáticos, como hojas de cálculo o documentos PDF. 

Y he resaltado que es 'en frente' de un sistema de computación precisamente para hacer más patente que RPA trabaja sobre unos sistemas de información previamente existentes. Eso es muy importante entenderlo porque uno de los valores que creo mayores de RPA es que trabaja con los sistemas corporativos ya en operación, pero sin alterarlos en absoluto ya que hace exactamente lo mismo que haría un operador humano con esas mismas aplicaciones.

Y aquí una nueva llamada de atención. RPA son robots software. Es decir, cuando afirmamos que los robots de RPA interactuan con la pantalla, el teclado o el ratón, no imaginemos a un robot físico (como el que aparece en la imagen de cabecera) tecleando. Los robots de RPA interactuan con los dispositivos del ordenador a nivel de drivers o del sistema operativo. De cara a la aplicación con la que interactua, es exactamente igual que si lo hiciese una persona...pero seguimos hablando de robots software, exclusivamente software, nada de androides.

Una definición parecida a la anterior pero más completa es la que nos ofrece Roland Berger en el documento 'RPA – Tomorrow's must-have technology How robotic process automation can speed up your business'

Robotic process automation (RPA) is a software solution that simulates a "virtual employee". It interacts with existing applications in the same way that a human being would, but faster, more transparently and with greater efficiency

De nuevo, se nos habla de que RPA es un software que imita el comportamiento humano y que interactua con las aplicaciones de la misma forma que éste lo haría.

Y ahora es cuando viene al caso la llamada al realismo. Existe mucha literatura confusa, ya sea con intención o por ignorancia, que mezcla RPA con la inteligencia artificial como si RPA fuese esencialmente una tecnología de inteligencia artificial o un subconjunto de la misma. Y para aquel lector inadvertido, el nombre de este tipo de soluciones, que incluyen el término robótico, unido a la confusa mezcla con la inteligencia artificial, le pueden hacer pensar en un software que piensa como un humando, razona como un humano y decide de forma autónoma como un humano.

No es así. No exactamente así.

Las tareas que fundamentalmente resuelve hoy día RPA sen, precisamente, las menos inteligentes. Las que son masivas, repetitivas y basadas en reglas muy claras. Es decir, las tareas que la mayoría de los humanos consideramos tediosas, rutinarias, burocráticas... 

Sí que es cierto que las soluciones dominantes hoy día de RPA incluyen elementos de inteligencia artificial pero hay qué saber qué. Fundamentalmente las aportaciones basadas en inteligencia artificial se usan en el reconocimiento de imágenes, en un OCR (reconocimiento óptico de caracteres) avanzado,  y en el tratamiento del lenguaje natural. Pero todo ello, fundamentalmente para ser capaces de extraer la información de la imagen de una pantalla (especialmente en entornos virtualizados con herramientas de tipo Citrix) o para extraer información de documentos en texto libre, no estructurado. No se trata, pues, de usar una inteligencia avanzada para razonamiento creativo o toma de decisiones complejas, sino para interpretar correctamente una información desestructurada presente en pantallas y documentos. Nada más... y nada menos.

Es cierto también que se trabaja, y mucho, para incorporar más elementos de inteligencia artificial. Es cierto que la arquitectura de estas herramientas permite ya incluir scripts desarrollados por ejemplo en Python que muy bien pudieran hacer uso avanzado de machine learning, por ejemplo.

Tal vez estén a la vuelta de la esquina avances que incorporen a RPA unas capacidades cognitivas más avanzadas.Parece que así va a ser... y es muy estimulante el avance en esa dirección.

Pero, mientras eso llegue, aplica una llamada al realismo. De momento, RPA sigue aportando su valor principal en la automatización de tareas repetitivas, basadas en reglas y apoyándose siempre en sistemas existentes. Y aunque así formulado puede parecer menos 'bonito', lo cierto es que el valor que aporta a las organizaciones es muy, muy grande.

RPA tiene muchísimo valor que aportar a las empresas que lo empleen con criterio y realismo. Y es una pena que las fantasías en la formulación de lo que es RPA, pueda confundir y ahuyentar a posibles usuarios que se podrían haber beneficiado, y mucho, de ella, o en el otro extremo que se llegue a una desilusión, como se formula en la famosa curva de Gartner, por unas expectativas infladas que luego no se alcanzan.

RPA tiene mucho, muchísimo que ofrecer, y no necesita de fantasías para ello sino, todo lo contrario, necesita más bien una llamada al realismo.