软考高项考点:项目进度管理的技术和工具
一、工作量和工期估计
1、软件开发项目通常用LOC衡量项目规模,LOC指所有的可执行的源代码行数。
例如,某软件公司统计发现该公司每一万行C语言源代码形成的源文件约为250KB。某项目的源文件大小为3.75MB,则可估计该项目源代码大约为15万行,该项目累计投入工作量为240人月,每人月费用为10000元(包括人均工资、福利、办公费用公摊等),则该项目中1LOC的价值为:
(240X10000)/150000=16元/L0C
该项目的人月均代码行数为:
150000/24=625LOC/人月
2、项目工作量和工期的估计,通常有以下几种方法
(1)Delphi法进度管理。
(2)类比估算法:类比估算法适合评估一些与历史项目在应用领域,环境和复杂度等方面相似的项目,通过新项目与历史项目的比较得到规模估计。由于类比估算法估计结果的精度取决于历史项目数据的完整性和准确度。软件项目中用类比估算法,往往还要解决可重用代码的估算问题。可用下面的计算公式计算等价新代码行:
等价代码行=【(重新设计百分比+重新编码百分比+重新测试百分比)/3】X已有代码行
比如:有10000行代码,假定30%需要重新设计,50%需要重新编码,70%需要重新测试,那么其等价的代码行可以计算为:
【(30%+50%+70%)/3】x10000=5000等价代码行
即重用这10000代码相当于编写5000代码行的工作量。
(3)参数估算法:参数估算是一种基于历史数据和项目参数,使用某种算法来计算成本或工期)的估算技术,准确性取决于参数模型的成熟度加基础数据的可靠性。参数估算可以针对整个项目或项目中的某个部分,并可与其他估算方法联合使用。
(4)储备分析:在进行工作量或者工期估算时,需考虑应急储备(有时称为时间储备或缓冲时间),并将其纳入项目进度计划中,用来应对进度方面的不确定性。应急储备是包含在进度基准中的一段持续时间,与“已知-未知”风险相关。也可以估算项目所需要的管理储备。管理储备是为管理控制的目的而特别留出的项目时段,用来应对项目范围中不可预见的工作。管理储备用来应对会影响项目的“未知-未知”风险。管理储备不包括在进度基准中,但属于项目总持续时间的一部分。依据合同条款,使用管理储备可能需要变更进度基准。
二、项目活动排列顺序的技术和工具
1、确定依赖关系:活动之间的依赖关系可能是强制性的或选择性的,内部或外部的。
(1)强制性依赖关系。强制性依赖关系是法律或合同要求的或工作的内在性质决定的依赖关系
(2)选择性依赖关系。选择性依赖关系有时又称首选逻辑关系、优先逻辑关系或软逻辑关系。
(3)外部依赖关系。外部依赖关系是项目活动与非项目活动之间的依赖关系。这些依赖关系往往不在项目团队的控制范围内。例如,软件项目的测试活动取决于外部硬件的到货。
(4)内部依赖关系。内部依赖关系是项目活动之间的紧前关系,通常在项目团队的控制之中。例如,只有机器组装完毕,团队才能对其测试,这是一个内部的强制性依赖关系。
2、前导图法前导图法也称紧前关系绘图法,是用于编制项目进度网络图的一种方法,它使用方框或者长方形,(被称作节点)代表活动,节点之间用箭头连接,以显示节点之间的逻辑关系。这种网络图也被称作单代号网络图。
前导图法包括活动之间存在的4种类型的依赖关系
(1)结束-开始的关系(F-S型)
(2)结束-结束的关系(F-F型)
(3)开始-开始的关系(S-S型)
(4)开始-结束的关系(S-F型)
通常,每个节点的活动会有如下几个时间:
(1)最早开始时间(ES),某项活动能够开始的最早时间。
(2)最早结束时间(EF),某项活动能够完成的最早时间。
EF=ES+工期
(3)最迟结束时间(LF)。为了使项目按时完成,某项活动必须完成的最迟时间。
(4)最迟开始时间(LS)。为了使项目按时完成,某项活动必须开始的最迟时间。
LS=LF-工期
这几个时间通常作为每个节点的组成部分,如图所示。
3、箭线图法与前导图法不同,箭线图法是用箭线表示活动、节点表示事件的一种网络图绘制方法。这种网络图也被称作双代号网络图,在箭线图法中,活动的开始(箭尾)事件叫作该活动的紧前事件,活动的结束(箭头)事件叫该活动的紧后事件。
在箭线图法中,有如下三个基本原则。
(1)网络图中每一活动和每一事件都必须有唯一的一个代号,即网络图中不会有相同的代号。
(2)任两项活动的紧前事件和紧后事件代号至少有一个不相同,节点代号沿箭线方向越来越大
(3)流入(流出)同一节点的活动,均有共同的的紧后活动(或紧前活动)。
为了绘图的方便,在箭线图中又人为引入了一种额外的、特殊的活动,叫作虚活动,在网络图中由一个虚箭线表示。虚活动不消耗时间,也不消耗资源,只是为了弥补箭线图在表达活动依赖关系方面的不足。借助虚活动,我们可以更好地、更清楚地表达活动之间的关系
4、提前量与滞后量:在活动之间加入时间提前量与滞后量,可以更准确地表达活动之间的逻辑关系。
三、制订项目进度计划的工具和技术
1.制订项目计划步骤
(1)项目描述。项目描述是用一定的形式列出项目目标、项目的范围、项目如何执行、项目完成计划等内容,是制订项目计划和绘制工作分解结构图的依据。
(2)项目分解与活动界定。为了便于制订项目各具体领域和整体计划,需将项目及其主要可交付成果分解成一些较小的,更易管理和单独完成的部分。项目分解是编制项目进度计划,进行进度管理的基础。
(3)工作描述。在项目分解的基础上,为了更明确地描述项目所包含的各项工作的具体内容和要求,需要对工作进行描述。
(4)项目组织和工作责任分配。
(5)工作排序。进度管理。
(6)计算工作量
(7)估计工作持续时间。
(8)绘制网络图
(9)进度安排
2、关键路径法
最早开始时间和最晚开始时间相等的活动称为关键活动,关键活动串联起来的路径成为关键路径。进度网络图中可能有多条关键路径。在项目进展过程中,有的活动会提前完成,有的活动会推迟完成,有的活动会中途取消,新的活动可能会被中途加入,网络图在不断变化,关键路径也在不断变化之中。
在不延误项目完工时间且不违反进度制约因素的前提下,活动可以从最早开始时间推迟或拖延的,时间量,就是该活动的进度灵活性,被称为“总浮动时间”。正常情况下,关键活动的总浮动时间为零。
“自由浮动时间”是指在不延误任何紧后活动的最早开始时间且不违反进度制约因素的前提下,活动可以从最早开始时间推迟或拖延的时间量。
关键路径是项目中时间最长的活动顺序,决定着可能的项目最短工期。
3、关键链法
关键链法(CCM)是一种进度规划方法,允许项目团队在任何项目进度路径上设置缓冲,以应对资源限制和项目的不确定性。这种方法建立在关键路径法之上,考虑了资源分配、资源优化、资源平衡和活动历时不确定性对关键路径的影响。
关键链法增加了作为“非工作活动”的持续时间缓冲,用来应对不确定性。如图所示,放置在关键链末端的缓冲称为项目缓冲,用来保证项目不因关键链的延误而延误。其他缓冲,即接驳缓冲,则放置在非关键链与关键链的接合点,用来保护关键链不受非关键链延误的影响。应该根据相应活动链的持续时间的不确定性,来决定每个缓冲时段的长短。一旦确定了“缓冲活动”,就可以按可能的最迟开始与最迟完成日期来安排计划活动。这样一来,关键链法不再管理网络路径的总浮动时间,而是重点管理剩余的缓冲持续时间与剩余的活动链持续时间之间的匹配关系。
4、资源优化技术
资源优化技术是根据资源供需情况,来调整进度模型的技术,包括(但不限于):
(1)资源平衡,为了在资源需求与资源供给之间取得平衡,根据资源制约对开始日期和结束日期进行调整的一种技术。如果共享资源或关键资源只在特定时间可用,数量有限,或被过度分配,如一个资源在同一时段内被分配至两个或多个活动;就需要进行资源平衡。也可以为保持资源使用量处于均衡水平而进行资源平衡。资源平衡往往导致关键路径改变,通常是延长。
(2)资源平滑,对进度模型中的活动进行调整,从而使项目资源需求不超过预定的资源限制的一种技术。相对于资源平衡而言,资源平滑不会改变项目关键路径,完工日期也不会延迟。也就是说,活动只在其自由浮动时间和总浮动时间内延迟。因此,资源平滑技术可能无法实现所有资源的优化。
5、进度压缩
进度压缩技术是指在不缩减项目范围的前提下,缩短进度工期,以满足进度制约因素、强制日期或其他进度目标。进度压缩技术包括(但不限于):
(1)赶工。通过增加资源,以最小的成本增加来压缩进度工期的一种技术。
(2)快速跟进。将正常情况下按顺序进行的活动按顺序进行的阶段改为至少是部分并行开展。快速跟进可能造成返工和风险增加。它只适用于能够通过并行活动来缩短项目工期的情况。
6、计划评审技术
计划评审技术(PERT),又称为三点估算技术。
四、项目进度计划调整方法
1、分析进度度偏差
当项目进度出现偏差时,应分析该偏差对后续工作及总工期的影响。
(1)分析产生进度偏差的工作是否为关键活动。若出现偏差的工作是关键活动,则无论其偏差的大小,对后续工作及总工期都会产生影响,必须进行进度计划更新;若出现偏差的工作为非关键活动,则根据偏差值与总时差和自由时差的大小关系,确定其对后续工作和总工期的影响程度。
(2)分析进度偏差是否大于总时差。如果工作的进度偏差大于总时差,则必将影响后续工作和总工期,应采取相应的调整措施;若工作的进度偏差小于或等于该工作的总吋差,则表明对总工期无影响;但其对后续工作的影响,需要将其偏差与其自由时差相比才能做出判断。
(3)分析进度偏差是否大于自由时差。如果工作的进度偏差大于该工作的自由时差,则会对后续工作产生影响。如何调整,应根据对后续工作影响程度而定;若工作的进度偏差小于或等于该工作的自由时差,则对后续工作无影响,进度计划可不进行调整更新。
2、项目进度计划的调整
项目进度计划的调整往往是一个持续反复的过程,一般有以下几种方法:
(1)关键活动调整法。关键活动调整方法的原理来自关键路径法。在项目计划图中,关键路径上的活动没有机动时间。由于其中任一工作持续时间的缩短或延长都会对整个项目工期产生影响。因此,关键活动的调整是项目进度更新的重点。有以下两种情况。
1)关键活动的实际进度较计划进度提前。若仅要求按计划工期执行,则可利用该机会降低资源强度及费用。实现的方法是选择后续关键活动中资源消耗量大或直接费用高的予以适当延长,延长的时间不应超过已完成的关键活动提前的量;若要求缩短工期,则应将计划的未完成部分作为一个新的计划,重新计算与调整,按新的计划执行,并保证新的关键活动按新计算的时间完成。
2)关键活动的实际进度较计划进度落后。调整的目标就是釆取措施将耽误的时间补回来,保证项目按期完成。调整的方法主要是缩短后续关键活动的持续时间。这种方法是指在原计划的基础上,釆取组织措施或技术措施缩短后续工作的持续时间以弥补时间损失,确保总工期不延长。
(2)非关键活动调整法。当非关键路径上某项工作持续时间延长,但不超过其时差范围时,则不会影响项目工期,进度计划不必调整。为了更充分地利用资源,降低成本,必要时可对非关键活动时差做适当调整,但不得超出总时差,且每次调整均需进行时间参数计算,以观察每次调整对计划的影响。
非关键活动的调整方法有三种:在总时差范围内延长非关键活动的持续时间、缩短工作的持续时间、调整工作的开始或完成时间。当非关键线路上某项工作持续时间延长而超出总时差范围时,则必然影响整个项目工期,关键路径就会转移。这时,其调整方法与关键线路的调整方法相同。
(3)增减工作项目法。由于编制计划时考虑不同,或因某些原因需要增加或取消某些工作,则需重新调整网络计划,计算网络参数。由于增减工作项目不应影响原计划总的逻辑关系,以便使原计划得以实施。因此,增减工作项目,只能改变局部的逻辑关系。
增加工作项目,只对原遗漏或不具体的逻辑关系进行补充:减少工作项目,只对提前完成的工作项目或原不应设置的工作项目予以消除。增减工作项目后,应重新计算网络时间参数,以分析此项调整是否对原计划工期产生影响,若有影响,应采取措施使之保持不变。
(4)资源调整法。若资源供应发生异常时,应进行资源调整。资源供应发生异常是指因供应满足不了需要,如资源强度降低或中断,影响到计划工期的实现。资源调整的前提是保证工期不变或使工期更加合理。资源调整的方法是进行资源优化。