A parceria entre os processos automatizados e os sistemas já existentes em uma organização

Podemos dizer, a partir da experiência da equipe iProcess em automação de processos, que os processos automatizados e os sistemas informatizados das organizações não competem entre si, eles formam uma parceria, se complementam. Dizemos isto porque são nos sistemas já existentes nas organizações que os processos obtém as informações necessárias para a execução dos fluxos de trabalho, utilizando-se para isto de uma camada de integração. Daí o motivo de acreditarmos que ambos se complementam.

Os sistemas já existentes, que também chamamos de legado, não são descontinuados ao serem integrados ao processo automatizado. O processo será responsável pela conexão entre estes sistemas e os usuários do processo. Através do BPMS (Business Process Management Suite ou System), uma organização automatiza processos para aumentar seu nível de controle e monitoramento na execução dos processos. Assim, um BPMS atua como orquestrador da execução dos processos entre pessoas e sistemas, definindo o fluxo do trabalho e da informação entre estes participantes.

Desta forma, os sistemas se preocupam com o cadastro, atualização e consulta das informações armazenadas em base de dados e os processos com a sua distribuição, tendo o foco na sequência de etapas, prazos, distribuição das atividades, integridade do processo e em fornecer o melhor ambiente possível para que as atividades sejam executadas. Em alguns casos, se faz necessário o armazenamento das informações ao longo do processo, mas são informações específicas para o contexto das instâncias do processo, que servem para controle de estado do fluxo e logs de atividades, por exemplo.

Quando se automatiza um processo, na etapa de levantamento das informações, é que verificamos como a parceria entre os sistemas já existentes na empresa e o processo utilizando BPMS se dará. Algumas das informações levantadas nesta etapa são:

  • Informações consumidas e informações geradas pelo processo, isto é, quais as informações que deverão ser recebidas pelo processo oriundas de sistemas e quais as informações que eventualmente deverão ser enviadas para gravação em sistemas existentes da organização, como, por exemplo, ERP, sistemas contábeis ou cadastros corporativos.
  • Pontos de integração, isto é, em quais atividades do processo deverão ser obtidas/geradas informações que alimentam os sistemas legados.
  • Como que o processo e os sistemas legados conversarão entre si, que normalmente ocorre através da camada de integração, utilizando serviços especialmente construídos para isto.

A implementação de BPMS nas organizações não deve ser orientada a substituir total ou parcialmente os sistemas atuais esperando-se que passe eventualmente a ser o repositório central das informações da organização. O BPMS não é a fonte principal das informações que estão sendo manipuladas, mas atua principalmente como integrador delas, buscando e enviando informações para outros sistemas durante a execução dos processos.

A iProcess disponibiliza em sua plataforma EAD mais informações sobre este assunto, através do Curso TDP – Transformação Digital Orientada a Processos.

Usuários de negócio automatizando processos com ferramentas BPMS – será o adeus à TI?

Com múltiplas funcionalidades e novos recursos sendo incluídos periodicamente, as ferramentas de BPMS (Business Process Management Systems) tem se destacado como uma das categorias de software mais abrangentes disponíveis no mercado atualmente. A promessa de juntar num mesmo mundo a área de processos, de negócio e TI, através dos recursos de modelagem, análise, redesenho, automação e monitoramento de processos, certamente vem chamando a atenção de muitas organizações, que buscam melhorar seus processos e ter mais agilidade e competitividade.

Com a intenção de destacar a sua ferramenta das demais, é muito frequente nos depararmos com o discurso de fornecedores das ferramentas de BPM contendo frases de impacto marcantes, mais ou menos nesta linha (obs: nenhuma frase é real):

  • “Ferramenta de código zero! Não precisa de uma linha sequer de programação!”;
  • “Não dependa mais da TI!”;
  • “Coloque todo o poder nas mãos da área de negócio!”
  • “Dê aos usuários a possibilidade de alterar e modificar os processos em tempo real!”

Mas então… o quão próximos estamos da própria área de negócio começar a desenhar e automatizar processos, sem necessitar do envolvimento da TI?

De cara, vamos esclarecer um ponto bem importante: automação de processos ainda é, em grande parte, desenvolvimento de software. O que muda em relação ao desenvolvimento de software convencional é apenas a percepção do usuário final do que estaria pronto ou não. Se temos uma aplicação web sendo desenvolvida e elaboramos um protótipo HTML pra fazer uma apresentação preliminar ao usuário final, não raro o feedback recebido é: “Que legal, está pronto?”. Já num projeto de automação de processos, temos um lindo processo modelado em BPMN na ferramenta, o que com alguma frequência também leva os usuários a mesma conclusão: “Mas o processo já está todo desenhado na ferramenta! O que está faltando?”. Ora, pode estar faltando tudo! :-)

O fato de termos um processo modelado em BPMN dentro da ferramenta de BPMS, não significa que ele está pronto pra ser executado, ou que qualquer pessoa com conhecimento em BPMN tenha necessariamente condições de automatizá-lo. Isto ocorre por (dentre outros) vários motivos:

  • É necessário definir o modelo de dados do processo, que são todos os atributos/informações necessárias durante a execução do processo. Isto pode a princípio parecer uma tarefa simples de criar os mesmos campos que haveria em um formulário de papel ou numa planilha eletrônica, mas o processo precisará de mais informações do que isso. Desde informações dinâmicas que aparecem na lista de trabalho, a informações que aparecem no detalhamento das atividades ou mesmo atributos puramente técnicos, invisíveis ao usuário e que só servem para possibilitar a implantação de algum requisito;
  • É necessário conhecimento de integrações de sistemas, visto que em grande maioria dos casos, um processo automatizado tem integração com um ou mais sistemas, para buscar ou gravar informações que são manipuladas no processo. É possível automatizar um processo sem integrações, mas a sua inteligência ficará bastante limitada. Por exemplo, se um aprovador precisa de uma informação que já existe em outro sistema para tomar uma decisão, por quê não faríamos uma integração para buscar este dado, e mostrar a ele na hora de realizar a tarefa? Se já existe um cadastro de fornecedores, por que não fazer uma integração para buscar uma lista de fornecedores, facilitando o preenchimento de uma tarefa e evitando que o usuário tenha que ficar digitando todos os dados?
  • É necessário conhecer como fazer a atribuição dos papéis (roles) aos usuários na ferramenta, sendo frequentemente necessária integração com repositórios de usuários (ex: Active Directory). É possível fazer atribuição direta (“de/para”) de roles do processo para grupos de usuários criados na própria ferramenta de BPMS, mas em cenários reais de automação, muito provavelmente isto não será o suficiente e algum tipo de integração com sistemas ou repositórios de usuários será necessária;
  • É necessário conhecimento de como a ferramenta de BPMS implementa os padrões de workflow/BPMN. Por exemplo, como implementar um subprocesso multi-instance na ferramenta? O fato de marcar um “check” em alguma tela da ferramenta não significa que o comportamento esperado vai ser realizado. É necessário que o usuário de negócio saiba exatamente as implicações, em termos de automação de processos, de um subprocesso multi-instance;
  • É necessário definir e desenvolver todas as interfaces de usuário. A ferramenta de BPM pode oferecer recursos de criação de formulários eletrônicos amigáveis e com pouco código, o que na primeira vista possibilitará ao usuário a criação rápida de formulários eletrônicos. Mas em boa parte das soluções de BPMS é necessário conhecimento mais técnico para conectar este formulário ao modelo de dados do processo, plugar as integrações necessárias (sempre elas!) e definir regras de validação e interface, que não raro exigem a criação de linhas de código de software.

Talvez você agora esteja achando que a resposta para a pergunta do título seja “Não”, certo? Ou talvez esteja achando que os discursos de marketing das ferramentas coloquem uma pressão exagerada nas áreas de negócio, influenciando a tentar resolver todos os seus problemas sozinhas.

A boa notícia é: nem tanto ao mar, nem tanto a terra. Dependendo do BPMS sendo utilizado, se estivermos falamos de um processo simples, sem integração com sistemas externos, com regras de negócio e de interface básicas, então apenas o treinamento na ferramenta poderá sim permitir avanços por usuários de negócio.

Mas não podemos deixar de comentar que os melhores resultados são obtidos quando TI e negócio trabalham juntos, ou seja, existe colaboração na automação de processos. A boa notícia é que as ferramentas de BPMS tem evoluindo muito para reforçar este trabalho colaborativo, onde usuários de negócio podem iniciar o trabalho definindo os processos, quem sabe até mesmo desenhando algumas interfaces de usuários (o que no passado era uma atribuição exclusiva da TI), e no momento adequado a TI poderá “entrar em cena” e colaborar, se encarregando das tarefas mais técnicas.

Esperamos ter colocado um pouco mais de luz sobre esta situação. Pra finalizar, não podemos deixar de louvar o empenho e sucesso dos fornecedores de ferramentas de BPM em deixar as ferramentas cada vez mais produtivas e amigáveis. Temos hoje ferramentas com quase zero código, montagem de formulários eletrônicos de forma intuitiva e configuração visual de integrações. São recursos que certamente incentivam os fornecedores a elaborar este discurso de marketing. :-)

10 pontos chave a considerar na hora de estimar um projeto com BPMS

Com um largo know-how em automação de processos e já tendo realizado algumas centenas de implementações nas mais diversas ferramentas, a estimativa de esforço para a automação de um processo é quase que uma prática diária na iProcess.

Como somos muito questionados sobre como fazemos isso, e neste artigo indicamos algumas diretrizes para auxiliar nossos clientes a fazer avaliar a sua estimativa.

1. Estimativa de implementação é somente uma parte da Estimativa do Projeto

Falaremos neste artigo sobre o esforço direto de um programador para pegar um processo desenhado e detalhado funcionalmente e implementa-lo em uma ferramenta de BPMS. Contudo, isso costuma ser menos da metade do esforço de um projeto!
Um projeto de automação bem elaborado precisa que se faça o levantamento do processo, sua modelagem para automação, projeto técnico, roteiro de testes, preparação de dados de sistemas legados, execução e ajustes da sua validação, homologação com o usuário, elaboração de documentação, elaboração de planos de instalação, instalação em ambiente de homologação e produção, acompanhamento em produção, suporte dos primeiros dias, gerência de projeto, gerência de configuração, gestão de requisitos, entre outros!
Evidentemente que tudo isso é um mundo a parte, e dependerá das características do processo, da cultura da organização e do seu processo de desenvolvimento. Contudo, são atividades que não podem ser desprezadas, pois garante a qualidade do resultado da entrega da automação.

2. Estimativa de Processos não é Estimativa de Software

A estimativa de software convencional utiliza métodos como Pontos de função (PF) ou Unidades de Casos de Uso (UCP) para realizar a estimativa de esforço. São técnicas que utilizam como referência a complexidade da interface de usuário. Na automação de processos é diferente, pois a complexidade está ligada diretamente aos elementos BPMN que compõem o seu processo e a complexidade em implementá-los​ no BPMS adotado​. Logo, estas técnicas não tem aplicação direta para estimar esforço de automação de processos.

3. Você deve conhecer o seu processo (ou projetar como ele deveria ser)

Não tem jeito: você não tem como estimar um processo que você não​ o​ conhece. O esforço de implementação de um processo está ligado diretamente às suas características, elementos necessários e respectivas complexidades. Logo, você precisará levantar o processo.
Caso não haja esta possibilidade, você deverá inferir esta complexidade e assumir o risco no momento da automação de ter que realizar ajustes para mais ou para menos.

4. Cada ferramenta de automação possui uma produtividade diferente

Não existe um número mágico que traga o esforço de implementação de um processo em todas as ferramentas. Cada ferramenta possui suas peculiaridades: algumas são mais produtivas, outras são mais completas e outras são mais complexas. Em algumas uma atividade humana é feita com muita facilidade, mas uma integração com um webservice ou um banco de dados dá muito trabalho.
Por isso, você deve antes de mais nada escolher a ferramenta em que será feita a automação para somente depois avaliar o seu esforço.

5. Identifique o modelo de dados do Processo

O que diferencia uma instância de processo de outra em execução são os dados em que elas manipulam. Cada processo tem atrelado a si um modelo de dados específico, que determina quais informações são manipuladas, incluídas ou consultadas ao longo do processo.
A complexidade do modelo de dados de um processo está ligado diretamente ao número de informações que são manipuladas e as suas características: se existem dados mestre-detalhe, se é feita a manipulação de arquivos, entre outros fatores.
A estimativa de esforço deve levar em consideração este montante e complexidade para projetar o esforço de manipulação destas informações ao longo do processo.

6. Identifique os elementos de processo que são implementados na sua ferramenta

O esforço de automação de um processo está ligado diretamente aos elementos que ele possui. Um processo com 2 atividades humanas e 2 gateways tende a ser 4x mais rápido de ser desenvolvido do que um processo com 8 atividades humanas e 8 gateways por exemplo.
A estimativa de automação de processos está ligada diretamente ao número de elementos que o seu processo possui, e é por isso que você deve conhecê-lo para poder estimá-lo.

7. Identifique os fatores de complexidade de cada elemento

Contudo, somente identificar os elementos não é o suficiente, pois um mesmo elemento pode ter uma implementação fácil ou complexa. Por exemplo, você pode ter
um gateway que somente testa se na atividade anterior houve uma aprovação ou reprovação (simples) ou um gateway que valida uma complexa regra de negócio;
Uma integração que passa o número do CNPJ e recebe o nome do cliente ou o cadastro de uma nota fiscal ​e seus itens ​em um ERP;
Uma atividade humana que informa ao solicitante que seu pedido chegará em 20 dias ou uma atividade distribuída para o ator mais produtivo entre uma série​,​ que possui um SLA rígido, controle de prazos e alertas e escalonamento caso a mesma não seja realizada em até 3 dias úteis antes do prazo final do processo.
Para mapear estas condições, você deve criar critérios de complexidade e atribuir um esforço para cada nível de complexidade.

8. Classifique o seu processo de acordo com estes fatores

Uma vez entendido os fatores para a projeção de complexidade de implementação de um processo, o processo escolhido deverá ser classificado: seus elementos contados, a complexidade de cada elemento avaliada e o esforço da sua implementação calculado.

9. O desenvolvimento das telas das atividades são parte significativa do esforço

​Mesmo com estes cuidados, as coisas não são tão fáceis como parecem, e apesar de estarmos falando de desenvolvimento de processos, eles possuem um componente importante chamado de interface de usuário das atividades humanas.
Na iProcess estimamos que o desenvolvimento de interfaces exige em média um esforço de 40% a 70% do esforço de desenvolvimento de um processo e depende muito dos recursos visuais e da linguagem de programação que cada ferramenta disponibiliza para a implementação das suas interfaces.
Existem soluções de BPMS cuja interface é “engessada” (no sentido que você define poucas coisas em termos de layout e comportamentos) enquanto que outras você pode fazer tudo o que qualquer linguagem moderna de programação web permite.
Por isso, você deve também mapear a complexidade de desenvolver cada interface e realizar uma contagem exclusiva para as mesmas.

10. Elabore uma planilha para calcular o esforço

Se você chegou até aqui, deve ter visto que são muitas variáveis e informações a serem consideradas. Em processos de complexidade média ou alta, com dezenas de atividades e subprocessos, levantar e calcular todas estas informações à mão torna-se quase impossível.
Logo, sugerimos que você elabore uma planilha com todos estes cálculos e utilize-a como ferramenta para realizar a estimativa do seu processo.