Pergunta

O que você prefere (a partir do seu desenvolvedor, do ponto de vista) quando se trata de implementar um processo de negócio?

Uma empresa Sistema de Gestão de Processos (BPMS) ou apenas o seu favorito IDE com as necessárias ferramentas e frameworks (uma ferramenta de relatórios, por exemplo)?

O que é o seu ponto de vista, o maior Benefício de um BPMS comparado a um IDE com o seu pessoal, ferramentas e frameworks?

OK.Talvez eu deveria ser mais específico...Eu tenho que saber um BPMS, o que deve torná-lo fácil de implementar um processo de negócio através da configuração de regras.Mas para mim, como um desenvolvedor, é difícil trabalhar com o sistema.Eu gostaria de trabalhar com arquivos de texto que eu pode refatorar e eu gostaria de ser capaz de escolher a tecnologia certa ou quadro para o trabalho que eu tenho que fazer.Em vez disso, o sistema obriga-me a configurar.

Existem regras onde eu posso usar java, mas mesmo assim eu ter que ficar para os sistemas de editor, sem intellisense etc.

Isto leva-me a resposta da minha pergunta - eu gostaria de usar as ferramentas que eu estou acostumado em vez de ter que aprender a trabalhar com um BPMS (pelo menos que eu saiba), porque limita-me mais do que ajuda.O BPMS eu sei que é um quadro a partir do qual é difícil escapar!Neste momento, eu iria preferir um quadro como o Graal sobre qualquer BPMS, eu sei.

Então, talvez a pergunta mais específica é:fazer você sentir o mesmo, ou há BPMSes que apoio você em sendo um desenvolvedor e pensar como um desenvolvedor ou fazer a maioria deles forçar você a fazer o seu trabalho de uma maneira diferente?

Foi útil?

Solução

Não tenho certeza do que exatamente você pede, mas a programação BPM vs. Plain, dependerá dos requisitos. Um "processo de negócios" é um termo relativamente vago na engenharia de software.

Aqui estão alguns critérios para avaliar suas necessidades:

  • complexidade das regras - As decisões/regras são incorporadas em seu processo simples, complicado, configurável, com código duro?
  • Volatilidade do processo - Com que frequência o seu processo muda? Quem deve ser capaz de fazer a mudança?
  • necessidade de integração - O seu processo é realizado usando vários serviços heterogêneos ou é todos implementados no mesmo idioma?
  • síncrono/assíncrono - O seu processo é "longa" com a necessidade de lidar com ações assíncronas?
  • tarefas humanas - Seu processo envolve a interação humana, com a tarefa sendo atribuída/roteada às pessoas de acordo com suas funções/responsabilidades?
  • monitoramento do processo - Qual é o nível de controle que você deseja nas instâncias de processo existentes sendo executadas? Você precisa auditar as ações, etc.?
  • Manipulação de erros - Dependendo dos pontos anteriores, como você planeja lidar com erros ou tentar novamente a execução do processo com defeito?

Dependendo da resposta para essas perguntas, você pode perceber que seu processo está mais próximo de um estado simples gráfico com algumas ações e decisões que podem ser executadas em uma sequência, ou você pode perceber que precisa de algo mais elaborado e que não deseja implementar tudo isso.

Entre programação simples e a Solução de BPM de pleno direito (por exemplo: Suite Oracle BPM que contém BPEL, motor de regra, etc.), existem soluções intermediárias tal como jbpm ou Windows Workflow Foundation E provavelmente muitos outros. Essas soluções intermediárias são frequentemente uma boa troca.

Outras dicas

Na minha experiência, os ambientes de desenvolvimento fornecidos pelos sistemas BPMS são de terceira taxa, improdutiva e praticamente forçam você a escrever um código difícil de manter e mal projetado (devido às suas limitações). Quase todos os "Recursos" (interface do usuário, integrações etc.) fornecidos pelo sistema BPMS com o qual estou familiarizado (o vendido por essa empresa nomeado para seu banco de dados) não valiam o dinheiro que pagamos.

Se você é forçado a usar o BPMS, como desenvolvedor, meu conselho seria construir o máximo de seu aplicativo em um ambiente de desenvolvimento convencional, como Java ou .NET, construir o mínimo possível no ambiente BPMS e integrar os dois. As únicas coisas que deveriam ir no BPMS são o mínimo para fazer o processo de negócios funcionar.

Eu tenho trabalhado com o Biztalk no passado e, mais recentemente, com o JBPM.Minha opinião é tendenciosa contra BPMs, pelas seguintes razões:

  1. Curva de aprendizagem :Para fazer um processo de trabalho, eu tenho que entender como o sistema e o editor funciona.É bastante difícil para um desenvolvedor para entender o sistema, e muito menos um usuário de negócios.O recurso de arrastar e soltar e representação visual é uma grande demonstração da ferramenta.Certamente impressiona os gestores (que, em última instância pagar por ele), mas de um desenvolvedor produtividade cai.

  2. Não desenvolvedores de alterar o fluxo de trabalho :Eu não vi de uma solução de BPM fazê-lo perfeitamente.Embora ele não se parece com o código, clique na caixa e você tem que colocar algum código, caso contrário não vai funcionar.Então você definitivamente precisa de um desenvolvedor para fazê-lo.A melhor parte é que ele não é nem desenvolvedor amigável nem negócio de usuário amigável, apenas demonstração de usuário amigável.

  3. Testablity e refatoração :É praticamente impossível para test drive de um BPMS.Você tem 'estruturas de teste de unidade' anunciado, mas a maioria deles são hacks e difícil de usar.Recentemente eu tentei o JBPM um;Acabei de escrever um monte de cola código e falsificação de processadores de fluxo de trabalho para fazê-lo funcionar.O disjuntor do negócio para mim, contudo, é a refatoração.Se o negócio muda radicalmente a mente sobre como um processo de negócio deve olhar, então boa sorte re-organizar as caixas, porque apenas re-organizá-los de não trabalho, todas as variáveis dependente para as caixas também precisam ser re-arranjados.Eu preferiria que o poder do IDE e testes para refatorar meu processo de negócio.

Se a sua aplicação tem de fluxo de trabalho e, em seguida, você pode tentar uma biblioteca de fluxo de trabalho (com ou sem estado persistente).Ele ainda gerenciar seus fluxos de trabalho, sem o inchaço que vem com um BPM.Se um usuário de negócios precisa entender o código, em seguida, deixar o negócio de preparar uma boa fluxogramas de processo e traduzi-los em bom domain driven código.Use o pepino estilo de testes de aceitação para os desenvolvedores e negócios em conjunto.BPM é apenas algo que tenta fazer muitas coisas e acaba fazendo todas essas coisas mal.

BPMS- Muitos casos de negócios comuns, caso de uso já foi implementado. Então você só precisa saber como usá -lo. Para um fluxo de trabalho comum, você nem precisa escrever uma única linha de código, embora principalmente precise escrever alguns scripts para cobrir coisas que ainda não foram implementadas.

Programação simples- basta usar o IDE para invadir o código. O lado positivo: mais controle. O negativo? Muitas vezes são gastas em reescrever o código de caldeira. E você tem que mantê -los.

Então, em poucas palavras, eu preferiria um sistema de gerenciamento de processos de negócios. Um que eu recomendaria é Fabricante de processos. Possui um designer de processos intuitivo que permite projetar fluxo de trabalho com arrasto e soltamento. E você sempre pode escrever acionar Para estender as funcionalidades do processo. É de código aberto também.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top