大家好,又见面了,我是你们的朋友全栈君。
本章内容提要
1.软件项目进度管理概述
2.活动定义和排序
3.估算活动资源
4.活动历时估计
5.制定进度计划
6.进度控制(项目跟踪)
7.案例分析
第一节 软件项目进度管理概述
进度管理的重要性和复杂性
估算活动资源
项目进度管理的内容
- 项目进度管理就是要采用一定的方法对项目范围所包括的活动及其之间的相互关系进行分析,对各项活动所需要的时间进行估计,并在项目的时间期限内合理地安排和控制活动的开始和结束时间。项目进度管理在内容上可概括为以下6个主要部分。
- (1)活动定义(Activitydefinition):确定为完成各种项目可交付的成果所必须进行的各项具体活动。
- (2)活动排序(Activitysequencing):确定各项活动之间的依赖关系,并形成文档。
- (3)活动资源估计(Activityresource estimating):估算执行各项活动所需的人员、设备等资源的种类和数量。
- (4)活动历时估计(Activityduration estimating):估算完成单项活动所需要的时间长度。
- (5)制定进度计划(Scheduledevelopment):在分析活动顺序、活动持续时间和资源需求的基础上编制项目进度计划。
- (6)进度控制(Schedulecontrol)–项目跟踪:监督项目活动状态,控制项目进度计划的变化,保证项目按时完成。
第二节 活动定义和排序
- 完成每一个项目,无论项目的规模大小,都必须要完成一系列的具体工作,即活动。
- 活动定义就是要确定WBS工作分解结构中各工作包对项目团队的要求是什么,怎样工作才能取得该工作包所要求的成果。
- 活动定义的依据,主要包括工作分解结构、项目范围说明、历史信息以及相应的约束条件等方面的内容。活动的定义是在工作分解结构的基础上,进一步将工作包分解成更小的、更容易控制的、更具体的活动序列,从而确定实现项目目标所需要的全部活动。
活动定义的方法
- 活动定义的—般方法有活动分解法和参照模板法。
- 活动分解法是在WBS的基础上,将项目工作任务按照一定的层次结构逐步分解而成,以期分解成更小的、更容易控制的和更具体的活动,产生项目的活动清单。
- 参照模板法是将已经完成的类似项目的活动清单或者其中的一部分,作为一个新项目活动清单的参考模板,根据新项目的实际情况,在模板上调整项目活动,从而定义出新项目的所有活动。
活动定义的结果
- 当完成活动定义后,其输出的结果为活动清单。活动清单包括了整个项目将进行的所有活动,它是工作分解结构的必要扩充。
- 活动定义的关键是分解的活动清单完整而又不包括多余的活动,既能完成WBS中所定义的可交付成果,同时又能满足项目范围说明。
活动排序
- 项目各项活动之间存在相互联系与相互依赖关系,要根据这些关系对活动进行适当的顺序安排,以便在所有项目约束条件之下获得最高的项目工作执行效率。
- 活动排序前需要具备的条件包括:(1)活动清单;(2)产品描述;(3)项目的约束条件;(4)里程碑。
活动之间的关系
活动排序的依据
- 强制性依赖关系:工作任务中固有的依赖关系,它是因为客观规律和物质条件的限制造成的,又称硬逻辑关系。
- 软逻辑关系:由项目管理人员确定的项目活动之间的关系,它是一种根据主观判断去调整和确定的关系,也称指定性相关、偏好相关或软相关。
绘制网络图
- 网络图是活动排序的结果,它可以展示各项目活动之间的关系。通过网络图可识别关键活动,并确定某一活动进度的变化对后续工程和总工期的影响。
- 常用的网络图分为两种:
活动排序的结果
- (1)项目网络图。即项目活动及其相互关系的示意图。除此之外,还应当有对活动的简单描述、重要活动说明等。
- (2)更新的活动清单:在活动排序过程中,需要对活动之间的逻辑关系进行分析和确认,可能会对某些活动进行重新分解和定义,需要更改项目活动清单,甚至工作分解结构。
- 活动排序的结果是进度计划编制的基础。
第三节估算活动资源
- 估算活动资源的目的是明确完成活动所需的资源的种类、数量和性质,以便做出更准确的成本和持续时间估算。
- 对每项活动应该在什么时候使用多少资源必须有一些估算,即估计项目活动的资源需求以及能否按时、按量、按质提供,这对项目活动的历时估计具有直接的影响。
- 在估算资源需求情况时,需要了解在活动进行期间内哪些资源(如人力资源、设备等)可用、何时可用以及可用多久,这些信息通常记录在“资源日历”中。此外,还需要考虑更多的资源属性,如经验和技能水平、来源地等。
- 由于人力资源是软件项目最重要的资源,因此必须很好地了解每个人的可用性和时间限制,如时区、工作时间、休假时间、当地时间、当地节假日等。
- 在估算活动资源时,历史数据(特别是类似项目的活动资源需求情况)有重要的参考价值。
第四节 活动历时估计
- 活动历时估计就是在给定的资源条件下,估计完成每个活动所需花费的时间量,为制订进度计划过程提供主要输入。
- 估算活动持续时间的方法有多种,如专家判断、类比估算、三点估算、参数估算等。
专家判断
- 当实施的项目涉及新技术或不熟悉的领域时,项目管理人员由于不具备专业技能,一般来说很难做出合理的时间估算,这就需要借助特定领域专家的知识和经验。
- 通过借鉴历史信息,专家判断能提供持续时间估算所需的信息,或根据以往类似项目的经验,给出活动持续时间的上限。
- 专家判断也可用于决定是否需要联合使用多种估算方法,以及如何协调各种估算方法之间的差异。
类比估算
- 类比估算是通过与以往类似项目相类比得出估算。
- 为了使这种方法更为可靠和实用,作为类比对象的以往项目不仅在形式上要和新项目相似,而且在实质上也要非常趋同。
- 类比估算是一种粗略的估算方法,有时需要根据项目复杂性方面的已知差异进行调整。
- 在项目详细信息不足时(例如在项目初期),经常使用这种技术来估算项目持续时间。
三点估算
- 三点估算源于计划评审技术PERT(Program Evaluation and Review Technique)。
- 三点估算可以尽可能地降低单一估算所产生的误差,它采用三种估算值来界定活动持续时间的近似区间:
最可能时间——Tm:根据以往的经验,这项活动最有可能用多少时间完成。
最乐观时间——Ta:当一切条件都顺利时该项活动所需时间。
最悲观时间——Tb:在各项不利因素都发生的最不利条件下,该项活动需要的时间。
- 则活动持续时间的期望值Te的计算公式为:Te=(Ta+4*Tm+Tb)/6
- 例如:某项目有下图所示的PDM网络图
- 用三点估算得到的估计值有较大的不确定性,因此必须注意时间期望值的风险评估。
参数估算
- 参数估算是一种基于历史数据和项目参数,使用某种数学模型来计算成本或持续时间的估算技术。这种技术是利用历史数据之间的统计关系和其他变量(如活动的工作量),来估算诸如成本和持续时间等活动参数。
- 最简单的一种参数估算方法就是把需要实施的工作量(或规模)乘以完成单位工作量(或规模)所需的工时,即可计算出活动持续时间。
- 参数估算法需要积累历史数据,根据历史数据运用建模技术建立模型。许多由历史经验数据导出的参数估算模型的形式为:D=a×E^b,其中D是持续时间,E是工作量(通常用人月表示),a和b是依赖于项目自然属性的参数。
- 例如,Pubnam模型:D=2.4×E^(1/3)
基本COCOMO模型:D=2.5×E^b ,其中b是0.32~0.38之间的参数。
- 参数估算的准确性取决于参数估算模型的成熟度和历史数据的可靠性。
估计结果的不确定性
第五节 制定项目进度计划
- 确定项目中所有活动的开始和结束时间。
- 计划是三维的,考虑时间,费用和资源。
- 项目进度计划是监控项目实施的基础,它是项目管理的基准。所以有时也称项目核心计划。
制定项目进度计划的相关技术
1.进度编制
2.资源优化
3.进度压缩
进度编制的基本方法
- 甘特图法
- 关键路径法(正推法,逆推法)
- 关键链法
甘特图法
- 甘特图(Gantt chart )又叫横道图、条形图(Bar chart)。它通过活动列表和时间刻度形象地表示出任何特定项目的活动顺序与持续时间。
- 甘特图表示方法:横轴表示时间,纵轴表示活动,用横条表示活动的时间跨度,横条的左端表示活动的开始时间,右端表示活动的结束时间。实心横条表示实际进度,空心横条表示计划进度。
甘特图示例
- 有时为了所绘制的甘特图更加紧凑,用方向向上三角形表示开始时间,向下三角形表示结束时间,计划时间和实际时间分别用空心三角形和实心三角形表示。如此,一个活动只需要占用一行的空间。
甘特图的特点
- 可以方便地查看活动的工期、开始时间和结束时间以及资源的信息,可直观地表明实际进度和计划要求的对比,可用于详细的时间管理。
- 简单、直观、易于编制。
- 缺点:
a.活动之间的依赖关系没有表示出来。
b.进度计划的关键部分不明确,难于判断哪些部分应当是关键活动;不能反映某一项活动的进度变化对整个项目的影响。
c.难以进行定量的计算分析和计划的优化。
关键路径法(CPM:Critical Path Method)
- 根据指定的网络图逻辑关系和活动的历时估计,计算每一个活动的最早和最迟开始和完成时间。
- 计算活动的浮动时间。
- 计算网络图中最长的路径(关键路径)。
- 确定项目完成时间。
活动的时间参数
- 最早开始时间(Early Start)
- 最晚开始时间(Late Start)
- 最早完成时间(Early Finish)
- 最晚完成时间(Late Finish)
- 超前(Lead):两个活动的逻辑关系所允许的提前后置活动的时间。
- 滞后(Lag):两个活动的逻辑关系所允许的推迟后置活动的时间。
- 浮动时间(Float)是一个活动的机动性,它是一个活动在不影响其它活动或者项目完成的情况下可以延迟的时间量。
- 自由浮动(Free Float, FF):在不影响其所有后置活动最早开始时间的情况下本活动可以延迟的时间。FF=min(TI), min 表示取最小值,TI的含义为:
TI=后置活动的ES-本活动的EF-Lag
- 总浮动(Total Float,TF):在不影响项目最早完成时间的情况下本活动可以延迟的时间。
TF=LS-ES或TF=LF-EF。
关键路径(Critical Path)
- 如果活动的总浮动时间为0,则称之为关键活动,网络图中由代表关键活动的结点组成的路径,称为关键路径。
- 关键路径决定了项目完成的最短时间。
- 网络图中最长的路径。
- 由于关键路径上的活动总浮动时间为0,关键路径上的任何活动延迟,都会导致整个项目完成时间的延迟。
关键路径的简单示例
关键路径的其它说明
- 明确关键路径后,可以合理安排进度,调配资源。对非关键路径上的活动进行调整,合理利用它们的浮动时间,往往可以安排出既节省资源又不影响项目完工时间的进度表。
- 关键路径可能不止一条,在项目的进行过程中,关键路径可能会改变。
正推法(Forward pass)
按照时间顺序来计算路径中每项活动的最早开始时间和最早完成时间。
- 建立项目的开始时间。
- 项目的开始时间就是网络图中第一个活动的最早开始时间。
- 按网络图从左到右,从上到下的顺序进行计算。所用公式为:
ES+Duration=EF
EF+Lag=ESs 或 EF-Lead=ESs
- 当一个活动有多个前置活动时,选择其中最大的最早完成时间(加上Lag或减去Lead)作为其后置任务的最早开始时间。
正推法举例
逆推法(Backward pass)
按照逆时间顺序计算路径中每项活动的最晚开始时间和最晚完成时间。
- 首先建立项目的结束时间。
- 项目的结束时间就是网络图中最后一个活动的最晚完成时间。
- 从右到左,从上到下进行计算。所用公式为:
LF-Duration=LS
LS-Lag=LFp或LS+Lead=LFp
- 当一个任务有多个后置任务时,选择其中最小的最晚开始时间(减去Lag或加上Lead)作为其前置任务的最晚完成时间。
关键链法
- 关键链法(Critical Chain Method, CCM)是由美国管理学专家艾利.高德拉特(Eli Goldratt)提出的一种项目管理方法。该方法自1997年提出后,在实际应用中取得很大成功。
- 关键链法建立在关键路径法基础之上,它对关键路径法做了几方面的改进。
关键链法对关键路径法的改进
- (1)关键路径法是在不考虑任何资源限制的情况下,在给定活动持续时间和逻辑关系的条件下,分析项目的关键路径,而关键链法考虑了资源限制对项目活动逻辑关系及关键路径的影响。
- (2)关键链法引入了缓冲和缓冲管理来应对项目的不确定性。
- (3)关键链法考虑了人的心理行为因素和工作习惯对进度的影响,因为人是项目实施的主体,是项目最关键的资源。
关键链法考虑了资源约束
- 关键链法是一种根据有限的资源来调整项目进度计划的进度网络分析技术。首先,根据持续时间估算和给定的依赖关系绘制项目进度网络图;然后,计算关键路径。在确定了关键路径之后,再考虑资源的可用性,制定出资源约束型进度计划,该进度计划中的关键路径常与原先的不同。资源约束型关键路径就是关键链。
- 假设活动C和活动E需要同一资源,例如需要同一个人来执行,而一个人一次只能执行一个活动,那么活动C和活动E就不能并行执行。因此,在考虑资源约束的情况下,A-D-E-C-F就构成了项目的关键链(如图中虚线所示) 。
- 关键链法增加了持续时间缓冲来应对不确定性。项目缓冲(Project Buffer)用来保证项目不因关键链的延误而延误,汇入缓冲(Feeding Buffer)用来保护关键链不受非关键链延误的影响。
关键链法的缓冲
- 应该根据相应活动链的持续时间的不确定性,来决定每个缓冲时段的长短。
- 如果一些活动不能在计划时间内完成,缓冲时间就会被占用。在项目实施过程中,要监控缓冲时间被占用的情况。
- 可建立一种预警机制,例如当缓冲时间被占用三分之一时,发出预警信号,被占用三分之二时,要立即采取纠正措施。
帕金森定律
- 关键链法的理论依据之一是“帕金森定律”。帕金森定律是指:工作总是拖延到它所能够允许最迟完成的那一天。
- 在项目实践中,人们在估算一项活动的持续时间时,为保证活动能按时完成,总是习惯于安排一定的时间浮动和安全裕量,那么根据帕金森定律,在执行活动时,往往会推迟到它所允许的最后一天为止,这一期间整个工作就没有充分发挥它的效率,造成了资源和时间的浪费,而且很容易导致项目工期的推迟。
- 关键链法要求在进行项目估算的时候,把个人估算当中的一些隐藏的裕量剔除,把富余的时间压缩出来,作为缓冲,成为项目管理的一个公共资源统一调度、统一使用,使备用的资源有效运用到真正需要它的地方,这样就可以大大缩短原来项目的工期。
资源优化
- 资源优化就是根据资源供需情况,来调整进度计划。在制定项目进度计划的过程中,项目管理人员需要对有限的资源进行优化,否则可能会造成高成本的项目活动实施和项目延迟,或造成资源的过度使用或闲置。
- 为了在资源需求和资源供给之间取得平衡,有时需要根据资源制约对活动的开始时间和结束时间进行调整。
- 资源优化需要充分利用非关键活动的自由浮动和总浮动时间,但有时也不得不改变关键路径,从而影响项目的总工期。
资源调整尝试法
- 通过调整进度计划,形成平稳连续的资源需求
(1)最有效地利用资源
(2)使资源闲置的时间最小化
(3)尽量避免超出资源能力
- 方法
(1)维持工期不变,使资源的使用强度尽可能平衡。
(2)在满足资源约束条件下使工期最短。
资源调整尝试法举例
怎样调整进度使人力资源配置最优化?
进度压缩
进度压缩是指在不缩减项目范围的前提下,缩短进度工期,以满足进度制约因素、强制日期或其他进度目标。
- 应急法–赶工(Crash)
- 平行作业法–快速跟进(Fast tracking:搭接)
应急法-赶工(Crash)
- 赶工也称为时间-成本平衡方法。
- 在尽可能限制成本增加的前提下,压缩关键路径上的关键活动的持续时间,从而达到缩短整个项目工期的目的。
- 赶工的例子包括:加班、增加额外资源或支付加急费用,来加快关键路径上的活动。
计算进度压缩产生的费用增长
- 进度压缩单位成本方法:进度压缩与费用增长呈线性关系
- Charles Symons方法 随着进度压缩的增加,费用迅速上涨。
进度压缩单位成本方法
- 进度压缩单位成本=(压缩成本-正常成本)/(正常进度-压缩进度)
- 例如:
任务A:正常进度7周,成本5万;压缩到5周的成本是6.2万
进度压缩单位成本=(6.2-5)/(7-5)=6000元/周
如果压缩到6周的成本是:5.6万
进度压缩例题
- 下图给出了各个任务可以压缩的最大限度和压缩成本,请问如果将工期压缩到17,16,15周时应该压缩哪些活动?最后的成本是多少?
- 各活动的进度压缩单位成本计算结果如下:
- 将工期压缩到17周时应该压缩的活动和最后的成本?
- 将工期压缩到16周时应该压缩的活动和最后的成本?
- 将工期压缩到15周时应该压缩的活动和最后的成本?
赶工时间与赶工成本关系图
关于进度的一些说明
- 项目存在一个可能的最短进度和一个有效进度
Charles Symons方法
- 进度压缩因子=压缩进度/正常进度
- 压缩进度的工作量=正常工作量/进度压缩因子
- 例如:
初始进度估算是12个月,初始工作量估算是78人月,
如果进度压缩到10月,进度压缩因子= 10/12=0.83,
则进度压缩后的工作量是:78/ 0.83=94人月
总结:进度缩短17%,增加21%的工作量
- 研究表明:进度压缩因子应该不小于0.75,即进度最多可以压缩25%。
平行作业法-快速跟进(Fast tracking,搭接)
- 尽量多地并行开展某些活动。
活动拆分
快速跟进的特点
- 应用项目的快速跟进方法,在可能的条件下及时启动相关工作并进行交叉作业,可以有效缩短项目的持续时间,加速项目进程。
- 但这种方法会对项目的有效管理提出更高的要求,同时会增加项目实施过程中的风险。
项目进度计划案例分析
- 案例场景
小张是某公司的技术总监,最近接到公司总裁的指令,负责开发一个电子商务平台。小张组织人员粗略地估算该项目在正常速度和压缩进度下需花费的时间和成本。由于公司业务发展需要,公司总裁急于建立电子商务平台,因此要求小张准备一份关于尽快启动电子商务平台项目的时间和成本的估算报告。
在第一次项目团队会议上,项目团队确定了该项目的主要任务,具体内容如下:
第一项任务是调研现有电子商务平台,按照正常进度估算完成这项任务需要花10天,成本为15000元。但如果使用允许的最多加班工作量,则可在7天、18750元的条件下完成。
一旦完成调研任务,就需要向最高管理层提交项目计划和项目定义文件,以便获得批准。项目团队估算完成这项任务按正常速度为5天,成本3750元,如果加班赶工,可在3天内完成,成本为4500元。
当项目团队获得管理层批准后,各项工作就
可展开。项目团队估计需求分析和设计需要15天,成本为45000元,如果加班则为10天,成本58500元。
设计完成后,有三项任务必须同时进行:1.开发电子商务平台数据库;2.开发和编写网页代码;3.开发和编写电子商务平台表格码。估计数据库的开发在不加班的情况下需10天,成本9000元,如果加班则可在7天和成本为11250元的情况下完成。同样,项目团队估算在不加班的情况下,开发和编写网页代码需要10天和17500元,如果加班则可以减少两天,成本为19500元。开发表格码工作分包给别的公司,
需要7天,成本为8400元,承包该工作的公司没有提供加班赶工的方案。
最后,整个电子商务平台需要进行测试和修改,项目团队估算需要3天,成本4500元。如果加班的话,则可减少一天,成本为6750元。
- 问题1:如果不加班,完成此项目的成本和时间是多少?如果考虑加班,项目可以完成的最短时间及花费的成本是多少?
- 问题2:假定公司总裁想在35天内完成项目,小张将采取什么有效措施来达到期限要求并使所花费的成本尽量少?
- 案例分析
首先要对该项目的活动进行编号和排序。根据案例描述,该项目共有7项主要活动,如下表所示:
- 根据案例描述,绘制出该项目的网络图:
- 对问题1的分析:
正常进度:关键路径为A→B → C → D(或E) →G
总历时为43天,总经费为103150元
加班:关键路径为A→B → C → E →G,总历时为30天
总经费为126900元
- 对问题2的分析:
第六节 进度控制(项目跟踪)
- 进度控制就是指监督项目活动的状态,发现实际进度与计划进度的偏离,分析发生偏离的原因和程度,评估这些偏差对未来工作的影响,并决定是否采取纠正或预防措施。
产生进度偏差的原因
- (1)项目环境和用户需求的不断变化。
- (2)任务本身的估算问题。任务工作量的估算不合理,没有考虑工作中存在的技术难点、项目成员的技能,以及其他风险因素。
- (3)任务本身的粒度问题。任务的粒度和工作量直接和进度偏差的大小相关。当任务的粒度太大时是不适宜进行跟踪的。细粒度的跟踪可尽可能早地发现任务中的问题,消除不确定性因素和风险。
常用的进度控制技术
- (1)进度偏差分析。这种技术是将项目实际进度和进度基准计划利用图形的形式直观地进行比较分析。例如在甘特图上可以用不同颜色的横道线来表示计划和实际进度,可以非常直观地看到进度偏差。
- (2)关键路径法中的进度分析。通过比较关键路径的进展情况来确定进度状态。关键路径上的差异将对项目的结束日期产生直接影响。评估非关键路径上的活动的进展情况,也有助于识别进度风险。
- (3)关键链法中的进度分析。比较剩余缓冲时间与所需缓冲时间,有助于确定进度状态。是否需要采取纠正措施,取决于所需缓冲与剩余缓冲之间的差值大小。
- (4)挣值管理。采用进度绩效测量指标,如进度偏差(SV)和进度绩效指数(SPI),评价偏离初始进度基准计划的程度。有关挣值管理,请参见第5章的内容。
- (5)项目管理软件。可借助项目管理软件,对照进度计划,跟踪项目执行的实际日期,报告与进度基准相比的差异和进展,并预测各种变更对项目进度模型的影响。
项目进度计划变更
- 当项目的实际进度与计划进度之间的偏差超过了一定程度,对项目进度计划的总目标或后续工作产生影响时,就要根据项目实施的现有条件和约束,对项目进度计划加以变更,以保证进度目标的实现。
- 项目进度计划变更会对项目进度产生如下一些影响:
- (1)项目活动的增加和删除;
- (2)项目活动的重新排序;
- (3)项目活动持续时间估算的变更或者项目要求完工时间的更新;
- (4)项目活动时间属性的重新计算;
- (5)资源(人力、物力、资金)的重新分配。
- 项目进度计划的变更通常要遵循一定的变更控制流程(参见第7章):
- 首先要提出变更申请,然后由项目管理人员和相关项目干系人对变更进行评估,经过客户方及上级管理部门的确认和批准后,对项目进度计划进行修改。
案例分析
- “软件缺陷管理和度量系统”进度计划
本章内容小结
- 理解什么是项目进度管理及其主要内容。
- 了解活动定义的主要方法。
- 理解活动之间的逻辑关系和PDM网络图的画法,了解ADM网络图。
- 了解活动资源的估算。
- 掌握估算活动持续时间的专家判断和类比估算法,了解三点估算和参数估算法。
- 掌握制订进度计划的甘特图法和关键路径法,了解关键链法。
- 理解制订进度计划时的资源优化和进度压缩方法。
- 了解常用的进度控制技术。
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/144042.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...