写点什么

BPM 不是软件工程

  • 2009-01-30
  • 本文字数:1853 字

    阅读完需:约 6 分钟

Keith Swenson 在其发布于 BPM.com 的新文章的开头这样写道:

BPM 社区中的大多混淆和困难都是由于某些人认为BPM 是软件工程的一种而造成的。的确,从外表看它非常象软件工程:由需求开始,然后确定需要在变量中保存和检索的信息,接着可能要画出它们之间的关系,最后就是把成品在联网的计算机上安装和执行。但是,它们之间存在区别,而这个区别就是 BPM 之所以存在的原因。

根据 Keith 的说法,软件工程在其 50 多年的历史中已经取得了极大的进步,包括结构化和面向对象编程、复杂的建模语言(UML)和大量在开发过程每个阶段发挥作用的工具。结果,软件工程师会将“业务流程管理”视为另一项将图转换为可执行程序的简单活动:

当我们手握锤子的时候,我们会开始把所有围绕在我们周围的问题都看作是钉子……业务流程步骤被解释成和程序步骤完全类似。软件工程师几乎靠条件反射就能将高级别功能翻译成低级别的函数序列,然后借助控制流等将其翻译成某种最终可转换成机器语言、执行就绪的东西。我猜想很多人都有这样的感觉:BPM 纯粹是大量的市场炒作,其核心不过是软件工程世界中很平常的东西。这到底有什么了不起?

Keith 试图通过区分业务流程和典型的程序来定义软件工程和 BPM 的区别:

“业务流程”不是程序。支撑它的虽然可能是程序,但是业务流程是组织想要完成的事情。你可以说业务流程是程序的目标,而不是程序本身。业务流程由业务人员管理:这个人他理解“业务”,决定完成业务的策略,评估业务的健康状况,决定如何变更业务以满足不断变化的条件。软件工程师管理软件,而业务人员则管理业务流程。

他接着概述了 BPM 解决方案和一般程序的主要区别:

  • 业务人员所画的图就是被执行的那张图。它不会为了软件工程师的方便而转换成其他形式。它不会为了执行而转换成其他形式……这种转换是出于优化执行的目的,尤其是在处理能力有限的机器上。某些业务流程仍将需要这种转换,但是绝大多数的业务流程将不会受限于 CPU 的性能。
  • 历史和分析报表需要匹配原始图表,以支持业务用户能评估组织的执行状况,它不是为了让程序员能分辨程序的运行状况。
  • 在软件系统中,用户很少需要知道程序的内部结构,但是从这个角度来说,业务流程不是程序。流程本身必须是可见的,即便有程序支撑它执行也是如此。参与流程的人必须能了解当前步骤、后续步骤和最终步骤。这是 BPM 和软件工程的最大区别。

根据 Keith 的说法,混淆和误解的一个最大来源是由于 BPM 设计和开发大都是由软件工程师完成的:

遗憾的是,很多研究 BPM 系统的人大都具有软件工程的背景,并下意识地认为 BPM 应该具有某种标准软件的特性。软件工程师将系统视为一种发送、接收和转变信息的手段,他们受训将业务问题归纳为可以按这些方法来执行的某种事物。业务人员不会把焦点放在字节的发送和接收上,相反他们更看重职责和承诺。这是看待业务流程的不同方法。这种区别的效果是巨大的。试图把所有软件工程的特性都装入到 BPM(业务人员)的特性中,其结果必然是两面不讨好。时至今日,你仍会碰到一些人认为 BPEL 是实现业务流程的终极方式。BPEL 仅仅提供了一种发送、接收和转换的手段……这些是软件工程的需求,而不是业务流程的需求。软件工程师会告诉你,利用这些原语(primitive)你可以实现任何东西,可能包括电子表格,但是这忽视了一个要点,一个我们一开始为什么需要电子表格和 BPM 的要点:因为它们不是软件工程。

Keith 在其文章的结尾对目前 OMG BPMN 2.0 活动进行了评估:

在 OMG 邮件列表中,关于“BPMN 怎么会只是统一建模语言(UML,软件工程师钟爱的作图标准)的另一个方言”激起了广泛的讨论。软件工程师的确可能会从 BPMN 中看到对软件工程有用的东西。记住,OMG 组织主要是由软件工程师构成并为软件工程师服务的,大多数 OMG 成员会得出以上结论完全不足以为奇。他们大多数甚至可能认为 UML 对所有学科都有用。把 BPMN 看成是 UML 的一个方言对于将把一张图归纳成一个可执行程序的软件工程实践非常有用。

BPMN 的存在是为了让业务人员可以表达业务单元内部人员之间的交互。在 OMG 内部也有不少的人明白这一点,我希望这些人不要被那些认为所有问题都是软件工程问题的人所压倒,这样对我们大家都有好处。BPMN 的存在不是为了软件工程师的方便,因为 BPM 不是软件工程

在业内,对于软件工程和 BPM 之间的关系的确存在大量混淆。它们是完全不同,但又相互关联的学科。一方面,完全有可能设计和实现没有任何自动化的业务流程;另一方面,业务流程自动化确实需要涉及大量的软件工程。

查看英文原文: BPM Is Not Software Engineering

2009-01-30 02:342040
用户头像

发布了 255 篇内容, 共 63.6 次阅读, 收获喜欢 10 次。

关注

评论

发布
暂无评论
发现更多内容

你用哪些软件和方式来提高工作效率?

万事ONES

项目管理 ONES 敏捷管理

华云大咖说 | 安超虚拟化平台全“芯”亮点揭秘

华云数据

架构实战营作业模块一

五只羊

架构实战营

一文带你读懂CNCF Landscape

焱融科技

分布式 云原生 高性能 云存储 cncf

视频云会议已成未来发展必然趋势

anyRTC开发者

音视频 WebRTC 视频会议 云视频

接下来的40年,碳中和对我们来说意味着什么?

CECBC

慧心购系统开发|慧心购软件APP开发

2021能源发展极速前进,可视化赋能行业高效运作

一只数据鲸鱼

数据可视化 3D可视化 智慧能源 能源管理 光伏发电

扩展Elasticsearch客户端简化ES查询(.net core/framework)

Spook

架构实战营作业 M01

Shawn Liu

#架构实战营

企业协作通过什么软件可以提高工作效率?

万事ONES

项目管理 敏捷开发 ONES 协同办公

Apache ShardingSphere 邀您相约 Open Source Day

SphereEx

拼拼有礼APP开发|拼拼有礼软件系统开发

HarmonyOS开发者的喜讯——华为认证来啦!

科技汇

查看Linux端口占用,并关掉相关进程。

学神来啦

云计算 Linux 运维

视频云峰会|“科技 X 艺术” 的颗粒度体验是什么?

阿里云CloudImagine

阿里云 AR 艺术 摄影 vr

成为全栈式数据管控平台,CloudQuery 1.4 概述

BinTools图尔兹

可视化 数据安全 OpenAPI 数据迁移 数据库管理

Camtasia实用技巧之光标效果

淋雨

视频剪辑 专业录屏 Camtaisa

模块一作业

张文龙

#架构实战营

动手实操丨基于随机森林算法进行硬盘故障预测

华为云开发者联盟

机器学习 数据分析 modelarts 随机森林算法 硬盘故障

揭秘版权保护下的视频隐形水印算法(上篇)

拍乐云Pano

网络攻防学习笔记 Day67

穿过生命散发芬芳

网络攻防 7月日更

iOS工程师如何恍然大悟?

程序员 IT 编程之路 iOS 知识体系

367W字!京东商城Java架构师设计的亿级高并发秒杀手抄笔记

Java架构追梦

Java 架构 秒杀系统 亿级并发 京东商城

爬虫入门到放弃01:一句话概括什么是爬虫

叫我阿柒啊

Python 爬虫

哈哈生活系统开发|哈哈生活软件APP开发

一千零一次飞升APP系统开发内容

怎么在linux系统下安装Nginx?一分钟学会!

小桃

Linux 网络安全 系统

前端vue面试题,附答案

buchila11

Vue

绿色篮子APP开发|绿色篮子软件系统开发

数字货币这波热潮,各国都舍不得错过

CECBC

BPM不是软件工程_SOA_Boris Lublinsky_InfoQ精选文章