在讨论直线序列和并行序列之前,先来看看序列对做事的意义。
比如,想泡壶茶喝。实际情况是:火已经生了,开水没有,水壶、茶壶、水杯都没洗,茶叶有。
A的做法:洗好水壶,装水烧水,水开之后洗茶壶、茶杯,找出茶叶,泡茶喝。
B的做法:洗好水壶、茶壶、水杯,找出茶叶,装水烧水,水开后泡茶喝。
C的做法:洗好水壶,装水烧水,同时洗茶壶、茶杯,找出茶叶,水开后泡茶喝。
哪种做法最省时间?C的做法最好,等水开的时间做了其他事情。借助泡茶只是引子,可以引出流程管理等方面的问题。
流程制定需要先找出开启流程执行的“开关”,也就是不执行某项工作则其下工作都不能展开。泡茶例子中,洗水壶就是“开关”,水壶不洗,不能烧开水,没有开水就没法泡茶叶,因此洗水壶就是开水泡茶的总前提,它们的相互关系可以参照图5-8。
在图5-8中,烧开水与洗茶壶、洗茶杯、拿茶叶是并列状态,这4件事在同一时间段内完成。这就是流程设计中的并行序列,将相互不干扰的工作从直线流程中分离出来,单独工作或者形成单独工作流程,待到几项工作都执行完毕,最终回流到总流程继续执行。
图5-8 泡茶流程
但很多流程在设计时没有考虑采用并行序列,认为流程就应是直线序列,一样做完了再做下一样,如此将耽误大量时间,严重影响流程完成进度。能够并行的流程就要尽量捏合在同一时间段内,即便各自所用的时间不同,但仍然是最节省时间的方法。比如某一流程中,B、C、F、G任务分别耗时1小时、2小时、3小时、4小时可完成,它们之间没有纵向牵制关系。如果这4项任务直线序列完成,将耗时10小时才能完成;如果这4项任务并行完成,以用时最长的任务为时间节点,最多耗时4小时即可完成。(www.daowen.com)
由此可见,在条件允许的情况下(同属于一个主流程下,又没有相互牵制的任务,)采用并行序列比采用直线序列流程的执行效率要高(见图5-9、图5-10)。
图5-9 流程的直线序列(假设各任务自身没有分支任务)
图5-10 流程的并行序列(假设各任务自身没有分支任务)
在图5-10中,流程开始后进入A任务,A任务是整个流程执行的前提。A任务执行完毕进入B任务,C任务与B任务没有纵向决定关系,即C任务执行不需要B任务先完成,因此将C任务设计与B任务并行执行。
F任务、G任务与B任务、C任务也没有纵向决定关系,而且F任务与G任务的执行结果也与D任务无关,因此可将这两项任务前提至与B任务和C任务并行执行(图中以纵虚线框将B、C、F、G任务框起)。
B任务与C任务执行完成后进入D任务执行,F任务与G任务执行完成后进入E任务,由此可知D任务与E任务间没有纵向决定关系,因此D任务与E任务可以并行执行(图中以横虚线框将D任务和E任务框起)。
D任务执行完成进入H任务,E任务执行完成后进入H任务,H任务执行完成进入J任务。而I任务执行完成也进入J任务,I任务与其他任务间没有纵向决定关系,因此将I任务与E任务划入并行序列(图中以纵虚线框将E任务与I任务框起)。若I任务先于H任务执行完成,则等待H任务执行完成,一并执行J任务。
最后,J任务是整体流程中最后一项,它执行完毕宣告流程全部完成。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。