segunda-feira, 21 de julho de 2014

Evoluindo Processos com o Modelo de Decisão - Brigadeiros da Nice (Parte 1)

Em 01 de Agosto de 2014 Fabrício Laguna, da Gigante Consultoria, publicou em um pequeno vídeo explicando de maneira lúdica e simples como a divisão entre os processos e as regras de negócio pode ajudar bastante a simplificar e gerir organizações. Por razões de clareza e facilidade de entendimento, tanto os modelos de processo como os modelos de decisão (regras de negócio) foram apresentados sem preocupação com o formalismo das notações BPMN e TDM que seriam aplicados em um caso real. Para aqueles que se interessarem em ver a modelagem formal deste caso, apresento aqui os modelos completos usando as notações BPMN para processos(*) e TDM para as decisões.

O processo parece simples: a Nice recebe o pedido do Cliente, verifica sua validade e decide se aceita ou não o pedido. Se o pedido for aceito, ela calcula o preço, fabrica o pedido, entrega e recebe o dinheiro. 
As regras de negócio que serão modeladas são as seguintes:

  • exceto para a D. Creusa, todos os pedidos devem passar por uma análise de viabilidade
  • para a D.Creusa os pedidos são sempre atendidos, e o preço é R$1,30/brigadeiro
  • para os demais clientes, o prazo de entrega é de pelo menos 1 dia, a quantidade deve ser entre 100 e 1000 brigadeiros, e o cliente, se já comprou anteriormente, deve ser bom pagador, e se não comprou, deve ser indicado; para estes clientes o preço é R$1,60/brigadeiro

Vamos ver, então, como fica este processo quando nós o modelamos usando a notação BPMN:


Clique na imagem para ampliar
Agora, podemos ver todas as regras que a Nice estabeleceu para decidir se aceita ou não o pedido e para calcular o valor a ser pago pelo Cliente (representado como regras de negócio). Aqui, nós podemos analisar uma primeira característica da modelagem da lógica do negócio como se fosse um processo: a imposição de uma sequência às condições! Modelado na mesma sequencia em que foi descrito pela Nice, a decisão de aceitar ou rejeitar o pedido primeiro testa se o Cliente é a D.Creusa. Se for, o pedido será atendido; se não, o processo segue testando se a quantidade está entre 100 e 1000, se o prazo de entrega é superior a 1 dia e assim por diante, rejeitando o pedido se cada uma das condições não for satisfeita. 

Mas por esta sequencia é necessária? Não poderíamos fazer as mesmas perguntas em qualquer sequência (por exemplo, verificando o prazo de entrega ANTES de verificar a quantidade do pedido)? A resposta é SIM! A sequência das condições para decidir a aceitação ou não do pedido é irrelevante. Na prática, esta imposição de uma sequência específica, desnecessária, é uma das principais desvantagens do uso de modelos de processo para descrever a lógica dos negócios. O Modelo de Decisão elimina esta deficiência!

Outro ponto de atenção é o uso de regras de negócio para indicar a fórmula de cálculo do valor do pedido. Esta é uma prática bastante comum, mas ela não muda o fato de que o uso de regras de negócio não elimina a expressão da lógica do negócio através de atividades e gateways espalhados pelo processo. Em resumo, mesmo usando regras de negócio, a lógica do negócio continua "enterrada" no processo, difícil de ser mantida (mais sobre isto no próximo post) e compreendida, sem a simplificação prometida.

Através da aplicação dos conceitos da modelagem de decisão, o processo é significativamente simplificado, e a lógica para decidir a aceitação ou não do pedido, e o cálculo do valor do pedido, são modelados como tarefas de decisão (um tipo de tarefa BPMN 2.0 normalmente associado a tabelas de decisão):


Clique na imagem para ampliar
A mágica acontece quando, agora, modelamos estas tarefas de decisão utilizando o Modelo de Decisão (TDM). Vejamos primeiro a decisão de Determinar a Aceitação do Pedido:


Clique na imagem para ampliar
Aqui, vemos a Estrutura do Modelo de Decisão. Este diagrama mostra, através do octógono azul, qual é a decisão que está sendo modelada e, abaixo, as Famílias de Regra (condições) que estão sendo consideradas pela lógica da decisão. É importante notar que não existe nenhuma sequência implícita no diagrama, ou seja, podemos avaliar esta decisão de cima para baixo, de baixo para cima, pela esquerda ou pela direita. O diagrama mostra que a aceitação do pedido depende das condições "Tipo de Cliente" e "Vale a pena". A primeira condição é determinada (inferida) a partir do "Perfil do pagador", que por sua vez depende da informação se o Cliente já comprou e se pagou no prazo, e do nome do Cliente (para saber se é a D.Creusa). Para concluir se "Vale a Pena", é necessário avaliar a "Quantidade Pedida" e o "Prazo do Pedido".

Mas, vocês devem estar se perguntando, onde estão as Regras de Negócio, ou seja, os valores das condições e os valores da conclusão de cada Família de Regra? A resposta é simples: elas estão em um outro tipo de artefato do Modelo de Decisão, as Tabelas de Família de Regra. No diagrama acima temos quatro Famílias de Regras e, portanto, teremos quatro Tabelas de Família de Regra:





Clique nas imagens para ampliar
Para o cálculo do valor do pedido precisamos modelar uma nova decisão, chamada "Calcular Valor do Pedido", com as respectivas Tabelas de Família de Regra:



Clique nas imagens para ampliar
Notem que não precisamos definir novamente como determinamos o "Tipo do Cliente", pois esta Família de Regra já foi definida anteriormente (na realidade, nem precisaríamos mostrar a Família de Regra "Perfil do Pagador" no diagrama). Isto demonstra como a modelagem de decisão possibilita e estimula o reaproveitamento dos modelos e das regras de negócio associadas de forma natural, o que não acontece quando modelamos a lógica do negócio através de modelos de processo.

No próximo post vamos explorar o que acontece quando a Nice resolve adicionar um conjunto de regras de negócio para tratar da lógica de entrega dos pedidos de brigadeiro.

_______________________________________________________________________________
Para conhecer mais sobre o Modelo de Decisão, e como ele pode ajudar as organizações a tornarem seus processos mais ágeis, visite o site da Centus e acesse dezenas de artigos, apresentações e webinares sobre modelagem de decisão e arquitetura corporativa.

(*) Para aqueles leitores certificados BPMN (eu não sou!): se houver algum erro na notação ou na modelagem, favor me avisar através do email info@centus.com.br