Um guia para iniciar estudos em BPMN (II): Gateways

No artigo anterior, iniciamos o estudo da notação BPMN apresentando os elementos task e sequence flow, utilizados para representar a sequência lógica de atividades a serem executadas para a realização do processo. Neste artigo estudaremos um novo elemento de fluxo.

Gateways são os elementos de BPMN responsáveis por controlar iterações do fluxo, criando caminhos alternativos ou paralelos no mapeamento do processo ou unificando fluxos para continuação em uma mesma sequência de atividades.

Gateways são elementos chave na modelagem de processos de negócio, pois permitem descrever não apenas o “dia feliz” do processo, em que as atividades acontecem sempre da mesma maneira ou na mesma sequência, mas prever possíveis exceções conhecidas do negócio, ou beneficiar a duração do processo através da paralelização de atividades.

O gateway é conectado ao fluxo através de setas de fluxo de sequência e é representado visualmente por um  losango. O símbolo interno do losango identifica a interpretação lógica representada.

 

Gateway exclusivo (Databased Exclusive Gateway)

Representa uma condição de fluxo exclusiva, em que apenas um dos caminhos criados a partir do gateway será seguido, de acordo com uma informação a ser testada.

Este gateway pode ser representado visualmente como o losango vazio ou com um marcador de “x”.

Quando o processo em execução atingir este gateway, o processo deverá verificar a condição indicada, e apenas uma das saídas do gateway dará seguimento. Semanticamente, este gateway funciona como um “ou”, já que ou um ou outro caminho será seguido – nunca mais de um.

Os conectores de sequência de saída deste gateway podem apresentar descrições que ajudem a identificar qual a condição para que o fluxo siga por aquele caminho.

Além de realizar separação de fluxos, o gateway também pode unificar fluxos distintos em uma única sequência de atividades. Neste caso, o gateway exclusivo implica no entendimento que, dos caminhos que convergem a ele, o primeiro que chegar dará continuidade no fluxo do processo.

No exemplo acima, o gateway “Resultado da avaliação” testará o resultado da atividade anterior. Se na execução da atividade “Avaliar artigo” o usuário aceitar o conteúdo, o fluxo seguirá pela saída superior “Conteúdo aceito”, e as atividades “Realizar revisão final do artigo” e “Publicar artigo” serão realizadas. Se o usuário rejeitar o conteúdo, o fluxo seguirá pela saída “Conteúdo rejeitado”, e apenas a atividade “Cancelar artigo” será realizada. Por fim, se o usuário optar por requerer ajustes, o fluxo seguirá a sequência “Requer ajustes”, iniciando a atividade “Ajustar artigo”. Ao terminá-la, note que o fluxo seguirá novamente para a atividade de “Avaliar artigo”. Ainda no exemplo acima, note a utilização do gateway exclusivo para convergir dois dos fluxos criados. Isto garante que a atividade “Comunicar partes interessadas” só aconteça depois que a tarefa “Publicar artigo” ou a tarefa “Cancelar artigo” for executada, de acordo com o fluxo iniciado pelo gateway anterior.

 

Gateway paralelo (Parallel Gateway)

A paralelização de trabalho em um diagrama BPMN é possível com a utilização do gateway paralelo. Este gateway representa a divisão de um fluxo em dois ou mais que serão executados paralelamente. Todos os caminhos que saem deste gateway são executados.

Este gateway é representado visualmente como o losango com um marcador de “+” dentro dele.

Semanticamente, este gateway funciona como um “e”, já que um e outro caminho serão executados.

Quando este gateway é utilizado para realizar a convergência de fluxos, ele garantirá que todos os fluxos paralelos sejam concluídos, chegando até ele antes de dar continuidade ao fluxo de saída.

No exemplo acima, o primeiro gateway paralelo produz dois fluxos que serão executados paralelamente. Enquanto a tarefa “Escrever artigo” é realizada, as atividades “Selecionar imagens” e “Tratar imagens” também podem ser executadas. Ainda no exemplo acima, o segundo gateway faz a convergência dos fluxos, garantindo que a tarefa “Realizar diagramação” só seja executada depois que “Escrever artigo” e “Tratar imagens” tenham sido finalizadas.

 

Gateway inclusivo (Databased Inclusive Gateway)

Representa uma condição de fluxo inclusiva, em que pode haver uma combinação dos caminhos criados a partir do gateway, de acordo com uma informação a ser verificada.  Este gateway é representado visualmente como o losango com um marcador de círculo dentro dele.

Quando o processo em execução atingir este gateway, o processo deverá avaliar a condição relacionada, e uma ou mais das saídas do gateway poderão dar seguimento.

Semanticamente, este gateway funciona como um “e/ou”, já que o caminho a ser seguido pode ser um e/ou outro, de acordo com as informações e a lógica do negócio.

Quando este gateway é utilizado para realizar a convergência de fluxos, ele garantirá que todos os fluxos que estiverem em execução sejam concluídos, chegando até ele antes de dar continuidade à sequência de atividades.

No exemplo acima, o gateway “Documentos necessários” testará o resultado da atividade anterior. Se na execução da atividade “Identificar documentação necessária” o usuário identificar a necessidade de um, dois, ou três dos documentos requeridos, cada um dos fluxos será executado. Por exemplo, se para um processo em execução for identificada a necessidade da Negativa civil e Negativa criminal, mas não a de débitos, o processo seguirá pelas saídas “Negativa civil” e “Negativa criminal”, mas não pela “Certidão negativa de débitos”. Assim, as atividades “Anexar negativa civil” e “Anexar negativa criminal” deverão ser executadas. Em outro processo, pode ser possível que uma combinação diferente de documentos seja requerida. Ainda no exemplo acima, note a utilização do gateway inclusivo para convergir os fluxos criados. Isto garante que a atividade “Analisar validade dos documentos” só aconteça depois que todos os fluxos que forem iniciados pelo gateway anterior sejam executados, para então a atividade ser iniciada. No exemplo citado, a tarefa de analisar validade dos documentos só será iniciada depois que as tarefas “Anexar negativa civil” e “Anexar negativa criminal”, mas sem que ocorra a atividade “Anexar negativa de débitos”.

 

Algumas coisas importantes que devem ser observadas ao utilizar gateways:

  • Diferente dos diamantes dos tradicionais fluxogramas, os gateways em BPMN não são apenas pontos de divisão binária do fluxo. É possível (e muito mais vantajoso!) utilizá-los para realizar testes mais complexos do que o tradicional “sim/não”. Isto vale para todos os tipos de gateway nesta notação.
  • Nos gateways exclusivo e inclusivo, onde o fluxo é direcionado com base em uma condição, a informação a ser validada (para identificar que fluxo o gateway deve seguir) já deve ter sido obtida anteriormente no processo.
  • Embora a notação não coloque isto como uma regra obrigatória, é sempre uma boa prática descrever, nos conectores de sequência que saem destes gateways com decisão, que valor resultante da condição deve ser verdadeiro para que o fluxo siga por aquele caminho. (Veja nos exemplos aplicados como os conectores de sequência que saem dos gateways exclusivo e inclusivo possuem descrições associadas às suas linhas.) Isto deixará o diagrama mais claro para a leitura dos que venham a consultá-lo futuramente!

BPMN 2.0 possui outros tipos de gateways, como os baseados em eventos, por exemplo. estes gateways, entretanto, são utilizados em casos mais especializados (a partir do nível 2 – analítico, de acordo com a classificação de Bruce Silver).

Em nosso próximo artigo:
um estudo sobre os eventos e os principais gatilhos para início e fim de processos.


Confira todos os artigos deste guia de BPMN Nível 1:

.

Um guia para iniciar estudos em BPMN (I): Atividades e sequência

BPMN (Business Process Model and Notation) é uma notação gráfica que tem por objetivo prover uma gramática de símbolos para mapear, de maneira padrão, todos os processos de negócio de uma organização.

Desde sua disponibilização formal em 2004, BPMN tem sido amplamente utilizada em organizações do mundo inteiro. Atualmente há uma grande oferta de ferramentas de mapeamento de processos(gratuitas e licenciadas) que oferecem suporte à notação. Devido à sua grande aceitação, BPMN está ajudando a disseminar conceitos relacionados a processos de negócio e é considerada hoje uma característica chave de qualquer iniciativa BPM.

Dedicaremos os artigos semanais de novembro e dezembro para contribuir com o estudo progressivo dos elementos dede BPMN que compõem o nível 1 desta notação, utilizados para mapear processos em nível descritivo.

Representando Processos com BPMN

Em BPMN, um processo de negócio é representado através do encadeamento de eventos e atividades, ligados através de conectores que demonstram a sequência em que os mesmos são realizados. Além de eventos e atividades, outros elementos de controle de fluxo podem ser utilizados na modelagem para permitir a criação ou unificação de fluxos paralelos que ocorram no decorrer de um mesmo processo de negócio.

Processo de Compra de Refrigerante

Exemplo de um processo mapeado utilizando BPMN

O grande potencial de BPMN para representação de processos está no fato de que ela propõe um conjunto simplificado de elementos (atividades, eventos, gateways, conectores e swimlanes), mas que podem ser derivados para atender situações específicas de negócio, de forma que a documentação de um processo em nível de negócio possa adquirir profundidade técnica à medida que é preparado para a implementação.

Nota: A especificação BPMN está documentada em inglês e não existe uma
tradução oficial para o português. A tradução neste e nos próximos
artigos é livre por parte dos autores, e pode ser diferente entre
bibliografias ou ferramentas que adotem esta notação.
Para mais informações sobre a documentação oficial e completa
consulte http://www.omg.org/bpmn.

Atividades (Activities)

Atividades representam um trabalho realizado em uma etapa do processo de negócio.

As atividades podem ser de dois tipos:

  • Tarefa (task)
  • Sub-processo (subprocess)

 

Tarefa (Task)

A tarefa é a atividade de trabalho atômica. Ela representa uma ação no processo que pode ser executada por uma pessoa ou um sistema.

Visualmente é representada como um retângulo com bordas arredondadas, contendo sua descrição dentro da área da caixa.

Exemplos de atividades que podem ser representadas através de tarefas são:

  • Avaliar documentos
  • Calcular impostos
  • Elaborar parecer técnico
  • Elaborar proposta comercial
  • Cadastrar operação

BPMN sugere alguns símbolos que podem ser adicionados à tarefa para representar visualmente sua utilização:

Assim é possível distinguir visualmente que uma atividade é realizada por um usuário através do sistema se for simbolizada por uma Tarefa de usuário, enquanto uma tarefa que pode ser executada automaticamente pelo sistema pode ser sinalizada como Tarefa automática.

Uma tarefa executada por uma pessoa (usuário) e uma tarefa executada automaticamente (serviço)

 

Conector de Sequência de fluxo (Sequence flow)

O principal objetivo no mapeamento de um processo com BPMN é representar a sequência em que as atividades acontecem desde o seu início até a sua conclusão. Em BPMN Method & Style (2ed), Bruce Silver esclarece que o propósito de BPMN é representar a lógica do processo. A lógica do processo é visualmente demonstrada através do fluxo criado pelos conectores de sequência.

No exemplo acima, o conector de sequência torna explícito que há uma sequência a ser realizada entre as atividades. A atividade “Digitalizar documento” só poderá ser realizada após a atividade “Receber documento” ser concluída. Da mesma forma, a atividade de “Arquivar documento” só poderá ser iniciada após o término da tarefa “Digitalizar documento”.

O conector de fluxo de sequência é representado através de uma linha sólida com uma seta preenchida apontando para o destino (o próximo elemento do fluxo). Em um processo de negócio, todos os elementos de fluxo precisam estar conectados uns aos outros através de um conector de sequência conforme a ordem em que devem ser realizados.

É importante entender que, na interpretação de um processo BPMN, o conector de sequência implica que existe uma dependência entre as atividades conectadas, do tipo fim-início. Ou seja, a conexão significa que após a conclusão da atividade, a próxima atividade poderá ser iniciada.

Em nosso próximo artigo:
um estudo sobre os gateways – elementos que possibilitam criar controles de fluxos alternativos e paralelos nos processos.


Confira todos os artigos deste guia de BPMN Nível 1:

Governança SOA – A chave para o sucesso de uma implantação

Esse é o quinto de uma série de artigos do nosso blog que estão abordando o tema SOA, conceito antigo e atual que está enraizado nas atividades cotidianas da iProcess.

No primeiro post nós respondemos à pergunta: o que é SOA? Já no segundo definimos o que é um serviço e, no terceiro, trouxemos algumas estratégias que podem ser utilizadas na definição e na escolha de bons serviços candidatos.

O post seguinte abordou a relação entre SOA e BPM para garantir o sucesso da automação de processos. Neste artigo falaremos sobre Governança SOA como chave para o sucesso de uma implantação.

 

Objetivo: alinhamento com o negócio
A governança SOA consiste na definição de processos que garantam que os objetivos de SOA e da área de TI sejam atingidos. Para isso, a iniciativa deve:

  • definir um conjunto de instrumentos gerenciais que a instituição estabelece para garantir o sucesso e a sustentabilidade da iniciativa SOA;
  • definir claramente papéis e responsabilidades.;
  • avaliar a criação de estruturas destinadas a gerir a iniciativa de SOA.

Se os processos de governança não forem claros, a iniciativa SOA cairá em descrédito e rapidamente fracassará. Nesse sentido, seu principal desafio é gerencial e não técnico, e o ponto central sempre será o alinhamento dos processos com o negócio.

Os processos de governança
De acordo com a experiência da iProcess e a literatura disponível, podemos citar alguns dos principais processos de governança a serem criados. São eles:

  • capacitação das equipes em SOA;
  • identificação dos possíveis serviços a serem criados do ponto de vista corporativo (portfólio de serviços);
  • desenvolvimento de novos serviços;
  • análise do aproveitamento dos serviços existentes;
  • modificação/evolução dos serviços existentes;
  • desativação de serviços;
  • garantia do desempenho e estabilidade dos serviços em operação;
  • estimular/recompensar o reuso e a criação de novos serviços que tragam ganhos;
  • gestão da arquitetura corporativa (mesmo se a definição não precisa partir de SOA, SOA precisa disto);
  • planejamento das iniciativas SOA;
  • gestão de projetos SOA;
  • gestão da inovação;
  • definição de metodologia e padrões;
  • gestão dos acordos de nível de serviço (SLA).

Estrutura de trabalho
A governança também define, se necessário, as estruturas de trabalho para a sua equipe. Ela poderá conter um escritório SOA, uma área específica de arquitetura ou um núcleo de conhecimento. Também poderá centralizar a supervisão dos projetos SOA.

Outra opção é implantar um Centro de Excelência SOA. Trata-se de um comitê que conta com a presença de um conselho de especialistas no assunto (técnicos e de negócio) que auxiliam na tomada de decisão e encaminhamento das atividades de SOA.

Responsabilidades
Algumas das atividades que são responsabilidade da equipe de governança são:

  • gerência do repositório de serviços;
  • gerência do registro de serviços;
  • gerência da reutilização de serviços;
  • definição de boas práticas e metodologias;
  • treinamentos e atualização.

No caso de empresas que estão no estágio inicial de implantação de SOA, não é necessário pensar numa grande infraestrutura ou em soluções muito sofisticada para realizar as atividades de governança. A wiki corporativa ou mesmo planilhas podem ser suficientes para gerenciar e publicar as informações de governança.

Entre os documentos fundamentais a serem criados pela equipe de governança, sugere-se começar com a lista de serviços. Se essa informação não estiver disponível, existe um grande risco da não reutilização dos serviços já existentes.

SOA X Confiança
O sucesso de uma iniciativa SOA é baseada na confiança, já que quem consome os serviços conhece somente a sua interface e desconhece como ele foi implementado.

Nesse sentido temos um grande desafio de implantar SOA no Brasil, onde existe uma cultura muito forte da desconfiança no relacionamento entre desconhecidos. Se você não conhece tudo no detalhe, a premissa é desconfiar. É importante levar isso em consideração na hora organizar as ações de governança, inclusive criando alternativas para que isso não seja motivo de fracasso.

Melhores práticas de modelagem BPMN

Neste artigo, temos como objetivo demonstrar algumas das melhores práticas de modelagem BPMN. Esperamos que seja útil para o seu trabalho de modelagem.

Nomenclatura de Atividade:

  • Uma prática difundida entre profissionais de processos é utilizar na nomenclatura de atividades verbos no infinitivo. O nome da atividade deve identificar a principal ação envolvida em sua execução. Ex: “Aprovar solicitação de Viagem”; “Emitir contrato de prestação de serviços”, etc.

Tipos de Atividades:

  • Sempre que possível, procure utilizar os tipos de atividades da BPMN para distinguir entre tarefas manuais, humanas, serviços, etc:

Atualização: Para um melhor entendimento sobre os diferentes tipos de tarefas, veja estes artigos:

Nomenclatura das Lanes:

  • As Lanes de um processo devem ser nomeadas observando-se  o nível de granularidade. Por exemplo: caso o processo esteja sendo modelado a nível departamental, recomenda-se então que todas as lanes do processo sejam departamentos. Evite utilizar níveis de granularidade diferentes num mesmo modelo de processo, como por exemplo nomear uma lane como “Financeiro” (ou seja, um departamento) e nomear outra lane como “Analista de Compras” (ou seja, uma função/papel);
  • Evite o uso de cargos. Cargos são funcionais, e muitas vezes um papel em um processo pode ser realizado por pessoas de cargos diferentes.

Envio e recebimento de mensagens:

  • Procure padronizar, dentro de modelos relacionados, a forma utilizada para envio e recebimento de mensagens. Utilizar ou eventos intermediários do tipo message (catch/throw), ou tasks do tipo send e receive, não ambos ao mesmo tempo.

Gateways:

  • Quando um gateway testa uma informação obtida na atividade imediatamente anterior, é apropriado posicioná-lo próximo à tarefa, na mesma lane;
  • Não devem ser atribuídos a ações de tarefas (consultar informações, atualizar informações, etc). Devem ser utilizados apenas para representar a lógica de roteamento do processo, como demonstrado abaixo:

Forma inadequada:

Forma adequada:

Um início, muitos fins:

  • Evite utilizar mais de um evento de início no processo;
  • Utilize diversos eventos de fim, esclarecendo na nomenclatura de cada um o estado em que o processo encerrou.


Join e fork:

Os pontos de divergência e convergência no processo devem ser abertos e fechados, utilizando os gateways apropriados:

Fluxo paralelo:

Decisão exclusiva:

Decisão inclusiva:

Simples,  limpo e eficaz:

  • Procure manter o processo simples e limpo, evitando cruzar conexões;
  • Utilize eventos de link para continuar determinadas partes do processo que estejam no miolo e sejam complicadas de expor na página principal;
  • Transforme conjuntos de atividades com o mesmo objetivo em subprocessos, hierarquizando o modelo;
  • Utilize os artefatos de dados, anotações e grupos comedidamente.