标签驱动的极简工作流系统

前言

在政府和企业信息化实施中工作流几乎是必备的子系统。现在的主流工作流系统几乎可以图形化构建出能想象到的所有流程和表单,即便如此,实际项目中实施成功的却凤毛麟角,在企业中实施成功的例子更是少得可怜。为什么会造成这种情况呢?根据笔者分析,应该是下面几个重要原因导致这些工作流系统实施的不成功。

  1. 实施成本高、难度大

虽然国际上有WfMC(工作流联盟)提出了工作流规范和参考模型,但实际上在国内大家各干各的,每家产品都不一样,政府企业在用这些软件时需要对流程配置人员进行深入培训,对使用者进行较大规模现场培训。

为了能够涵盖可能的所有流程特例工作流系统越变越复杂,一般的政府企业内部管理人员在长时间培训后,在实施后很长一段时间内,出了问题通常想到的还是给提供服务的公司打电话解决问题,即便如此,对于大量个性化的需求,通常还需要大量的定制开发,这也应该是市场上影响力大的OA(办公自动化)软件需要很多专门做定制开发的小型服务商一起实施项目的主要原因。

  1. 维护成本高

在系统实际运转过程中,尤其是国内中小企业,其业务经常变化,同样的业务其流程也经常是过一个月一个样。这种情况下需要有专门的技术服务人员不断调整流程设置,在业务变化比较大的情况下,客户不得不考虑继续对系统进行不断的定制开发,通常在使用一年以后,其后期维护成本经常能超出初期成本。

  1. 对企业帮助不大

我相信大家在实施工作流系统的过程中,都有实施阻力大的感慨。在政府办公中,这样的阻力比企业要小一些,但在中小企业中,这样的系统给大家带来的好处不多,却经常让人感觉到增添了不少额外工作,这种情况下,实施阻力加大,成功概率进一步降低。

我们需要什么样的工作流?

现有工作流系统的问题显而易见,笔者经过长期思考和实践,认为更加理想的工作流应该具备以下特征:

  1. 开发成本低

一般工作流产品都不便宜,很多项目中大部分成本是工作流产品本身的授权费用,其次才是二次开发费用。对于一般没有成熟工作流产品的公司来说,工作流产品成为很大成本负担,如果能有实用的工作流设计思路还不如自己从头开发。

  1. 易配置、易维护

纵然成熟的工作流产品都提供了图形化的配置管理工具,在面对一些流程套流程的复杂流程时,有经验的IT人员也会倍感压力;在我国大部企业中,流程变化频率非常快,且不说不断修改多麻烦,万一工作流产品本身有点小问题可能会造成更大困扰。

  1. 必须灵活

在我们实施的企业内部管理系统的一个真实案例中,文档中包含了上百个字段,在此文档中对十几个字段选择不同的内容,会启动不同的任务,而且说不好什么时候还会有变化……

我们的业务软件必须能足够灵活以适应这种复杂需求。

大道至简—标签驱动的极简工作流系统

一般中小企业的实际需求是效率第一,业务规范化第二。这种“标签驱动的极简工作流系统”刚好非常契合这种要求。

工作流系统的最核心功能是引导员工正确的进行业务处理,避免犯错,提高效率,减少对新员工的培训成本。从技术上来讲,工作流实际上是驱动文档在不同员工间流转的大脑,是的,只要能正确的驱动文档即可。传统的设计思路是文档绑定流程,根据流程的逻辑走,遇上一个文档可能会启动十几个不同流程的情况,其配置和修改维护都会变得很麻烦。

(图;传统工作流模型)

“标签驱动的极简工作流系统”摒弃了文档必须通过流程(即:流程实例)驱动的思路,依据大道至简的原则,采用更加直观的设计理念,让文档来驱动任务进行业务处理。

首先,系统提供一个任务池,其中每个任务可以有自己的界面表单、自己的特殊业务逻辑;其次,文档处理过程中可以根据业务特殊情况选择标签或者修改已有标签的内容;最后,因为每个任务都有用标签来逻辑确定的激活条件,所以文档中的这些标签可以确定下一步可以执行的任务。

(图:标签驱动的工作流模型)

在文档中添加标签

关联文档和任务的最重要实体是标签,这些标签实际上是一些自定义字段,一般情况下,标签按种类分为“系统预置”和“自定义”两种。

顾名思义,系统预置是根据业务情况预置在系统里的,用户直接选择使用就可以了,这些标签也有可能绑定了特殊逻辑,比如:选择某个标签时,弹出警告信息;自定义标签是用户随意命名的,想加什么加什么。

按类型来分,标签可以分为单值标签、名值对标签。当我们把标签添加到文档中以后,这些标签将成为文档的一部分。

单值标签的添加方式可以做得很简单,可以参考新浪博客的方式,如下图:

(图:添加单值标签示意图)

(图:添加名值对标签示意图)

在添加单值和名值对标签时,标签可能是系统预置的,也可能是自定义的,在具体实现时可以进一步优化界面,方便操作。

为任务设置标签

为任务设置标签其实是设置任务的激活条件。简单来说,一个任务主要包含了特殊的处理界面、特殊的处理逻辑,每个任务通常有责任人(可能是多人),用户可以用不同的任务完成不同的业务操作。

任务的激活条件可能是多个标签的与或关系。

(图:为任务设置标签示意图)

如上图所示,可以简化设置标签的形式,每一个多行输入框里面的标签是或的关系,两个大的多行输入框之间是与的关系。

特殊情况

用这种思路进行任务设置时各任务之间完全没有耦合,在实际使用时难免发生一些问题。

未找到任何任务

文档在提交时,根据标签未找到任何匹配的任务,此时建议允许用户手工搜索或者选择一个任务执行;同时应提供一种备用任务处理以应对未曾预料到的特殊情况。

找到多个符合条件的任务

一般遇到这种情况,应该允许用户手工选择下一个阶段要执行的任务。

实施效果

我们通过这样的工作流已经成功为某客户作了业务系统的实施,达到了不购买昂贵的工作流平台确达到了比主流工作流平台更好的使用效果!

在整个开发和实施的过程中,我们发现这确实是一种简单高效的方法。虽然程序员们之前没有任何工作流系统的使用和开发经验,但是因为这种思路简单直接,大家迅速就进入到了工作角色。另外,因为这些任务几乎没有任何耦合,多任务可以多人并行开发,效率很高。

在实际使用的过程中,绝大部分情况下企业管理员为任务配置的标签都是非常简单的,这些标签也非常容易理解,在修改的时候也根本不用考虑流程,哪个任务出现的不合适,就配置哪个任务就可以了。

在成功实施后,使用者可以看到文档已经流转过的痕迹,却不像主流的工作流平台那样可以“宏观”的看到整个流程图。不过实际上看不看得到未来的流程对绝大部分员工来讲根本不重要,大家只是关注我要干啥,我干完以后交给谁干:)

总结

在我们看来,对于一般应用于中小企业的管理软件来说,做一个酷炫的流程配置并没有什么用,企业里更加关注的是软件能否为工作提供方便,而不是增加负担,其次才是管理的规范性,而传统的工作流系统把太多精力都放在了流程规范性上了。

亲爱的像我们一样奋战在一线的码农们,强烈建议你们再实施工作流系统时,如果客户是很务实,那就忘掉那些复杂的工作流产品吧:)

时间: 2024-08-05 07:07:07

标签驱动的极简工作流系统的相关文章

(一)php注册登录系统-极简

序 登录注册系统是日常上网最普通的操作,我设了一个分类一步步完善注册登录系统,若有哪里错误请慧教 所用语言:php 数据库 :mysql 本次实现功能: 1.用户注册 2.用户登录 主要文件: 完整代码 1 sql 在已有的数据库里创建user表,id,username,password三个字段 create table user(id int(10) not null auto_increment,username varchar(30),password varchar(40),primar

极简估值教程——完结篇 价值投资系统建构举隅

前面几讲本来愿望是写"极简",由于本人水平十分有限,加之投资本身就是一个极其精妙的思维集合,想要简化,但又要表达,只能索性写的具体些了.也许以后能有机会重安个题目,现在怎么看怎么不切题.算了,先不说这些.还是来说投资. 今天我把之前三讲的内容做一个整合,根据上面三讲的内容为思路,其实已经可以勾勒一个价值投资系统的构架了. 其实任何一种思路,一个核心,一个侧重就足以构建一个交易系统.关键是你进行深入的思考,研究,实盘中获得心得体会,这些都可以加入你交易系统中. 过程嘛,很像我们小时候搭积

华为云EI ModelArts,从0到1开发训练AI模型,通过“极快”和“极简”实现普惠AI

华为云EI ModelArts,从0到1开发训练AI模型,通过"极快"和"极简"实现普惠AI现如今 AI 技术.概念火爆.落地应用更是繁多,但开发呢?是否困难?到底有多痛?据了解,大部分 AI 开发者的工作时间并不长,并且十有八九可能不是"科班出身".从编写的教材.录制的课程中就可以看出,所有的教学都不可避免地带有很强的的学术性,即便有意避免研究导向,仍然离产业界的需求相去甚远.并且随着新一波人工智能的热潮,人们发现手里的数据多了,电脑运算的更快

移动开发中的极简设计

原文链接: The Art of Minimalism in Mobile App UI Design 原文作者 : Nick Babich 译文出自 : 掘金翻译计划 译者 : edvardhua 校对者 : owenlyn, jiaowoyongqi, Graning 文章结尾有英文原文 设计是一件用户驱动很强的工作.随着用户越来越偏好更简洁的交互界面,如何剔除多余的元素,保留最基础最重要的元素是极简设计的关键.极简设计形式和功能完美结合.它最大的优点是极简的表现形式,简洁的线条,大方的留白

Spring Boot (七): Mybatis极简配置

Spring Boot (七): Mybatis极简配置 1. 前言 ORM 框架的目的是简化编程中的数据库操作,经过这么多年的发展,基本上活到现在的就剩下两家了,一个是宣称可以不用写 SQL 的 Hibernate ,一个是对 SQL 非常友好的 Mybaties ,,两者各有特点,在企业级系统开发中可以根据需求灵活使用.发现一个有趣的现象:传统企业大都喜欢使用 Hibernate ,互联网行业通常使用 Mybatis . Hibernate 特点就是所有的 SQL 都用 Java 代码来生成

在windows上极简安装GPU版AI框架(Tensorflow、Pytorch)

在windows上极简安装GPU版AI框架 如果我们想在windows系统上安装GPU版本的AI框架,比如GPU版本的tesnorflow,通常我们会看到类似下面的安装教程 官方版本 安装CUDA 安装cuDNN 配置环境变量 安装python环境 安装gpu版的tensorflow开发包 咋看上去好像不是很复杂,但是其中坑多到你怀疑人生. 下载的cuDNN时候需要注册,而且因为cuDNN文件在外网,下载速度很慢. 比如不同版本的tensorflow和CUDA(cuDNN)的版本是有匹配关系的,

在windows上极简安装GPU版AI框架

在windows上极简安装GPU版AI框架 如果我们想在windows系统上安装GPU版本的AI框架,比如GPU版本的tesnorflow,通常我们会看到类似下面的安装教程 官方版本 安装CUDA 安装cuDNN 配置环境变量 安装python环境 安装gpu版的tensorflow开发包 咋看上去好像不是很复杂,但是其中坑多到你怀疑人生. 下载的cuDNN时候需要注册,而且因为cuDNN文件在外网,下载速度很慢. 比如不同版本的tensorflow和CUDA(cuDNN)的版本是有匹配关系的,

CentOS下使用Postfix + Dovecot + Dnsmasq搭建极简局域网邮件系统

背景 开发环境为局域网,工作内容需要经常查看邮件文件(*.eml),可恶的Foxmail必须验证账户才能进入主界面,才能打开eml文件查看. 无奈搭一个局域网内的邮件系统吧.极简搭建,仅用于通过Foxmail验证. 环境 [[email protected] ~]# cat /etc/redhat-release CentOS Linux release 7.2.1511 (Core) 安装 下载服务器软件: SMTP服务器postfix POP/IMAP服务器dovecot DNS服务器dns

React Native的极简手册

安装入门可以参考:React Native官方文档(http://reactnative.cn/docs/0.31/tutorial.html#content). NodeJS知识储备:参考<NodeJS入门>(https://leanpub.com/nodebeginner-chinese).(尊重知识,请购买原版). 书籍:<React Native入门与实战> 代码示例:30天学习React Native教程(https://github.com/fangwei716/30-