taowen
首发于taowen

当我们说要一个 BPM 引擎的时候,我们其实要的是什么?

当一个解决方案过于常见时,人们常常忘记为什么需要它,它到底解决了什么问题。

仔细分解一下,我觉得这么几个诉求是完全不同的角度

  • 降低编程的门槛,让最终用户也能用excel自定义表格那样,参与进来。从而降低沟通成本,自己动手不求人。
  • 对于专业的程序员仍然具有吸引力:因为提供比他们现在在用的(java,intellij,spring等)更好的通用编程工具
  • 复用平台提供的已有的能力,解决 non-functional 的问题:错误处理,监控,可伸缩,熔断等等
  • 平台是一个面向特定领域的平台,可以复用这个领域里已有的投资:你今天做的需求之所以不是开一个新仓库,而是在现有系统上改,都是为了复用已有的投资。只是我们平时没有感知到这一点。这个其实是提高 time-to-market 最极致的办法。
  • 提供平台的人希望摊销平台自身的成本:例如 SAP 这样的公司。不是客户真的需要那么多的定制能力。而是 SAP 需要盈利,比如最大化自己的投资回报率。

这五个诉求基本上是完全不同的方向。拆分出来了之后,我们就可以从每个角度深入下去,去进一步分解问题。提出问题远比解决要难,而且更重要:

降低编程的门槛

  • 什么情况下最终用户会有欲望自己上手来改?他的动机是什么?
  • 我们能够让用户接受的编程复杂度的上限是什么?没有变量?没有循环?
  • 降低门槛的原理是什么?如何让普通人感受到容易?

更好的通用编程工具

即便让专业程序员可以选择,他们仍然会选择你,因为你可以让他们效率更好。

  • 开发者的工作模式是怎样的?这个里面哪个环节是目前水分最大,最有提高空间的?
  • 为什么你可以比现有那么多工具要强?为什么他们做不到?如果不是有巨大突破,一定是你放松哪个约束条件?
  • 常见的重复性的工作有哪些?是不是可以减少?让人做更有创意部分的工作?

一份之前写的答案:陶文:开发者效率的几个瓶颈点

解决 non-functional 的问题

这个基本上是一个确定性有答案的领域了。就是云计算目前主要提供的价值。

一些有搞头的地方,我之前写过,现在仍然是有搞头的:陶文:2017 年度总结

复用这个领域已有的投资

这个投资包括代码,也包括用户习惯。所谓流量经济,就是用户习惯用了某某做为入口。这个习惯往往比代码更值得复用。很多平台,例如百度,开始做CRM。大家之所以会对它感兴趣,不仅仅是为了提高效率,也是为了通过平台生态助力自己发展。

  • 为什么大家会对在别人的代码上写扩展,感到不适?根源在哪里?
  • 为什么if/else加多了,就会越来越难以维护?那怎么在复用的基础上,又不增加太多复杂度呢?
  • 很多人都擅长用 excel 解决领域特定的很多问题。但是在 excel 和专业定义软件开发中间没有平滑过度的路径。是不是有复用这些已有经验和投资的可能?

摊销平台自身的成本

很多所谓的可扩展性不是站在用户的角度的。对于用户来说,平台提供了太多的功能是额外的累赘,自己支付了不必要的成本。即便让他们学习那么多个开关,然后决定这些开关都不用。这个学习过程,也是支付了额外的成本。

  • 平台希望摊销自己的成本没问题。但是如何做到最终用户无感知?甚至把这种灵活性做为一种定价策略?
  • 平台自身的成本到底有哪些,可不可以分解一下?是不是一定要摊销?还是把这部分成本甩出去?
  • 平台真的有价值吗?这个盈亏平衡点在哪里?是要把收入做高一些,还是成本降低一些?哪个价格带在市场上是最有竞争力的?

希望对正在考虑是不是要引入或者写一个BPM引擎的你们,有一些启发。

发布于 2019-03-13

文章被以下专栏收录