我应该知道什么标准来区分应该成为我的系统的一部分或使用 BPM 的业务流程

What are the criteria which I should know to distinguish between the business processes that should be a part of my system or using BPM

我想知道我应该知道什么标志或标准来区分应该成为我系统一部分的业务流程和可以通过 BPM 实现的其他业务流程。

我看了the following,还是有点迷糊:


EX: a vacation Request 此过程由一组状态组成,例如,员工向他的经理申请休假,之后,该申请将转到人力资源管理部门。此进程是 HR 系统的一部分。

Should I implement it twice or as a BPM or only as an internal process in my system?


我的问题是:

对于您拥有业务流程的场景,最佳做法是什么?我们应该使用 BPM 之类的东西将它作为一个独立的流程来实现,还是作为整个系统的一部分来实现(在那种情况下我可以获得一些提示)?

NOTE: I'm not asking about cost here I'm asking mainly about software design perspective?

您可以使用的一种启发式方法是检查该过程是否对域的所有用户通用。

让我们假设您正在按照您的示例构建一个人力资源管理系统。您的核心领域将涉及招聘、入职、工资单、TDS、层次结构等方面。这些功能将适用于您产品的 companies/users。

但每个公司可能会以不同方式定义特定的审批流程。以你的休假批准为例,一家公司可能希望经理批准;另一个可能希望Manager + HR批准。另一个可能希望将请求路由到薪资部门以确保没有。可用的 PTO 天数没有被违反。这些方面最好远离领域并在 BPM 中建模。

话虽如此,随着作者在您指向的幻灯片中展开,BPM 中的流程有侵入您的域的恶习。最好的机制是在 BPM 中实施特定于用户的工作流,并在需要时偶尔重构以将该机制引入域。

BPM should be the default for non-Core business activities.

此声明假设您的组织拥有处理“核心”业务活动(即处理与企业有关的事情 'core business')的专业系统,以及 BPM 解决方案。

例如,在上一张幻灯片中,他们将“入站物流”作为“主要(也称为核心)activity”,这表明物流是他们业务的核心部分,他们可能有专门的系统,例如 ERP、供应链管理软件,甚至可能是定制系统。

基于该假设,他们断言任何非核心 activity 都应该(默认情况下)使用 BPM 解决方案来实施 - 因为它不适合任何专业系统。例如。你不应该尝试在核心物流系统中做人力资源管理等支持活动。

进一步的断言,从逻辑上很明显,BPM 也应该是构建定制应用程序或任何其他方法之前的默认方法。

根据我的经验,一个简单的清单可能如下所示:

  1. 赚钱 activity 吗?如果是,它可能是核心。
  2. 您需要多少个 专业功能 这个过程?如果大于 5,那么它可能是您业务的核心,通用解决方案将增加实施、维护和升级的难度。
  3. 如果你建造它,你能给竞争对手吗?如果不是,它可能不是核心。

可能还有更多。如果我想到它们,我会添加它们。