首页 > 其他分享 >产品化思维之-工作流本质和几个概念

产品化思维之-工作流本质和几个概念

时间:2022-08-31 10:47:02浏览次数:69  
标签:思维 产品化 流程 本质 工作 任务 事项 节点 参与者

这篇文章是约10年前我和同事的一个关于工作流的讨论的一个备忘,现在转到这里做了备份。

现在看有些观念和认识落伍了,也不一定正确,但是仍有一定的参考价值。

-------------------------------------------------------------------------------------------------------------------------------

工作流的本质分析和一些概念。
本质是协同工作,一些人遵循一定的顺序,工作要求,共同完成一项任务。
任务的种类是多种多样的,既可以是简单的事项申请(比如请假),也可以是复杂的业务处理(预算编制)。
为何很多人提习惯称工作流为审批流,是因为开始主要应用于事项审批。
但是我们从认识上一定要跳出审批这个业务场景,从工作协同的视角思考去抽象,这样思考出来的东西就比较通用。比如在一个流程中,一个节点是合同备案,需要合同管理岗上传盖章生效的合同文本扫描上传,客户就说这里为啥叫“批准”呢,应该叫“备案完成”。但是我们的系统没法改,因为每个节点的操作是固定的(批准,退回),开发人员也意识不到这个问题:“批准”怎么了,又不影响你使用。

我们理一下工作流的几个概念。
1,工作流,代表现实工作流程,包括工作环节,以及环节的时间顺序,环节的发生条件,每个环节的责任人,每个环节的工作内容和要求。一个工作流表示一类业务。

2,节点,表示一个工作环节,代表该业务的某个步骤。一类业务总是被划分为有序的几个步骤。

3,路径,节点之间的有方向的连线,表示工作环节的先后顺序,以及执行条件(又称路由条件)

4,任务,工作流产生的待完成的工作,常被称为流程代办,待办任务等等。工作流推进到某个节点后,会产生该节点的工作任务,工作任务会指定到具体的参与者。每个节点只产生一类任务。任务根据参与者多少分两类:单人任务和多人任务。不比如录入入库单的任务一般是单人任务,而投票通常是多人任务。一个节点只有一类也只会产生一个任务,即便这个任务的参与者有多人。
关于任务,我们要分开两个概念:任务状态,任务完成状态。
任务状态是工作流系统的概念,属于任务的元数据。包分为:
(1)等待完成,任务刚生成的
(2)认领,任务被某个参与者占有。被领用的任务不可被其他人认领
(3)挂起,认领的子状态,
(4)撤销,任务失效,不再执行,
(5)完成,被参与者完成。完成的任务不可再次执行。
任务完成状态表示已经完成的任务所代表的业务活动的完成结果,比如一个审核任务的完成后,状态有两个:批准(同意),不批准(不同意),一个打分任务的状态有打分完成,未打分,不符合条件等等。<GRG29220830>至于活动有几个状态,和具体的活动有关系,由活动本身来定义,和工作流没有干系。活动只要把这个完成状态告诉工作流即可,工作流根据活动的状态,决定流程走向。(参见6,任务程序的相关描述)</GRG29220830>
以上两个状态请一定要分清楚,否则,概念模糊,乱七八糟,让人费解。

5,参与者,指任务的执行者,即可以是实际的人,也可以是系统绝角色。每个任务的执行者在节点上定义,定义可以简单也可以很复杂。同一个任务的参与者可以是一个,也可以是多个(比如投票任务可以有多个参与者)。

6,任务程序,无论是实际参与者还是系统参与者,都是通过程序功能来完成任务。程序可以是有界面交互的程序(比如入库单录入界面,审核任务处理界面),也可以是无界面的程序(如数据发送任务的接口调用程序,邮件发送任务的发送程序)。每类任务都会在工作流中指定其处理程序。在参与者“打开/执行”任务时,系统会自动打开对应的任务处理程序,比如入库单录入界面,邮件发送程序来完成任务。

任务的参数和返回值。任务有入口参数,参数会传给任务处理程序,比如将单据号传给审核任务,将邮件内容传给邮件发送程序。任务的参数在工作流的节点上定义任务处理程序的时候指定。任务执行完后会有返回值,表示任务的执行状态,返回值会返回给工作流任务调度程序,工作流根据任务的返回值决定下一步的走向:往下推进还是退回到某个节点。这个处理逻辑也是有工作流设计时定义的。举例来讲,简单的审核处理程序会有两个处执行结果:通过,驳回(系统可以用1和0表示),工作流就可以根据1和0执行不同的处理,要么推进到下一个节点,要么退回到开始节点。

7,事项。每个工作流处理的都是一个事项。比如请假单流程处理的是员工请假的事项,合同流程是处理的合同签约的事项。这些事项,根据企业内部管理要求,都拆分成若干步骤。这些步骤联合起来共同完成这个“事项”。

8,表单,事项在系统中的载体,可能简单,也可能很复杂。简单的如同上面说的 请假事项,“请假单”,就代表了这个业务事项;复杂的有入职流程,涉及到很多部门,人事部,财务部,资产管理部,信息部,数据也很复杂,入职信息,薪酬数据,工资卡,设备领用,信息账号等等。这些信息可以放在同一个表单上,也可以在不同的表单,比如人员信息单,设备领用单,邮箱地址创建申请单等等。不同的单据有不同岗位创建,审批,但都属于同一个事项:员工入职。因此在不同的节点,任务处理程序各不相同。

9,加签
加签是在本人节点前,或后,增加一个或多个 审核 审批节点。加签是纯粹的流程操作,不属于“任务活动”的业务动作。因此加签应该是工作流系统提供的标准功能。

10,抄送
和抄送类似,抄送是指在“流程”结束后,将改事项“通知到”某些人。抄送也是纯粹的流程操作,不属于“任务活动”的业务动作,因此,加签应该是工作流系统提供的标准功能。

11,"退回到x节点"
是将流程的节点回退到流程中的某个已经走过的节点。比如某个节点在作业时,发现数据不正确,或者不完成这就需要退回到指定的节点(进行修正或完善)。退回操作也是纯粹的流程操作,不属于"任务活动"的业务动作,因此,退回应该是工作流系统提供的标准功能。在实际工作中,这种退回到指定节点的需求非常之少。

搞清楚以上概念非常重要,做什么东西都要把握这个原则。否则就会出现我们的工作流,要get某个人的待办事项都要费个老鼻子劲了。

标签:思维,产品化,流程,本质,工作,任务,事项,节点,参与者
From: https://www.cnblogs.com/senline/p/wf.html

相关文章

  • 任务协同工具&共享思维导图软件
    ​1、Leangoo领歌Leangoo看板工具:Leangoo领歌是一款团队任务协同看板工具,以任务驱动的工作方式,让工作更简单。Leangoo领歌看板的主要功能有:1、任务管理:看板的管理方式......
  • Codeforces Round #287 (Div. 2) B. Amr and Pins(数学/思维)
    https://codeforces.com/contest/507/problem/B题目大意:Amr有一个半径为r、圆心在点(x,y)的圆。他希望圆心在新的位置(x',y')。在一个步骤中,Amr可以将一个大头针放在......
  • 测试思维4
      比较之间的差距环境比较 先易后难的分析 由凡化简  拆解步走组合思维在app中应用到很多,你在测试一个直播功能突然来了电话。多进程的并发 单进程 ......
  • 学习:python进阶 for循环本质
    思考:python中有while循环为很么还有for循环? 结论:while循环可以做循环遍历操作,但是远远不如for循环简结实用。while循环适合做条件循环,for循环适合做迭代器循环。......
  • Java方法重载的本质
    Java方法重载的本质publicclassDispatcherClient{publicstaticvoidmain(String[]args){Animala=newAnimal();Animala1=newDog()......
  • 0825 思维题两则
    0825思维题两则感觉总得写点题解记录一下,但是不想记录的太复杂,记录一下策略吧解的好和讲的好是两回事,我毕竟解的都不好,也就没人看了,所以记得简略一点,不求讲的好了Fib......
  • Xmind思维导图教程十二:如何在Xmind中设置仅显示工具栏的图标?
    Xmind2022Mac是一款非常便捷的制作思维导图的软件,制作思维导图可以帮助用户更高效的进行学习,在Xmind中如何设置仅显示工具栏的图标?下面我们分享具体的操作步骤。1、在Mac......
  • 注解-JDK内置注解以及自定义注解-格式&本质
    JDK内置注解JDK中预定义的一些注解:1,@Override-检查该方法是否是重写方法。如果发现其父类,或者是引用的接口中并没有该方法时,会报编译错误。2,@Deprecated-标记过时方......
  • 【luogu AT2377】Blue and Red Tree(思维)(STL)(启发式合并)
    BlueandRedTree题目链接:luoguAT2377题目大意给你一棵树,每次你可以选一条路径,删掉其中的一条边,然后把路径两断点编号在另一个一样点数的图上连边。然后给你一个要求......
  • 3 敏捷测试思维方式
     敏捷测试与传统测试之间的区别,不仅在于测试的独立性、阶段性、计划性、自动化测试等多个方面有很大的不同,而且更大的区别是在测试原则和测试思维模式(TestMindset,也可翻......