O que é RPA?

RPA é um acrônico, uma sigla para Robot Process Automation, em uma tradução livre “Processos Automatizados por Robô”. RPA, no Brasil também é a sigla para “Recibo de Pagamento Autônomo”, mas não vamos falar disso aqui, o assunto aqui é Robô, Automações.

Existem muitas definições em tudo na área de Tecnologia, e é uma área onde todos adoram sopas de letrinhas e siglas, o que poderia se dizer de uma área que se chama de TI, que usa um PC para construir RPA?

RPA não representa nenhuma tecnologia específica, ele representa um conceito.

É comum hoje em dia grandes empresas tentarem associar o RPA ao seu produto e dizer indiretamente algo como “Isso é RPA”, essa é uma tática que confunde bastante a área administrativa não técnica.

Recentemente fui questionado “Como posso começar a fazer RPA?”, na hora eu não tive uma resposta, na verdade eu tinha sim, mas como eu vou dizer para a pessoa “Você tem quatro horas pra eu te explicar?”, não a para resumir em passos simples e objetivos, então resolvi escrever esse artigo.

Agora sim

Mas então que Diabos é um RPA?

RPA é simplesmente a construção de um programa de computador feito para realizar uma tarefa que normalmente era realizada por um humano e na maioria dos casos, com muito custo.

E que tecnologia usa-se no RPA

Dado o conceito “Um programa de computador” qualquer tecnologia é aceitável, como RPA é uma sigla que foi adotada recentemente muitas pessoas acham que só é RPA automações feitas com ferramentas complexas e poderosas, mas não.

A primeira automação que conheci foi lá no começo dos anos 2000, quando trabalhei em uma grande operadora de telefonia fixa que na época havia adquirido uma operadora de telefonia celular. Lá havia um procedimento que os operadores faziam, que consistia em três passos simples:

  1. Abrir o Terminal do Main Frame e logar no sistema da telefonia fixa
  2. Abrir outro terminal do Main Frame e logar no sistema da telefonia móvel
  3. Verificar se a pessoa existia nos dois sistemas, complementar os dados de um lado para o outro

Simples, certo? Certo

Me lembro bem os números, um operador fazia essa operação durante o dia todo, 6 horas por dia na razão de 6 ou 7 cadastros por hora, o que dava uns 36 cadastros por dia, por operador. No setor haviam 10 operadores cuidando apenas disso.

Então, um jovem programador COBOL, recém contratado daquela empresa de telefonia e que era a primeira leva a entrar depois que ela foi privatizada sugeriu construir uma aplicação, que faria o mesmo processo.

Naquela época eu conhecia apenas o VB6 e o ASP 3, o que ele falou para mim não fazia sentido, fingi que entendi e acenei positivamente com a cabeça enquanto comia meu segundo lanche do McDonalds.

Passaram-se alguns dias e ele veio me chamar animado, mostrou-me o processo e assim que vi ele executando minha mente se iluminou e uma palavra surgiu na minha mente:

“AUTOMAÇÃO”

Tá bom, não pensei especificamente em automação, era mais para “Cacete, o cara fez uma programa que simula uma pessoa”

Era isso que eu presenciava, mas não fazia idéia do que era.

O processo seguinte foi o mesmo de hoje, mostrou para seu chefe, que mostrou para o dele, que mostrou para o dele e foi agendada uma reunião e posteriormente foi dada a ordem para colocar o programa para rodar.

Esse rapaz era bem humorado e tinha uma estranha mania de dar nome aos seus programas, herdei isso dele, então nasceu o Jurandir.

No primeiro dia Jurandir fez cerca de 120 cadastros por hora, 720 em 6 horas, mais do que a operação inteira fazia em dois dias, mas não parou por aí, pois quando deu o horário do expediente Jurandir continuou determinado e focado, e no dia seguinte, quando bateu as 24 horas descobrimos que Jurandir havia feito cerca de 3200 cadastros pois durante a noite o sistema era levemente mais rápido.

O impacto foi assustador, Jurandir não cobrava salario, férias, décimo terceiro e tão pouco ficava doente ou parava de trabalhar, havia em um único dia feito o trabalho de 100 dias de um único profissional.

Particularmente fiquei maravilhado com Jurandir, quis entender com ele funcionava e entendi, era uma aplicação feita em VB com Winsock que na época fazia muito sentido, mas hoje, bem, hoje ninguém sabe o que é Winsock, Telnet e coisas do tipo.

Mas lembro que a semente da maldade foi dada por mim, com a inocente sugestão

“E se trocássemos todos os operadores por robôs?”

O Diretor da área, um antigo analista de sistemas, mais velho e cansado, que havia sido privatizado junto com a empresa sorriu e respondeu

“Seria interessante, mas como explicar pros operadores que ele estariam na rua no dia seguinte?”

Não é que eu não tivesse coração ou algo do tipo, só tinha empolgação comum na juventude que impulsiona as coisas sem pensar na consequências, algo necessário as vezes.

Então, como você pode ver a Automação e o RPA não é algo novo, de agora, existem exemplos muito mais antigos mas esse é a minha experiência pessoal.

O que quero dizer é que RPA não precisa especificamente de ferramentas como WinAutomation, Process Robot, UI Path, Sellenium, Open RPA, Indigo entre outras, mas todas elas em si são o RPA.

Qualquer automação que se faça para substituir uma ação humana é um RPA e esse programa pode ser escrito em qualquer linguagem, seja nas Jurássicas C, C++, Clipper, Cobol e também nas mais “novas” como Java, C#, Python, Javascript e GO. Não vou listar todas as linguagens aqui por só essa citação teria muitas e muitas linhas.

Mas então, como eu começo com RPA?

Devido a gama de soluções que existem hoje eu posso dizer com certeza que você não precisa ser um programador para fazer um RPA.

Claro, que se você for programador ou tiver ao menos noção de lógica de programação o seu RPA ficará cada vez melhor.

Se você não é programador e não tem noções de desenvolvimento de software, mas quer uma solução simples para testar o RPA eu indico o OPEN RPA, que é uma solução de código aberto que você baixa e instala no computador e já saí clicando e mandando ver.

Mas, se você é um desenvolvedor e quer iniciar eu sugiro o Selenium, construir um programa que faz login em algum sistema, na primeira vez que funciona, é particularmente gratificante.

Selenium é bom pois tem distribuições para Java, .NET, Go e muitas outras para você testar.

Conclusão

Então é isso, RPA é uma técnica, não uma tecnologia, é uma técnica despadronizada E ninguém é dona dela.

E lembre-se, trabalhar com RPA leva sempre a olhares de ódio de outras pessoas que tem medo de ter o próprio trabalho automatizado.

Mas afinal o que é um Robô?

O Google define robô como:

“substantivo masculino
  1. máquina, autômato de aspecto humano, capaz de se movimentar e de agir.
  2. mecanismo comandado por controle automático ☞ ver gram/uso, a seguir.”

Livro: O Guia do mochileiro das galáxias

Segundo o “Guia do Mochileiro das Galáxias” de Douglas Adams:

“A Enciclopédia Galáctica define ‘robô’ como ‘dispositivo mecânico que realiza tarefas humanas’.

O departamento de marketing da Companhia Cibernética de Siriús define ‘robô’ como ‘o seu amigão de plástico’.

Guia do Mochileiro das Galáxias define o departamento de marketing da Companhia Cibernética de Siriús como ‘uma cambada de panacas que devem ser os primeiros a ir para o paredão no dia em que a revolução estourar’.

[…] Curiosamente, uma edição da Enciclopédia Galáctica que, por um feliz acaso, caiu numa descontinuidade do tempo, vinda de mil anos no futuro, definiu o departamento de marketing da Companhia Cibernética de Siriús como ‘uma cambada de panacas que foram os primeiros a ir para o paredão no dia em que a revolução estourou’. […]”

Brincadeiras à parte os Robôs são uma realidade no nosso dia a dia, mais que uma realidade eles são uma necessidade, hoje muitas empresas simplesmente não existiriam se não fossem os robôs.

Antes dos termos que utilizamos hoje, antes de qualquer robô existir de verdade Leonardo Da Vinci já fazia esboços do que ele viria a ser, sua criação foi batizada de “Cavaleiro mecânico” consistia em uma automação de um corpo coberto por uma armadura de cavaleiro.

Cavaleiro mecânico de Leonardo Da Vinci

Leonardo da Vinci construiu todos os mecanismos de articulação, equilíbrio e funcionamento necessário para andar normalmente, porém, em todos os esquemas de Da Vinci ele sempre esbarrava com a questão “E o centro de controle?”, faltava um cérebro.

Hoje os esquemas de Leonardo Da Vinci parecem ingênuos pois os mecanismos de equilíbrio necessários para se manter um corpo bípede em pé são incrivelmente complexos.

A expressão robô foi usada pela primeira vez em uma peça de teatro do dramaturgo e escritor tcheco Karel Čapek e deriva da palavra tcheca “robota” que significa “escravo” e também remete diretamente à “trabalho forçado” e “trabalho compulsório”.

A Peça em questão se chamava “R.U.R” (Rossum’s Universal Robots), escrita em 1921, contava a história do brilhante cientista Rossum que desenvolve uma substância e com ela consegue construir humanoides pré-programados que ele chama de “Robôs”, esses humanoides são capazes de substituir os humanos em trabalhos braçais. Surge assim a imagem do robô que temos até hoje.

Muitas pessoas acham que Isaac Asimov cunhou e desenvolveu sozinho o termo Robô em seus livros de ficção científica, mas o próprio bebeu na fonte original do termo. Suas centenas de livros possuem vários clássicos focados em Robôs entre os mais famosos “Eu Robô” e o “O Homem bicentenário”.

Livro: Eu robô de Isaac Asimov

Isaac Asimov foi responsável por cunhar as três leis universais da robótica, que são:

1ª Lei: Um robô não pode ferir um ser humano ou, por inação, permitir que um ser humano sofra algum mal.

2ª Lei: Um robô deve obedecer as ordens que lhe sejam dadas por seres humanos exceto nos casos em que tais ordens entrem em conflito com a Primeira Lei.

3ª Lei: Um robô deve proteger sua própria existência desde que tal proteção não entre em conflito com a Primeira ou Segunda Leis.

Posteriormente Asimov acrescentou a “Lei Zero”, acima de todas as outras: um robô não pode causar mal à humanidade ou, por omissão, permitir que a humanidade sofra algum mal.

Hoje também temos diversos exemplos de Robôs Humanóides que se tornam cada vez mais reais, incríveis e numerosos, mas nessa década o que nos parece mais útil são robôs que estão desligados do esteriótipos de Humanóide.

Definição de Robô aplicado ao dia a dia

Robôs são construtos físicos ou lógicos que servem para auxiliar em tarefas de alto grau de repetição ou complexidade, tanto física quanto mental

Ex de Robô Físico

Os braços robóticos das fábricas de automóveis que fazem tarefas como Pegar a porta, soldar a porta, colocar a maçaneta e empurrar a porta para frente, repetindo essa tarefa em questão de minutos. A mesma tarefa feita por uma pessoa seria feita em cerca de 30 minutos e teria um alto grau de desgaste físico devido ao peso da porta e a temperatura e manuseio da solda e das ferramentas.

Ex de Robô lógico

Um programa de computador com o intuito de automatizar uma tarefa árdua, complexa e ou retilinia de maneira perfeita. Imagine um funcionário que tem que acessar dez sistemas e coletar dados de todos os sistemas e preencher uma planilha Excel, ele faz bem o trabalho dele cometendo poucos erros, mas parando para descansar e tudo mais. Um programa de computador conseguiria realizar a mesma tarefa que ele sem erros, sem interrupções e trabalharia por horas e horas a mais sem problema algum.

Robôs no mundo corporativo

Quando você pensa em robô em uma empresa o que lhe vem a mente são robôs que montam carros, aviões, que extraem petróleo e que são utilizados sempre para força física onde o ser humano não aguentaria ou ficaria estafado facilmente.

Hoje, no mundo corporativo os robôs são em sua maioria quase absoluta softwares, ou seja, programas de computador programado para tarefas específicas e repetitivas.

Um caso real

Durante uma pré auditoria preparatória, para uma auditoria verdadeira que viria nos próximos meses, uma grande empresa descobriu que havia cometido um erro durante um processo e modificou indevidamente centena de milhares de dados de clientes causando um prejuízo pequeno aos clientes porém perceptível. O departamento Jurídico dessa empresa ciente do problema pediu a correção imediata, porém o problema estava se desenvolvendo a anos e anos então o número de dados de clientes afetados era insano. Montou-se uma operação exclusiva para se corrigir esse problema, realocaram funcionários de outras áreas, a correção deveria ser feita em três sistemas com o intervalo máximo de cinco minutos entre eles para não perder o tempo de sincronia de informações entre os sistemas. A Operação de guerra (como ela era chamada) contava com 20 operadores e em 60 dias conseguiu realizar 1800 correções com sucesso, a estimativa é que esse número ia crescer de acordo com a capacidade de aprendizado da equipe, mas mesmo com o crescimento da velocidade e mesmo que a equipe dobrasse a estimativa seria de mais de uma década para solucionar os casos.

Um dos gerentes comentou que os custos para a correção seriam tão altos que seria melhor arcar com os custos das multas e dos processos dos clientes.

Então a empresa em que trabalho foi acionada, sentamos com os responsáveis para entender o processo, passamos 2 dias mapeando os sistemas e tentando entender o fluxo de informações de dados e mais 2 dias para construir o robô que fizesse as correções. Eram três sistemas distintos, tivemos que fazer os acessos exatamente como uma pessoa, usando usuário, senha e acessando as informações normais do sistema, não poderíamos ter acesso à nenhuma base de dados, tão pouco WebServices ou nada especial, apenas os acessos normais de usuários ao sistema Web, e assim fizemos.

No primeiro teste utilizamos máquinas ociosas na empresa durante uma madrugada, utilizamos as mesmas máquinas da equipe que estava realizando a correção durante o dia. O robô rodou em 20 máquinas das 00:00 até as 06:00 fazendo 120.000 correções, olhamos o código e mesmo com o resultado surpreendente percebemos que podia ser mais rápido e melhor, fizemos alguns ajustes e conseguimos mais máquinas para a madrugada seguinte, seriam 50 máquinas agora na madrugada, começamos a execução com atraso, às 1:30 hrs da madrugada, pois estávamos testando as correções, então às 6:00 hrs da manhã atingimos o número de 1.700.000 (1 milhão e 700 mil correções).

Estimamos então que em cerca de uma semana, nessa mesma marcha terminaríamos todas as correções, a tempo para que a empresa não fosse pega na auditoria, além disso havíamos conseguido 500 máquinas para executar o robô durante a madrugada. Mas no dia seguinte os sistemas dessa empresa ficaram lentos, engargalados e eles então pediram para que nós fizéssemos apenas 500.000 correções por dia, pois eles não suportavam mais que isso.

Nesse caso podemos ver a aplicação real de um Robô no mundo corporativo, o Robô foi desenvolvido a um custo baixíssimo e teve uma performance infinitamente maior do que qualquer performance humana no mesmo tempo. Os operadores voltaram para as funções reais deles.

Os registros foram corrigidos, os funcionários retornaram às suas funções originais e a auditoria veio e passou longe desse problema.

Robôs no mundo de hoje

Infelizmente, fora do mundo corporativo, é comum que robôs seja utilizados para algum objetivo fora da lei ou egoísta, o mais comum agora são robôs feitos em Javascript que rodam no navegador da vítima para minerar Bitcoins, isso é feito quando você acessa um site pornô ou algum site com bom conteúdo mas sem propaganda. O tempo que você leva para ver o site, olhar as fotos, assistir os vídeos ou responder seus testes de personalidade o processamento do seu computador se eleva para processar os Bitcoins.

Se uma pessoa deixar um computador rodando e processando Bitcoin ela terá uma conta de luz altíssima no fim do mês tornando o processo inviável, mas se você divide essa conta com milhares de pessoas, cada uma paga um pouco da sua conta e ninguém nem vê.

Esses são casos que o seu poder de processamento são roubados e são nocivos sim, mas não trazem prejuízo grande e imediato, mas outros casos como Robôs que capturam sua máquina e interceptam tudo, mouse, teclado e tela, gravando assim as senhas que você digitou, os sites que acessou, as conversas que teve e essas informações podem simplesmente ser sequestradas para exigir um pagamento depois.

Sim, Robôs podem ser usados como vírus malignos que escravizam computadores criando redes de zumbis invadindo sites no mundo inteiro por DDoS (Ataque de negação de serviço) e muito mais.