10

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

业务流程管理系统 (BPMS) 还是您最喜欢的带有所需工具和框架(例如报告工具)的 IDE?

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

好的。也许我应该更具体一点……我了解了一种特定的 BPMS,它应该可以通过配置规则轻松实现业务流程。但是对于我作为开发人员来说,很难使用该系统。我想使用可以重构的文本文件,并且我希望能够为我必须做的工作选择正确的技术或框架。相反,系统会强制我进行配置。

有些规则我可以​​使用 java,但即使那样我也必须坚持使用没有智能感知等的系统编辑器。

所以这让我找到了自己问题的答案——我想使用我习惯使用的工具,而不必学习如何使用 BPMS(至少是我知道的那个),因为它限制了我而不是帮助. 我所知道的 BPMS 是一个难以摆脱的框架!目前,我更喜欢像 Grail 这样的框架,而不是我所知道的任何 BPMS。

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

4

4 回答 4

13

根据我的经验,BPMS 系统提供的开发环境是三流的,效率低下,实际上迫使您编写难以维护、设计不佳的代码(由于它们的局限性)。我熟悉的 BPMS 系统(那家公司以数据库命名的那个)提供的几乎所有“功能”(UI、集成等)都不值得我们支付的钱。

如果您被迫使用 BPMS,作为开发人员,我的建议是在 Java 或 .Net 等传统开发环境中构建尽可能多的应用程序,尽可能少地在 BPMS 环境本身中构建,并集成他们俩。BPMS 中唯一应该包含的内容是使业务流程正常工作的最低要求。

于 2011-08-04T04:12:41.130 回答
8

我过去曾与 Biztalk 合作过,最近与 JBPM 合作过。我的观点对 BPM 有偏见,原因如下:

  1. 陡峭的学习曲线:要使流程正常工作,我必须了解系统和编辑器的工作原理。开发人员很难理解系统,更不用说业务用户了。拖放和可视化表示是一个很棒的演示工具。它确实给经理们留下了深刻的印象(他们最终为此付出了代价),但开发人员的生产力只会下降。

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

  3. 可测试性和重构:几乎不可能测试驱动一个 BPMS。您确实宣传了“单元测试框架”,但它们中的大多数都是黑客并且难以使用。最近我尝试了 JBPM 之一;我最终编写了很多胶水代码和伪造的工作流处理程序来使其工作。不过,对我来说最重要的是重构。如果业务从根本上改变了业务流程的外观,那么祝你好运重新排列盒子,因为仅仅重新排列它们是行不通的,绑定到盒子的所有变量也需要重新排列。我更喜欢 IDE 和测试的强大功能来重构我的业务流程。

如果您的应用程序有工作流,那么您可以尝试工作流库(有或没有持久状态)。它仍然可以管理您的工作流程,而不会出现 BPM 带来的所有臃肿。如果业务用户需要理解代码,那么让业务准备好的流程流程图并将其翻译成好的领域驱动代码。使用黄瓜式验收测试将开发人员和业务联系在一起。BPM 只是试图做太多事情并最终把所有这些事情都做得很糟糕的东西。

于 2012-12-08T18:45:33.883 回答
7

不确定您到底要问什么,但 BPM 与普通编程的选择将取决于需求。“业务流程”在软件工程中是一个相对模糊的术语。

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

  • 规则的复杂性——您的流程中体现的决策/规则是否简单、复杂、可配置、硬编码?
  • 流程的波动性——您的流程多久更改一次?谁应该能够做出改变?
  • 集成需求——您的流程是使用多个异构服务实现的,还是全部用同一种语言实现?
  • 同步/异步- 您的进程是否“长时间运行”并需要处理异步操作?
  • 人工任务- 您的流程是否涉及人工交互,并根据他们的角色/职责将任务分配/路由给人们?
  • 流程监控- 您希望对正在执行的现有流程实例进行什么级别的控制?您是否需要审核操作等?
  • 错误处理- 根据前面的几点,您打算如何处理错误或重试错误的流程执行?

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

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

于 2009-12-22T15:41:35.063 回答
5

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

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

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

于 2009-12-22T15:25:53.923 回答