不知道小伙伴们一般在画原型之前会做什么,我一般都是先想清楚流程,必要的时候画下用例图,之后是简单的画些草图,最后才会打开软件来画原型。之前在画流程图的时候,有时候会感觉思路很奇怪,不清楚是什么原因…
直到最近才想清楚自己觉得奇怪的原因,之所以觉得奇怪,是因为在一个流程图中画了不在同一个维度上的东西,把不同类型的流程图杂糅到了一起,所以就打算写篇文章来说下自己在流程图这块的一些思考。
本文主要会讲述简单的流程图定义,常用到的业务流程图、任务流程图以及页面流程图,最后是一些绘制流程图的工具。以特定的图形符号加上说明,表示算法的图,称为流程图或框图。流程图是对过程、算法、流程的一种图像表示,在技术设计、交流及商业简报等领域有广泛的应用。然而这两种定义其实都并没有清楚的表面流程图是什么,我自己也尝试着给流程图下个定义。流程图可以粗略的拆分为流程+图,图是指图形化的表达,那流程是什么?百度百科中关于“流程”的释义是:流程,指水流的路程;事物进行中的次序或顺序的布置和安排。在基本信息中有这样一条解释“由两个及以上的业务步骤,完成一个完整的业务行为的过程,可称之为流程;注意是两个及以上的业务步骤”。基于以上,我尝试着给流程图下一个自己得出的定义。流程图是对完成一个业务过程中各步骤次序的图形化表示(然而这个定义好像也并不严谨)。其实这也就是维基百科中说的“对过程的一种图像表示”,只不过这个过程也是有着先后顺序之分的。为什么我会每次都要先说明一下概念?因为个人觉得,只有你清楚的知道了一个东西是什么,才能更好的挖掘其他的东西,比如为什么、意味着什么…首先来说下为什么要画流程图,基于以上得出的流程图的定义,可以看到流程图本身就是用来表述业务中的活动顺序的,通过流程图的梳理不仅能够更清晰直观的了解到整个业务过程中的活动步骤顺序,并且能够帮助发现过于繁琐的步骤,从而帮助简化流程。不知道你们是否曾经有过这样的尴尬,被开发说这里少了一种情况,那里少了一些异常处理,通过流程图的梳理,能够让自己考虑的更加全面,虽然说难免还会有些疏漏,但是提前用流程图走查一遍,确实会好很多。另外通过流程图来和团队成员进行沟通协作,也能提高协作的效率。常见的流程图有系统流程图、数据流程图、业务流程图、页面流程图等,在产品相关的工作中可能与业务流程图打交道的比较多,而交互设计师可能与页面流程图打交道的比较多,所以我们重点说一下业务流程图与页面流程图。业务流程图是一种描述系统内各单位、人员之间业务关系、作业顺序和管理信息流向的图表(定义来源于百度百科)。如果严格按照这个定义的话,任务流程图是不能够归到这个里面的,因为任务流程图描述的是一个角色的操作流。页面流程图是反应页面之间的跳转关系的图,更多的是反映用户通过什么操作进入了什么页面,以及后续的操作情况。通常情况下,流程图可能会用到这些相关的元件,其中最常用的是活动、判断、逻辑关系线和起始终止,其他的虽然不是很常用,但是也应该知道各形状代表的是什么,流程图的基本规范还是要遵守的。常见的流程图结构分为顺序结构、选择结构、循环结构,另外在UML中的活动图里面还会有着分支结构,但是在流程图中好像比较少见到这种并行的活动处理。
素材来源于互联网
按照流程图的定义可以抽离出来比较关键的要素为活动与顺序,此外还应该加上角色、输入、输出与规则。活动:活动是指的为了完成这个过程,本身需要有哪些活动,这些活动构成了流程图的主要节点;顺序:流程图很大的一个特点就是会存在活动的先后顺序;输入:流程图是有着明确的开始和结束的,每一项的活动又会取决于输入的是什么;输出:输入的内容经过活动的加工会输出新的内容,作为下一个活动的输入,如此循环,直至整体完成;规则:流程图需要符合相应既定的规则,比如一些基于共识的规则,像各不同形状元件的用法。业务流程图更多的时候会以泳道图的形式出现,主要是因为业务流程图不仅仅需要体现出来流程的要素,并且还需要体现出来活动在各不同的角色或者部门之间的流转情况。通常情况下业务流程图是以两个维度来存在的,偶尔也会有例外,比如之前我在一个订单的业务流程图中通过颜色来增加了另一个维度。如果说业务流程图是二维的,那任务流程图更多的则是体现一维的情况,元件、结构、要素等都是符合流程图的规则的,在此就不在赘述了。之前我提到过把流程图杂糅在了一起,指的就是将业务流程图和任务流程图杂糅在了一起,理论上来说需要先梳理业务流程图,清楚了系统所涉及的角色之间的关系之后,才是具体的针对某个角色某个任务的任务流程图,另外在多数情况下也可能只有任务流程图而无业务流程图。
素材来源于互联网
素材来源于互联网
然而不管形式如何变化,页面流程图的核心是不会变的,核心就是表现出来不同页面之间的流转关系的。即用户从哪里来,能够去到哪里,通过什么样的操作能够实现怎样的页面跳转。我个人的理解是页面流程图应该与任务流程图息息相关的,通过将用户的需求转化为用户的目标,进而拆分成一个个的子任务,最终将这些任务体现在页面上。一个页面的存在就是为了满足用户的任务(或者是产品目标),而页面流程图的跳转也就对应着用户一个个任务的完成过程。工具有很多种,用起来顺手,效率够高就行了,切勿陷入盲目追求工具的恶性循环,个人知道的常见的一些绘制工具(仅Windows),欢迎补充。
最后想说一下,文档这种东西是需要结合受众的特点的,结合受众的特点和关注点来选择合适的展现方式,具体形式是怎样的,有时候可能并没有那么重要,能把事情沟通清楚就行。当然具体的问题仍然是需要具体分析的…