BizDevOps — the true value proposition of workflow engines
转自:https://blog.bernd-ruecker.com/bizdevops-the-true-value-proposition-of-workflow-engines-f342509ba8bb
Whenever you implement core business logic you have to discuss it with a lot of stakeholders and having a graphical representation is a huge help in doing so. This is why there are a lot of methodologies out there to capture business logic visually, like Event Storming, domain modeling and of course process modeling with BPMN.
BPMN is an ISO standard and its beauty is that it defines a business readable graphical visualization that is also directly executable on a workflow engine. A BPMN model therefore is also an XML file a workflow engine can understand.

Compared to other languages, BPMN is a good choice as it is really widespread and very mature. I will not dive into details of the BPMN elementsbut I can report that it was sufficient for all real-life use cases we saw in the last years — which are a lot.
It is about living documentation — not low code!
The benefit of directly executable models is what Cyrille Martraire named living documentation. The model is not an input of the requirement phase that will be outdated once the first line of code is written. No, the model will be executed and is the code. It is always in-sync with the implementationduring the whole life-cycle.
Unfortunately this is often connected with zero or low code approaches which try to get rid of the developer. In our experience these approaches do not work well, at least not in non-trivial use cases. I see BPMN models simply as a different way of writing code which should still be done by a developer. Of course he/she communicates with business stakeholders to do the right thing. And the true benefit of using BPMN and a workflow engine is to facilitate the collaboration between the different roles!
BizDevOps
Having an executable, visual and understandable model has benefits for business stakeholders, developers and operators. It also improves the communication and collaboration between them big time.
Let’s dive into that:

The business can understand visual workflows and discuss the underlying business process and related requirements.

Graphical report for one scenario run as automated unit test (here: Camunda Test Coverage). The payment workflow is taken from the flowing retail example. Use cases for workflows can be found in any industry.
Developers get a workflow engine which is a persistent state machine with a lot of additional features. On top of that they can benefit from the visual model as they gain more context into what they are actually working on. For example, some tools can create graphical reports for test scenarios.

Exemplary operations tool from a workflow engine (here: Camunda Cockpit)
Another huge gain lies within operations as a workflow engine provides a lot of context to understand and resolve problems or failures. The possibilities to directly intervene in real-time (e.g. repair failed workflow instances or correct data) help keep everything up and running.

Audit data can be leveraged to optimize workflows (here: Camunda Optimize)
And as workflow engines write a lot of audit data, one can leverage this historical data to find bottlenecks and possibilities for improvement for your workflows. This might be done by any stakeholder as everybody can understand the BPMN workflow models.
Summary
In this short post I wanted to highlight the value of graphical but directly executable models in BPMN for business stakeholders, developers and operators (BizDevOps). This is not about getting rid of IT by following a low code approach but rather provide benefits to each of the roles and facilitate collaboration between them.
PS: Screenshots are taken from Camunda, an open source platform for workflow automation. As co-founder of Camunda I simply know this tool the best.
BizDevOps — the true value proposition of workflow engines的更多相关文章
- The Microservices Workflow Automation Cheat Sheet
Written by Bernd Rücker on Dec 12 2018 in the Best Practices category. Editor’s Note: This post orig ...
- How to implement long running flows, sagas, business processes or similar
转自:https://blog.bernd-ruecker.com/how-to-implement-long-running-flows-sagas-business-processes-or-si ...
- Architecture options to run a workflow engine
This week a customer called and asked (translated into my own words and shortened): “We do composite ...
- Rule Or WorkFlow
The main value of a Workflow engine is that it makes it possible to customize the flows through some ...
- 风尘浪子 只要肯努力,梦想总有一天会实现 WF工作流与Web服务的相互调用 —— 通过Web服务调用Workflow工作流(开发持久化工作流) _转
如果你曾经负责开发企业ERP系统或者OA系统,工作流对你来说一定并不陌生.工作流(Workflow)是对工作流程及其各操作步骤之间业务规则 的抽象.概括.描述.工作流要解决的主要问题是:为实现某个业务 ...
- 中文分词工具探析(二):Jieba
1. 前言 Jieba是由fxsjy大神开源的一款中文分词工具,一款属于工业界的分词工具--模型易用简单.代码清晰可读,推荐有志学习NLP或Python的读一下源码.与采用分词模型Bigram + H ...
- Oozie_示例
Oozie 官方示例 解压oozie-examples.tar.gz 将examples/上传到HDFS家目录 $ bin/hdfs dfs -put /opt/cdh-5.6.3/oozie-4.0 ...
- Odoo ir actions 分析
源代码位置:openerp/addons/base/ir/ir_actions.py 根类型:ir.actions.actions class actions(osv.osv): _name = 'i ...
- WWF3XOML方式创建和启动工作流 <第十篇>
一.XOML使用工作流的好处 通过Xoml方式使用工作流的好处在于,它能够不重新启动程序的情况下,仅仅通过配置xoml就能够实现改变工作流,非常灵活. 创建一个WinForm程序如下: 代码如下: n ...
随机推荐
- java关于集合的遍历与增强for循环(foreach)的使用
java集合类的使用可以说是无处不在,总的我们可以将之分为三大块,分别是从Collection接口延伸出的List.Set和以键值对形式作存储的Map类型集合. 许多情况需要我们遍历出集合 ...
- Windows server 2016 安装 TFS
一:准备: 1.1下载TFS https://visualstudio.microsoft.com/zh-hans/tfs/ 1.2 下载SQL2017 http://msdn.itellyou.cn ...
- fortran学习网站
https://www.sciencesoft.cn/Fortran/Index.htm http://m.fcode.cn/
- js重写trim()方法
最近项目中出现去空格的需求,我本地是IE11,使用trim()函数的时候,是无法识别的.因此重写String的trim()方法. 1.要求 可以去除首位全角,半角空格. 2.对 能去除所有 Str ...
- shiro学习(三)权限 authenrication
主体 主体,即访问应用的用户,在Shiro中使用Subject代表该用户.用户只有授权后才允许访问相应的资源. 资源 在应用中用户可以访问的任何东西,比如访问JSP页面.查看/编辑某些数据.访问某个业 ...
- css3宽高设置:calc() / vw / vh
对于720px的设计稿,100vw == 720px,1vw == 7.2px; vw可以替代rem 实现自适应布局. 相应的计算插件:postcss-px-to-viewport ******** ...
- 《uniGUI for cBuilder入门到精通》新书预定
<uniGUI for cBuilder入门到精通>火热预定中,从零开始带你入瓮带你飞,手把手教你如何快速安装,开发和部署一个web系统,前十名用户售价暂定100元,后续价格每本200元, ...
- python 正则进阶常用方法
表达式 描述 正则表达式示例 符号 literal 匹配文本字符串的字面值literal foo rel1|rel2 匹配正则表达式rel1或rel2 foo|bar . 匹配任何字符(除了\n之外) ...
- Day10作业及默写
1,继续整理函数相关知识点,写博客. 2,写函数,接收n个数字,求这些参数数字的和.(动态传参) def func(*number): sum=0 for num in number: sum+=nu ...
- JAVA中的Set
Set中存放的是没有重复的数据,下说记录一下使用中的小细节. 1.HashSet 区分大小写: Set<String> set1 = new HashSet<String>() ...