一个完整的工作流管理系统通常由工作流引擎、工作流设计器、流程操作、工作流客户端程序、流程监控、表单设计器、与表单的集成以及与应用程序的集成八个部分组成。
工作流引擎作为工作流管理系统的核心部分,主要提供了对于工作流定义的解析以及流程流转的支持。工作流定义文件描述了业务的交互逻辑,工作流引擎通过解析此工作流定义文件按照业务的交互逻辑进行业务的流转,工作流引擎通常通过参考某种模型来进行设计,通过调度算法来进行流程的流转(流程的启动、终止、挂起、恢复等),通过各种环节调度算法(SPLIT、AND、OR等)来实现对于环节的流转(环节的合并、分叉、选择、条件性的选择等)。
工作流设计器为可视化的流程设计工具,用户通过拖放等方式来绘制流程,并通过对于环节的配置来实现环节操作、环节表单、环节参与者的配置。
工作流设计器为用户以及开发商提供了快速绘制、修改流程的方式,工作流设计器的好坏决定到工作流管理系统的易用性。
流程操作指所支持的对于流程环节的操作,如启动流程、终止流程、挂起流程、直流、分流(单人办理)、并流(多人同时办理)、联审等,象这些流程操作都是可直接基于引擎所提供的环节调度算法来直接支持的,而在实际的需求中,通常需要自由的对于流程进行干涉,如取回、回退、跳转、追加、传阅、传阅办理等,而这些流程操作对于工作流引擎来说是不合理的,因此必须单独的去实现。
流程操作支持的好坏直接决定到一个工作流管理系统的实用性。
工作流客户端程序为工作流系统的表现形式,通常使用Web方式进行展现,通过提供待办列表、已办列表、执行流程操作、查看流程历史信息等来展现工作流系统的功能。
流程监控通过提供图形化的方式来对流程执行过程进行监控,包括流程运转状况,每个环节所耗费的时间等等,而通过这些可相应的进行流程的优化,以提高工作效率。
表单设计器为可视化的表单设计工具,用户通过拖放的方式来绘制业务所需的表单,并可相应的进行表单数据的绑定。 表单设计器为客户以及开发商提供了快速修改表单的方法,表单设计器的易用与否以及功能的完善与否影响到工作流管理系统的易用性。
通常业务流转需要表单来表达实际的业务,因此需要与表单进行集成来实现业务意义,与表单的集成通常包括表单数据的自动获取、存储、修改,表单域的权限控制、流程相关数据的维护以及流程环节表单的绑定。
与表单的集成的好坏影响到工作流管理系统是否能提高开发效率。
通过与应用程序的集成来完善工作流管理系统的业务意义,主要涉及到的是与权限系统以及组织机构的集成。流程环节需要相应的绑定不同的执行角色,而流程操作通常需要与权限系统、组织机构进行关联。
工作流往往依赖于一些效率工具加以搭建。然而,工具并不是工作流程的全部。
一个优秀的工作流对于提高效率至关重要。
对于团队而言,工作流能有效提升团队工作效率。具体而言,工作流具有以下优点:
既然工作流如此重要,那么,我们如何建立合适的工作流呢?
近代以来,以 福特制 为代表的工业生产系统深刻影响了人类经济和社会体系。福特制的核心包括:产品标准化、采用生产流水线、工薪激励
。关于工作流的设计,可以从福特制获取启发。对于工作流而言,标准化也应该是工作流的基础
,自动化则相当于福特制中的流水线,各种内部报酬和外部报酬则是激励。
其中,如何在工作流中进行标准化呢?
这需要根据我们的日常使用场景,自下而上总结我们的各种重复事项以及对应的需求和操作,然后将这些操作加以标准化,最终创建工作流模版。
以个人知识管理为例,可以根据自己的需求、使用习惯,设置特定的文件命名系统、标签系统、文件管理系统、Zettel 知识卡片模版。这些标准化的工作流模版应该简洁、易用,并且需要长期维护。
工作流标准化的主要目的之一便是为了实现自动化。
自动化体现了源于软件编程领域的 DRY 原则(Don’t Repeat Yourself——不要重复你自己) 工具的自动化包括两种:内部自动化和外部自动化。
比如,快速插入模板、自动保存数据、个性化窗口布局自动启动、自动定位至上次光标位置、使用定制化的快捷键快速使用某个功能。对于内部自动化而言,善用快捷键和触控板进行自动化能有效提升单个工具的使用体验。
大多数工作流很少只在一个工具内部加以完成,而是需要同时使用多个工具。而在多个工具的使用以及切换过程中会产生认知摩擦以及阻断 心流 状态。因此,最好使用自动化工具加速不同工具之间的工作流。
选择效率工具,最好选择那些支持 URI schemes 的工具。在此基础上,选择适合自己需求的自动化工具。常见的自动化服务工具如图所示,具体可以查看在线链接。
正如没有完美的工具一样,也不存在完美的系统。
请放弃对于工作流的完美系统期待。
一个可视化的工作流具有更加高效地传递和挖掘信息、追踪目标执行状态、及时发现问题和反思已有操作等多种优势,能有效提升工作流的效率。在日常生活中,项目管理和任务管理是常见的可视化应用场景。比如,看板、日历、甘特图、时间轴。
实践比工作流和工具更重要
前面我相信介绍了如何选择工具和建立工作流。
然而,从优先级的角度出发,在工作流中,实践 > 工作流 > 工具。真正有用、高效的工作流,并不是预先通过精心选择工具和工作流程加以设计出来的,而是通过实践加以驱动而不断升级和优化的。
具体而言,在工作流中应该先拿起工具立即行动起来。
当使用已有的工具和方法论不能有效处理自己的工作、学习、生活等需求时,再去考虑新的工具和方法论。
在这种实践的持续驱动循环中,你的工作流也会不断迭代进化。
此时,你可能需要对你的工具进行自由组合,也需要对你使用工具的理念进行反思与重塑。
如前所述,应当建立弹性化和可迭代性的工作流。随着时间推移和使用场景的千变万化,我们使用的工具可能在变化,但是根据我们的工作流,应该可以从一个工具迁移到另外一个工具。先从你正在做的事情开始,然后调整工作流。对于工作流中工具的使用,需要注意消除 All In One 所带来的两个执念:放弃尝试使用熟练某个应用所有的功能、放弃在某个应用内实现所有的功能的幻想。