THEEYE 2009-10-28
我常常面对这样的问题:为什么要用工作流呢,写死在代码里面也可以啊,或者用个状态字段也可以搞定。
我乍一想这个观点似乎也很有道理,很多工作流系统用上去之后反而带来了更多的麻烦,那种宣传上的“业务敏捷性、流程自定义”被流程系统的复杂性摧毁的一干二净。
所以,我个人认为工作流系统首先应该达到的目标就是:要使得应用工作流的项目“易维护、易扩展”。
这个易维护易扩展当然不是想当然的“流程自定义”,而是开发商花较小的代价就能调整系统,以适应需求的变化。要达到这个目标,工作流系统的设计是最关键的。至于是否遵守所谓的XPDL、BPMN、BPEL标准一点都不重要。
但是从业务的角度来说,最终用户需要的是什么呢?业务敏捷性当然没错,还应该包括对现有流程运行监控、运行结果的反馈、业务资源的使用状况等等。
要满足这个需求,我认为最关键的是流程模型必须提供良好的支持。我感觉不论是XPDL,BPEL还是BPMN,都把重点放在了流程运行控制的结构的设计、流程交互的设计上去了,都是从程序运行的视角来看问题。BPMN貌似好一点,但是太复杂。当然,你可以认为他很强大。我个人认为,任何一个东西如果“强大”到别人不会用,“强大”到任何一个企业必须聘请顶尖人士来维护他,那就没有意义了!
所以,我个人认为,工作流的模型需要突破,需要一种简明扼要的模型。