十六、再聊项目的关键路径
之前在制作项目里程碑的时候,会要求识别项目的关键路径。所谓项目的关键路径,即项目完成所需要的最短时间。项目的关键路径不是一成不变的,任何的变更会造成项目关键路径的变化。
项目经理需要及时跟踪确保项目关键路径被正确识别,同时确保关键路径上的任务不要产生延迟。因为任何在关键路径上任务的延迟都会造成整个项目的延迟。
下图是之前关键路径的表示方法:
从中我们可以直观的识别关键路径是 1.1.1 -> 1.4.1->1.4.2->1.4.3->1.5.2。
实际上上面的画法是一种简化,省略了项目任务最早开始时间,最晚开始时间和总时差的描述。
最早开始时间: 指某几项活动能够开始的最早时间。
最晚开始时间: 指为了使项目在要求完工的时间内完成,某活动必须开始的最迟时间。
总时差: 最晚开始时间 - 最早开始时间
一般情况,项目间资源都是共享的。而资源是否到位可以左右一个任务是否开始。所以对于非关键路径上的任务,开始时间都是有一个范围的。在这个时间范围内只要前置任务完成,资源到位,即可开始该任务。
一方面减少了等待的时间,另一方面对于非关键路径上任务的延迟,并不会完全造成整体项目交付的延迟。只要实际任务开始的时间在最晚开始时间之前即可。
《一》完整的任务节点信息
以下是一个完成的关键路径节点的所要包涵的信息:
一个矩形表示一个任务,矩形的四个角分别标注最早开始,最早结束,最迟开始,最迟结束时间。
将工期标识在最早开始和最早结束中间。
将总时差标识在最迟开始和最迟结束中间。
矩形的主体写明任务活动编号和活动名称。
于是我们把上面的简化版的拓扑图按照完整的任务节点画一下。(假设标书中的工期是18天)
首先,先假设第一天,第一个任务顺序开始,任务和任务之间没有间隔。从而得到所有任务的最早开始时间和最早结束时间:
其次,假设任务最后一天按时完成,从最后的任务开始往前倒推,得到最迟结束时间和最迟开始时间:
最后根据公式 总时差 = 最晚开始时间 - 最早开始时间得到每个任务的总时差。见下图:
注意红色标注部分,如果最后排出来的图是有负数的,即上图中红色部分,说明项目安排不合理,需要调整。
第一个任务最晚开始时间是负数,说明按照目前的任务计划和工时,必定最后会交付会延迟。目前看来延迟是2天。
各个任务的总时差为负数,说明任务之间没有任何缓冲,别说一个任务的延迟是否回造成整个项目延迟了,即使没有任务延迟,项目也要延迟。
最后看一下1.5.1这个任务,总时差是16,说明在任务开始的十六天内的任何一天,开始任务,都会按时交付。
好了,既然知道了项目计划的不合理,接下去就是调整,调整的目的是消除负数项。
首先看项目关键路径上的任务:
1.1.1 -》 1.4.1 -》 1.4.2 -》 1.4.3 - 》 1.5.2。
原本测试用例有一个人写五天,但是考虑到此时BA已经完成了需求部分的文档,而暂时不会被其他团队征召。于是计划BA一起完成测试用例的编写。从而1.4.1这个任务通过添加一个资源,从5人天变为了3人天。于是更新后的结构如下图:
首先,更改1.4.1 的工期,从5变为3。
然后,和前文的顺序一样,按照先后次序先更新各个任务的最早开始时间和最早结束时间。
然后,按照倒序顺序,更新各个人物的最晚结束时间和最晚开始时间。
最后,求得新的总时差。
值得注意的是,在更新了1.4.1的工时之后,项目的关键路径从原来的:
1.1.1 -》 1.4.1 -》 1.4.2 -》 1.4.3 - 》 1.5.2
变为了:
1.1.1 -》 1.2.1 -》 1.3.1 -》 1.4.3 - 》 1.5.2
这也是为什么 1.1.1 的最晚完成时间是3 而不是4.
现在我们再来看一下,项目任务中还存在很多负数。于是我们在做第二次调整。
这次我们直接添加一个测试,这样BA就不需要兼顾测试的工作,从而不影响第一次的变动。同时后两轮的测试由于有两个测试的存在,测试时间大大减少,分别由原来的5天变为了3天。于是,我们得到了第二次调整后的图如下:
首先,更改1.4.2和1.4.3的工期从5变为3
然后,和前文的顺序一样,按照先后次序先更新各个任务的最早开始时间和最早结束时间。
然后,按照倒序顺序,更新各个人物的最晚结束时间和最晚开始时间。
最后,求得新的总时差。
这次调整没有涉及到关机路径的变化。但是消除了所有任务的负数项。
自此,说明该项目计划合理。
现在我们回过头来看看总时差到底代表什么?
总时差 = 最晚开始时间 - 最早开始时间。
在项目关键路径不变的前提下,其实就是该任务的Buffer。
这也是为什么说,不是每一个任务的延迟都会造成项目的延迟。有些任务的延迟是可以通过其他时间来弥补的。
《二》用甘特图描述项目计划
用上述方法可以具体的描述项目计划以及任务与任务之间的关系。是项目经理必须掌握的一个技能。但是在做讲解的时候,很少看到以上类似的图表。
因为这类图表太过复杂,在做讲解的时候,观众,听众很难从那么大的信息量中抓到重点。所以该类图表都是作为项目经理自己安排项目计划时候用的。
那么像Kick off meeting之类的给团队讲解项目计划时用什么呢?
答案是甘特图。对于接收项目计划的听众来说,他们需要了解的是各个阶段的开始结束时间,以及项目的开始结束时间。所以只要使用甘特图,标识出各个阶段的开始结束时间即可。上图的项目计划,转化成甘特图如下:
从图中可以明确看到各个阶段任务的开始结束时间,以及整体项目的开始结束时间。而且该计划是基于最早开始时间确定的。这样做的好处是可以给自己的项目留有Buffer。
好了今天就先讲到这里。