关键路径中相关概念的解析
关键路径方法(Critical Path Method)应用于项目管理中,使用该方法可以计算出完成项目所需的最短时间,在理想情况下,至少需要这么长的时间才能完成该项目。关键路径由一系列关键节点组成,这些节点的有序排列构成了关键路径。
每个关键节点都是该项目中的其中一个任务,而每个任务包括 任务时长 ,关键路径的长度就是这些关键节点的长度的累加和,只要每个关键节点的长度是确定的,那么关键路径的长度就确定下来了。这意味着,关键路径中的任何一个任务如果出现拖延,也就是进行该任务的时长大于了预期的时长,那么就无法在预期时间范围内完成整个项目,也就是整个项目都要延期。 关键路径是一个一维序列,当该序列的最后一个任务完成的时候,整个项目就完成了。最后一个任务完成的时间就是项目的最早结束时间,早于该时间,项目无法 按照预期 完成。
关键节点和非关键节点的共有属性包括:
- 任务名称:也就是对某个具体任务的命名和标识,比如某某模块的测试、用户说明文档的编写……
- 任务最早开始时间:某些任务的开始时间取决于前面若干个任务的结束时间,只有它所以来的任务全部完成之后,该任务才可以开始,所以,任务的最早开始时间取决于它所依赖的任务的结束时间中最晚的哪一个,具体来讲,任务 A 需要等待任务 B 以及任务 C 完成之后才可以开始,B、C 分别于 3 月份和 4 月份完成,那么任务 A 的最早开始时间就是 MAX(3月,4月) = 4 月。
- 任务最早结束时间:最早结束时间取决于最早开始时间以及完成该任务本身所需的时间,具体来讲,任务 A 4 月份最早开始,完成任务 A 需要花费 5 个月的时间,那么任务 A 的最早结束时间是 9 月份,在 9 月份之前任务 A 无法完成。
- 任务最晚结束时间:该时间点取决于后续任务的最晚开始的最小值时间,关键路径中最后一个任务的最晚结束时间就是整个项目的最早结束时间。具体来讲,任务 A 最晚开始时间为 4 月,任务 B 最晚开始时间为 5 月,这两个任务都要在任务 C 完成之后才能开始,任务 C 最晚要在 4 月份完成,否则任务 A 的最晚开始时间要往后延迟,因为在任务 C 4 月份之后开始任务的情况下,就会出现于任务 A 同时开发的状况,而实际上 C 与 A 是依赖关系,双方不可能同时进行。
- 任务最晚开始时间:该时间取决于最晚结束时间,通过最晚结束时间减去任务本身所需的时间,就可以直接计算出任务的最晚开始时间。
木桶效应描述的是桶里的水取决于最短的木板的长度,而在项目开发路径中,项目开发所需的时间取决于那些最长的开发路径,如果最长的开发路径中所有的任务都完成了,那么其他的项目也一定完成了,并且极有可能是提前完成了,这个最长路径所需的时间,就是项目开发至少消耗的时间,同样也是关键路径的长度。
假设任务 A 的最早开始时间为 1 月份,最晚开始时间为 4 月份,这意味着,在 1 月到 4 月这段时间内任何一个时间点开始任务 A 的开发,都不会影响到项目的总开发时间。而有些任务,比如项目 B,它的最早开始时间和最晚开始时间都是 5 月份,这意味着当任务 B 前面的项目开发完成之后,就必须立刻开展任务 B 的开发,不能有任何延迟,一旦有延迟,就会拖慢整个项目的开发进度,使得项目的开发时间超出理想中的最短开发时长。在这里任务 A 和任务 B 分别是非关键节点以及关键节点。