miércoles, 12 de septiembre de 2018

Una definición comentada de Robotic Process Automation (RPA)


Robotic Process Automation  (RPA) es una de las tendencias tecnológicas que ocupan cada vez más espacio en los medios especializados. Sin embargo, y como pasa con casi todas las tecnologías 'de moda', tienden a darse, intencionadamente o no, visiones borrosas y poco claras, a veces incluso bastante equívocas.

Aprovechando que este verano he leído el librito divulgativo 'Robotic Process Automation for dummies. NICE special edition', escrito por el equipo de NICE, uno de los principales fabricantes de soluciones RPA,  rescato la definición que allí se proponía y, sobre ella, intento explicar algunos puntos que puede que, según para quién, no estén suficientemente claros. Ésta es la definición que se propone en el libro:

RPA is the use of computer software robots to handle repetitive, rule-based digital tasks, interacting with applications and information sources the same way humans do.

De esta definición, quiero entresacar y destacar los siguientes puntos:

  • Robots software: A veces, las imágenes que acompañan a artículos sobre RPA, y el propio hecho de que a los módulos software les llamemos robots, puede confundir a algunas personas y hacerles pensar que estamos hablando de algo parecido a los robots industriales o incluso androides. Nada de eso, los robots de que hablamos en Robotic Process Automation son módulos software, programas si se quiere, que residen en nuestros puestos de trabajo o en servidores, como cualquier otro software.

  • Tareas repetitivas y basadas en reglas: De nuevo, la propaganda sobre RPA incide tanto en la inteligencia artificial que nos hace pensar que RPA automatiza tareas complejísimas hasta ahora sólo al alcance de la inteligencia humana y que no es más que otra de las tecnologías que componen la inteligencia artificial. No es así.  Aunque RPA sí que hace uso en ocasiones de tecnología de inteligencia artificial (por ejemplo, para entender lenguaje natural en documentos y encontrar información en ellos) , y aunque el futuro más ambicioso de RPA se centra en una cada vez mayor presencia de la inteligencia artificial y el machine learning, lo cierto es que, las aplicaciones más reales, las más características y de las que más beneficio pueden obtener las empresas a corto plazo, son todo menos inteligentes. Precisamente, la mayor utilidad y hasta viabilidad de aplicación hoy día de la automatización con robots software, es la automatización de tareas sencillas, muy repetitivas y basadas en reglas claras, No nos decepcionemos en absoluto por ello: los beneficios reales para las compañías pueden ser inmensos 'sólo' con hacer eso, 'sólo' con automatizar esas tareas simples, repetitivas y basadas en reglas. 
  •  
  • Interacción con aplicaciones y fuentes de información: Normalmente, los robots de RPA interactuan con dos tipos de elementos. Por un lado, con aplicaciones, a través de sus pantallas y simulando el uso del teclado o el ratón. Por otro lado con almacenes de información, ya sean documentos ofimáticos o bases de datos. Es especialmente relevante la interacción con las aplicaciones a través de sus pantallas y mecanismos de entrada/salida ya existentes.

  • De la misma forma que lo hacen las personas: Una de las fortalezas prácticas de la automatización robótica es que los robots 'simulan' el comportamiento de un humano. Es decir, 'miran' virtualmente la pantalla y obtienen información de ella, 'leen' virtualmente documentos como facturas o albaranes y extraen información de ellos y envían nueva información a las aplicaciones simulando el uso del teclado o el ratón. La importancia de emular a los seres humanos no tiene nada que ver con la inteligencia artificial, sino con el hecho de que eso elimina la necesidad de modificar las aplicaciones sobre las que se actúa y los documentos que se leen.Y ese es uno de los grandes secretos de la utilidad de RPA.

A lo mejor tengo que sacar tiempo para explicar más clara, y quizá gráficamente lo que es realmente RPA. De todas formas, ahora, a la definición de arriba y las observaciones realizadas, voy a añadir algo parecido, sin prender serlo, a una nueva definición: 

"RPA es un tipo de soluciones que aportan módulos software (denominados robots) capaces de interactuar con aplicaciones y documentos existentes, con lo que automatizan tareas, en general muy procedimentadas y basadas en reglas, consiguiendo así automatizar procesos sin modificar las aplicaciones subyacentes"

¿Se entiende?

Espero que sí pero, si no es así, tiempo habrá de explicarlo de otras formas porque Robotic Process Automation, RPA, constituye una de mis áreas de mayor dedicación y estudio actualmente.