Simplifique modelos de workflow complexos

Resumo

Vários fatores afetam a modelagem de um bom workflow. Ao simplificar o processo, é importante descrever por meio de diagrama as etapas necessárias de uma transação importante e específica, como um pedido de e-commerce ou uma consulta médica. Nesta conversa, analisaremos a representação do workflow em um novo tipo de diagrama chamado diagrama de “processo de pontos e linhas”.

Começaremos diagramando as etapas possíveis que podem ser realizadas em cada ponto do workflow e indicaremos para onde esse diagrama nos leva no processo desse fluxo de trabalho. Também garantimos que não perderemos nenhuma das potenciais etapas ou pontos de estado durante o caminho.

Um modelo de workflow exige análise do processo de negócios, revisão do processo de negócios, análise de usabilidade e projeto de software. Essa lista assustadora de habilidades necessárias transforma o workflow em um desafio para os arquitetos de software mais experientes.

Como decompor o problema em partes menores para começar na direção certa? Analisaremos a maneira de simplificar o processo de modelagem de sistemas complexos com vários tipos de usuários e centenas de estados potenciais. Ao simplificar o processo, pode-se pensar na solução do workflow e não no desenho do workflow.

Cada projeto de software possui um processo central que é a razão principal pela qual o sistema existe ou está sendo construído. Por exemplo, a meta principal de um site de e-commerce é tornar mais fácil para as pessoas comprar produtos. Esse processo principal é o que precisa da maior atenção durante seu projeto e implementação. Mostraremos a abordagem de modelagem de pontos e linhas que irá ajudá-lo a se comunicar sobre processos complexos com seus especialistas de negócio para determinar as ações e os estados disponíveis durante a criação do workflow.

Vamos começar com uma visão geral da abordagem de pontos e linhas para a criação de diagramas de workflow. Na abordagem de pontos e linhas, cada ponto representa um estado específico no processo e cada linha corresponde a uma ação que pode ser executada a partir desse ponto. Os pontos e as linhas são rotulados e uma chave é preparada à medida que o workflow é desenvolvido. Os pontos são rotulados com letras começando com A, e as linhas são rotuladas com números começando com 1. Dessa maneira, os pontos e as linhas não irão se misturar.

Os principais objetivos por trás da abordagem de pontos e linhas são: criar uma ferramenta de visualização simples em papel que possa ser utilizada com usuários corporativos; eliminar o preciosismo causado pela diagramação em um computador; tornar o processo o mais leve possível para permitir concentração na difícil tarefa de projetar o workflow; e separar as alterações na descrição de ações e estado das alterações no fluxo do processo (ou seja, semelhante à idéia de uma tabela de domínio).

Siga as regras

Além desses objetivos, há cinco regras que devem ser aplicadas a um diagrama que usa essa abordagem. Observemos os detalhes de cada regra.

O diagrama sempre segue somente em uma direção. Uma das idéias principais da abordagem de pontos e linhas é que o diagrama sempre segue em frente como uma linha do tempo. Pode-se terminar em um estado anterior, mas o diagrama não possui linhas indo para todas as quatro direções como um labirinto.

Os estados podem ser descobertos à medida que for construindo o diagrama. Em um workflow simples, se conhece todos os potenciais estados antes de iniciar a diagramação. No entanto, em um workflow mais complexo poderá ser necessário descobrir os estados possíveis construindo o diagrama. Determine as ações que podem ser realizadas em cada ponto do processo e veja para onde isso o leva. À medida que se descobre os estados, pode-se decidir como rotular cada um deles para o seu uso. Em seguida, após a conclusão do diagrama, é possível decidir como apresentar os estados a cada tipo de usuário e se deve combiná-los de maneira mais fáceis de entender.

Os rótulos dos estados e das ações são mantidos fora do diagrama . Quando temos as descrições de cada ação e estado, o diagrama fica confuso e difícil de entender. Colocar os rótulos dos estados e das ações como uma chave, facilita a visualização de um fluxo de processo maior em um espaço menor, o que é quase como normalizar o diagrama. É possível alterar os rótulos dos pontos sem precisar alterar o diagrama. Isso facilita visualizar e diagramar processos complexos.

O layout é simples e flexível, permitindo concentrar-se no conteúdo. O layout é um grande problema nos fluxos de processo tradicionais. Muito esforço é realizado para conectar e encaixar os diferentes itens no diagrama. Se for deixado de lado uma ação em um fluxo de processo, o diagrama inteiro poderá precisar ser reorganizado. Na abordagem de pontos e linhas, apenas precisa encaixar uma linha para a ação e um ponto para o estado do resultado. Se for necessário alterar uma ação ou um estado, o seu respectivo número ou letra pode ser alterado. Se desejar alterar o nome de um estado ou uma ação, se pode simplesmente alterar a chave em vez de o diagrama.

A simplicidade de adicionar, alterar e visualizar pontos e linhas do diagrama ajuda a ficar concentrado no processo.

Os estados podem ser “retirados” do diagrama principal. Como se está sempre indo adiante com o diagrama, podem ser retiradas seções do diagrama sem se preocupar como elas conectam aos estados anteriores do workflow. Por exemplo, A conecta-se a B e desejamos retirar B para o seu próprio diagrama porque ele possui muitos filhos para encaixar no diagrama existente. Não precisamos nos preocupar se B tem uma ação que vai para C e se C tem uma ação que envia seu status de volta para A. Rotulando o estado com A, eles estão conectados, em vez de precisar ter uma linha de volta até o status A original. O nosso diagrama só avança e não retrocede, por isso não precisamos conectar de volta ao ponto A original. Essa regra permite uma grande flexibilidade quando estamos ficando sem espaço em um diagrama.

Ações e estados para fluxos de trabalho

Agora que analisamos algumas das vantagens da abordagem de pontos e linhas, vamos ver como determinar se deve haver uma ação ou estado no seu diagrama. Os estados e as ações devem ser incluídos somente se forem necessários para completar o processo que estiver sendo estudado. Por exemplo, embora efetuar logon ou registrar-se em um sistema de e-commerce não altere o estado de um entidade do pedido, esse procedimento é necessário para concluir uma compra. Portanto, ele deve ser incluído como uma ação no sistema, e os estados que essas ações criam devem ser estudados e diferenciados se estivermos examinando o processo de pedidos.

Estados e ações não precisam ser incluídos caso não sejam necessários para concluir o processo que estiver sendo estudado e não alterarem as etapas necessárias para concluir o processo que estiver sendo modelado. Em outras palavras, uma ação que faz regredir uma etapa do processo é algo que deve ser modelado. Por outro lado, uma ação que não estiver relacionada ao processo não precisa ser modelada.

Naturalmente, existe muito espaço para interpretação quanto ao que deve ser colocado em um diagrama de processo, porque ligar um computador é necessário para realizar qualquer processo de computador, mas provavelmente seria tolice incluir essa ação como parte de um diagrama de processo. Agora vamos usar um exemplo para tentar esclarecer o que deve e o que não deve estar no diagrama de pontos e linhas. Observemos um exemplo familiar de workflow a ser examinado com esse processo — a compra de itens por meio de um site da Web de ecommerce.

Examinaremos as etapas necessárias que devem ser seguidas para adquirir um produto.

Tabela 1 - Chaves para o diagrama de e-commerce

Ações

 

1

Localizar e adicionar um produto ao carrinho de compras.

2

Registrar-se.

3

Efetuar logon.

4

Remover todos os produtos do carrinho de compras.

5

Efetuar logout.

6

Iniciar o processo de finalização do pedido.

7

Adicionar/selecionar informações de envio.

8

Adicionar/selecionar informações de pagamento.

9

Processamento da cobrança bem-sucedido.

10

Falha no processamento de cobrança.

11

Confirmar pedido.

12

Sair do processo de finalização do pedido.

Descrições do status

 

A

Não há produtos no carrinho de compras, não logado.

B

O produto está no carrinho de compras, não logado.

C

Não há produtos no carrinho de compras, logado.

D

O produto está no carrinho de compras, logado.

E

Processo de finalização do pedido, não logado, sem dados de envio ou faturamento.

F

Processo de finalização do pedido, logado, sem dados de envio ou faturamento.

G

Processo de finalização de pedido, logado, com dados de envio, sem dados de faturamento.

H

Processo de finalização do pedido, logado, com dados de envio e faturamento.

I

Finalização do pedido confirmada, logado, estado temporário (quadrado).

J

Processamento do pedido bem-sucedido, logado.

Ao começarmos a projetar o workflow de uma compra, as etapas que não alteram o estado da transação de compra serão ignoradas. Por exemplo, o processo de pesquisar o produto não altera, de forma alguma, o estado de um processo de pedido. Realmente não importa como o usuário circula pelo site a menos que realize uma das três ações que alteram seu estado atual. Essas três ações que podem modificar o estado da compra do produto são: adicionar um produto no carrinho de compras, registrar-se no site e efetuar logon no site.

Por exemplo, imagine que você vá para a seção de “livros” e clique de volta para a página principal. Essa ação alterou o seu estado de alguma maneira em termos da compra de um produto? Não. Imagine que você procure no site por “livros .NET” e irá receber uma lista deles. Em seguida você clica de volta para a página principal. Ainda não se avançou no processo de compra.

Mesmo se fizer de conta que possui um mecanismo que relaciona sugestões de produtos com o seu histórico de navegação, isso ainda não faz avançar o processo de compra até adicionar um produto ao carrinho de compras. É muito importante manter essa ação fora do diagrama porque irá complicá-lo de forma desnecessária. Podemos combinar a navegação e, em seguida, adicionar um produto ao carrinho de compras em uma ação no diagrama do processo de compra chamada “localizar e adicionar produto”. Se desejássemos diagramar o processo de localizar um produto, estaríamos interessados na maneira como o usuário selecionou os produtos para visualizar e adicioná-los ao carrinho de compras. No momento, iremos nos concentrar na diagramação do processo de compra.

Figura 1 - Integração ponto a ponto e integração de barramento de serviço
Bb245669.WorkflowComplexo_01(pt-br,MSDN.10).gif

Papéis no processo de compra

Primeiro, começaremos com alguém que acabou de entrar na página principal do nosso site e-commerce. Observamos o que vem a seguir no nosso processo. As três possibilidades em termos de comportamento que faz avançar o processo de compra são adicionar um produto no carrinho de compras, registrar um usuário e efetuar logon no site. O diagrama de pontos e linhas desse processo inteiro pode ser observado na Figura 1 e a suas chaves na Tabela 1.

É importante entender o impacto que vários papéis no site exercem nos nossos status e permissões visíveis. Por exemplo, suponha que nosso site de e-commerce tenha papéis para compradores e um administrador.

Os compradores são as pessoas que adquirem o produto, enquanto o administrador assegura que elas recebam o produto. O nosso diagrama de pontos e linhas ajuda a determinar o que mostrar ao administrador, fornecendo uma lista abrangente dos estados em que um pedido está durante o processo de compra. Podemos analisar esses estados e percorrer a lista para descobrir quais pedidos devem ser vistos pelo administrador e quais não devem. Por exemplo, uma regra de negócios poderia ser aquela que o administrador pode ver transações de pedidos que fossem abandonadas na etapa de cobrança, para permitir que seja feito o acompanhamento desses clientes.

Em sites mais complexos com centenas de possíveis estados para cada transação que estiver ocorrendo no site, precisaremos agrupar vários estados sob uma única descrição. Por exemplo, os estados E–G podem ser agrupados como um estado “incompleto” para o administrador. É improvável que o administrador precise saber mais do que isso, exceto para montar estatísticas que seriam exibidas em um relatório e não na tela de trabalho diária. Além disso, se o administrador entrar em um desses pedidos, ele poderá fornecer os detalhes do estado desse ponto.

Uma das maneiras mais fáceis de atribuir os estados para cada usuário é usar o método “com quem está a bola?”. Em outras palavras, qual usuário deve fazer algo para avançar o workflow? O usuário que se encaixar nessa descrição deverá ver esse item agrupado com outros que estão aguardando sua ação. Em seguida se pode agrupar os outros itens em aberto em outra categoria e, finalmente, os itens concluídos/cancelados em uma terceira categoria.

Uma última recomendação em relação à abordagem de pontos e linhas é usar um papel bem grande e uma caneta para criar os diagramas. Outro pedaço de papel grande deve conter os nomes dos estados e outro ainda deve conter os nomes das ações. O uso de folhas de grandes e separadas dessa maneira permite uma boa visão panorâmica do processo inteiro em vez de vê-lo decomposto em várias telas.

O uso de papel também concentra a atenção de todos no problema imediato, em vez de fazê-lo parecer bonito. Se estiver usando papel, não existe uma maneira fácil de colocar um efeito em cada ponto ou reorganizar os itens para encaixá-los melhor. Você achará a abordagem de pontos e linhas tão útil quanto eu achei ao descobrir todos os possíveis estados e ações com os seus especialistas de negócios.

Sobre o autor

Andrew Needleman é o parceiro executivo da Claricode (www.claricode.com), desenvolvedores de soluções personalizadas exclusivamente para o setor de assistência médica. Ele tem escrito artigos para muitas publicações sobre o desenvolvimento de software nas indústrias de TI e de assistência médica. Sua experiência em projetos de workflow inclui desenvolver a arquitetura de um aplicativo com centenas de estados distintos, várias ações em cada estado e nove tipos de usuários distintos. Seu aplicativo foi reconhecido como um Intel Solution Blueprint para práticas recomendadas em assistência médica com tecnologias Microsoft. Entre em contato com Andrew no endereço andrew@claricode.com.