BPMS还是简单的编程?

rdm*_*ler 8 ide business-process-management

在实施业务流程时,您更喜欢(从开发人员的角度来看)?

业务流程管理系统(BPMS)或只是您喜欢的IDE,包含所需的工具和框架(例如报告工具)?

从您的角度来看,与使用个人工具和框架的IDE相比,BPMS的最大好处是什么?

好.也许我应该更具体一点......我了解了一个特定的BPMS,它可以通过配置规则轻松实现业务流程.但对于我作为开发人员来说,很难使用该系统.我想处理我可以重构的文本文件,我希望能够为我必须做的工作选择合适的技术或框架.而是系统强迫我配置.

有规则我可以​​使用java,但即使这样我也必须坚持使用系统编辑器而不使用intellisense等.

所以这引出了我自己的问题的答案 - 我想使用我习惯的工具,而不是必须学习如何使用BPMS(至少我知道的那个)因为它限制了我而不是帮助.我所知道的BPMS是一个很难逃脱的框架!在这个时候,我更喜欢像Grail这样的框架而不是我所知道的任何BPMS.

所以也许更具体的问题是:你是否有同样的感觉,或者是否有BPMS支持你成为一名开发人员并像开发人员一样思考,或者他们中的大多数会迫使你以不同的方式完成工作?

Kay*_* II 12

根据我的经验,BPMS系统提供的开发环境是三流的,非生产性的,并且实际上迫使您编写难以维护,设计不良的代码(由于它们的局限性).几乎所有我熟悉的BPMS系统提供的"功能"(UI,集成等)(该公司以其数据库命名的那个)都不值得我们支付的钱.

如果您被迫使用BPMS,作为开发人员,我的建议是在传统的开发环境中构建尽可能多的应用程序,例如Java或.Net,在BPMS环境本身尽可能少地构建,并集成他们俩.应该在BPMS中应该做的唯一事情是使业务流程工作的最小化.


utt*_*ini 8

我过去和BizPM一起工作,最近和JBPM合作过.由于以下原因,我的观点偏向于BPM:

  1. 陡峭的学习曲线:为了使流程有效,我必须了解系统和编辑器的工作原理.开发人员很难理解系统,更不用说业务用户了.拖放和可视化表示是一个很棒的演示工具.这无疑给管理者(最终为此付出代价)留下了深刻的印象,但开发人员的生产力却在下降.

  2. 非开发人员改变工作流程:我没有看到一个BPM解决方案完美无缺.虽然它看起来不像代码,但右键单击该框,您必须放置一些代码,否则它将不起作用.所以你肯定需要一个开发人员去做.最好的部分是它既不是开发人员友好的,也不是商业用户友好的,只是演示用户友好.

  3. 可测性和重构:测试驱动BPMS几乎是不可能的.你确实有广告的"单元测试框架",但大多数都是黑客并且很难使用.最近我尝试了JBPM一个; 我最终编写了大量的胶水代码和虚假的工作流程处理程序,以使其工作.对我而言,这笔交易的重点是重构.如果业务从根本上改变了对业务流程应该如何看待的想法,那么祝好运重新安排盒子,因为重新安排它们将无法工作,所有绑定到盒子的变量也需要重新安排.我更喜欢IDE和测试的强大功能来重构我的业务流程.

如果您的应用程序具有工作流程,那么您可以尝试工作流程库(具有或不具有持久状态).它仍将管理您的工作流程,而不会出现BPM带来的所有膨胀.如果业务用户需要了解代码,那么让业务部门准备好流程图并将其转换为良好的域驱动代码.使用黄瓜风格验收测试将开发人员和业务结合在一起.BPM只是试图做太多事情并最终做出所有这些事情的事情.


ewe*_*nli 6

不知道究竟是什么问题,但BPM与普通编程的选择取决于要求."业务流程"在软件工程中是一个相对含糊的术语.

以下是评估您需求的一些标准:

  • 规则的复杂性 - 您的流程中包含的决策/规则是否简单,复杂,可配置,硬编码?
  • 流程的波动性 - 您的流程变更的频率如何?谁应该能够做出改变?
  • 集成需求 - 您的流程是使用多个异构服务实现的,还是全部使用相同的语言实现?
  • synchronous/asynchrounous - 您的进程是否"长时间运行"并且需要处理异步操作?
  • 人工任务 - 您的流程是否涉及人工交互,任务是根据他们的角色/职责分配/路由给人员的?
  • 监控流程 - 您要对现有流程实例执行的控制级别是多少?你需要审核行动等吗?
  • 错误处理 - 根据以前的要点,您打算如何处理错误或重试错误的流程执行?

根据这些问题的答案,您可能会发现您的流程更接近于简单的状态图表,其中包含可以按顺序执行的一些操作和决策,或者您可能意识到您需要更详细的内容,并且您不需要我不想自己重新实现这一切.

普通编程完整的BPM解决方案(例如包含BPEL,规则引擎等的Oracle BPM套件)之间,有一些中间解决方案,例如jBPMWindows Workflow Foundation,可能还有很多其他解决方案.这些中间解决方案通常是很好的权衡.


Gra*_*ton 5

BPMS——很多常见的业务案例、用例已经实现。所以你只需要知道如何使用它。对于常见的工作流程,您甚至不需要编写一行代码,尽管大多数情况下您必须编写一些脚本来覆盖尚未实现的内容。

简单的编程——只需使用 IDE 来破解代码即可。积极的一面:更多的控制。负面的?很多时间都花在重写样板代码上。你必须维护它们。

简而言之,我更喜欢业务流程管理系统。我推荐的一个是ProcessMaker。它具有直观的流程设计器,允许您通过拖放来设计工作流程。并且您始终可以编写触发器来扩展流程功能。它也是开源的。