sexta-feira, 7 de março de 2014

Capturando a lógica dos negócios através de Modelos de Processos (Parte 2)

Na primeira parte deste artigo introduzimos alguns conceitos sobre modelagem de processos, e mostramos como as atividades de um processo são controladas através dos gateways. Agora, vamos detalhar um pouco mais como os gateways funcionam.

Um gateway recebe um fluxo de entrada e direciona o fluxo de saída de acordo com alguma condição. Potencialmente, um gateway pode ter um número indeterminado de caminhos alternativos de saída, e estes podem ser mutuamente exclusivos (somente um caminho de saída será selecionado) ou não (diversos caminhos podem ser selecionados e serão executados em paralelo). Gateways, em sua versão mais comum, atuam de acordo com alguma condição de dados, embora possam também testar condições de eventos ou mensagens (estes tipos de gateways não serão discutidos aqui).

Mas mais importante, é necessário entender que um gateway não "toma" a decisão; ele somente testa uma condição (no caso, de dados), e direciona o fluxo de acordo com o resultado deste teste. Vamos ver um exemplo para entender melhor este conceito.

Suponha um processo de empréstimo como descrito abaixo (simplificado para facilitar o entendimento):
  • coletar as informações do proponente ao empréstimo
  • determinar o risco de credito do proponente
  • se o risco for baixo, aprovar o empréstimo
  • se o risco for médio, solicitar garantias e aprovar o empréstimo
  • se o risco for alto, negar o empréstimo
A figura abaixo mostra uma possível solução para o modelo de processo correspondente:


No entanto, este modelo está incorreto, de acordo com a especificação da BPMN: como dito acima, um gateway não pode tomar uma decisão; ele pode, apenas, testar o conteúdo de um dado. Assim, o modelo correto é mostrado abaixo:


Este modelo mostra claramente que existe uma atividade (Determinar risco do empréstimo) que fornece o valor do risco de empréstimo para o proponente. Este valor (Alto, Médio ou Baixo) é, então, testado pelo gateway para determinar qual caminho o fluxo irá seguir. A questão passa a ser, então, como o valor do risco pode ser determinado?

Na próxima postagem vamos discutir algumas alternativas...

Qual a sua experiência? Como você resolve isto na sua prática profissional? Deixe aqui o seu comentário.

sábado, 1 de março de 2014

Capturando a lógica dos negócios através de Modelos de Processos (Parte 1)

O conceito

A modelagem de processos não é uma atividade nova. Desde o início do Século 20 diversas técnicas de modelagem, como fluxogramas, diagramas de fluxo de controle, diagramas de blocos de fluxos funcionais e outras foram aplicadas, na tentativa de capturar a lógica dos negócios e torná-la palpável, passível de ser analisada e melhorada. No entanto, foi somente nos anos 1990 que a modelagem de processos de negócio saiu da área acadêmica e de sistemas de informação para se tornar popular entre o pessoal de negócios.

Na última década do Século passado o conceito de "melhoria de processos" ganhou força nas organizações. As empresas passaram a ser encorajadas a pensar em termos de "processos", e não de "funções" ou "procedimentos". A ideia central deste novo paradigma é a que as empresas devem se organizar em torno das cadeias de eventos principais que tornam possível seu funcionamento e que realizam o seu objetivo final. Os processos, de acordo com esta abordagem, são multifuncionais e atravessam as barreiras impostas pelas estruturas organizacionais (departamentos), oferecendo uma visão ponta-a-ponta da geração de valor para o cliente.

O aumento na importância da descoberta, documentação e melhoria de processos resultou no desenvolvimento acelerado de metodologias, técnicas e ferramentas destinadas a auxiliar as organizações a melhorar seus processos. Sistemas de automatização de fluxos de trabalhos (workflow) viram seu espaço de atuação se transformar nos atuais sistemas de gerenciamento de processos (BPMS), que se propõem a automatizar de forma flexível e ágil os processos da organização, sem a necessidade de grande esforço de programação. No terreno das notações para a modelagem de processos, o padrão BPMN (Business Process Model and Notation), criado pela OMG (Object Management Group) vem se firmando como prevalente no mercado, e praticamente todas as ferramentas de modelagem de processos hoje no mercado suportam em alguma extensão este padrão.

Modelando Processos

A modelagem de processos e sua posterior melhoria envolvem um conjunto razoavelmente conhecido de atividades, normalmente desenvolvidas por um analista de processos ou analista de negócios:
  • levantamento da situação atual ("as-is")
  • validação e verificação do modelo
  • proposição da situação futura ("to-be")
  • implementação do novo processo e monitoramento dos resultados
Em geral as empresas que empregam a modelagem de processos para melhoria do seu negócio efetuam levantamentos iniciais visando identificar os processos mais importantes e que trazem maior valor, e gerenciam um portfólio de projetos de melhoria de processos em um ciclo infinito de avaliação-melhoria-implementação de processos. Abaixo um exemplo simples de um processo de compras (alto nível):


Este nível de modelagem de processos é útil para o entendimento de quais são as principais tarefas do processo e em que sequência são executadas, mas é insuficiente para permitir a sua execução na prática. Além de não detalhar exatamente como cada tarefa é executada (e por quem), este nível de modelagem apresenta apenas o chamado "caso feliz", ou seja, o fluxo ideal que leva o processo do seu início ao seu final esperado, sem qualquer indicação de variação ou alternativa de execução. Este seria, em tese, o fluxo mais comum para este processo mas, na prática, sabemos que este nem sempre é o caso. Por isto, os diagramas de processos são sucessivamente refinados para mostrar cada vez mais detalhes, até o momento em que conseguem demonstrar de forma exaustiva todos os fluxos possíveis de trabalho e de informação que podem acontecer em um processo. Um exemplo do processo acima um pouco mais detalhado (mas ainda em alto nível) é mostrado abaixo:


O modelo acima mostra, de forma muito rudimentar, que o fluxo de atividades do processo pode ser desviado em função de eventos ao longo do caminho, e cada ponto de desvio (chamado "gateway") testa uma condição qualquer para saber que caminho seguir. Simplificadamente, um fluxo de processo é um grande conjunto de atividades encadeadas e governadas por pontos de controle (gateways) baseados na avaliação de informações coletadas em atividades anteriores do processo.

Como estas informações são coletadas para que sejam utilizadas pelos gateways? Este é o assunto da segunda parte deste artigo.