1、软件项目管理软件项目管理1第第3章章 项目计划项目计划项目计划项目计划1项目计划的内容项目计划的内容2项目计划的方法项目计划的方法3有效完成项目计划有效完成项目计划4计划各项内容的制定计划各项内容的制定5项目计划工具项目计划工具6软件项目管理软件项目管理2肖申克的救赎肖申克的救赎 书上的故事书上的故事软件项目管理软件项目管理3看过看过越狱越狱吗?吗?知道知道Michael的计划么?的计划么?软件项目管理软件项目管理4有些事情现在不有些事情现在不做,一辈子也不做,一辈子也不会去做了。会去做了。搭车去柏林搭车去柏林 软件项目管理软件项目管理5在在0909夏天,他们一路只依靠陌生人的帮助,搭车夏天,
2、他们一路只依靠陌生人的帮助,搭车8888次,被次,被10001000多个司机拒绝过。经过多个司机拒绝过。经过1 1万万6 6千多公里、千多公里、1313个国家,穿个国家,穿越中国、中亚和欧洲,直到柏林。在那里等待他们的就是越中国、中亚和欧洲,直到柏林。在那里等待他们的就是谷岳的女友伊卡。谷岳的女友伊卡。软件项目管理软件项目管理625辆顺风车,途,途经7省,省,3700公里,从南京到公里,从南京到乌鲁木木齐。从。从2010年年12月月25日到日到今年今年1月月6日,日,南京师范大学南京师范大学电气自动化专业的大四学生电气自动化专业的大四学生胡蓓蕾胡蓓蕾历时13天,用免天,用免费搭搭顺风车的方式,
3、完成了回家的方式,完成了回家之旅。之旅。软件项目管理软件项目管理73.1 项目计划项目计划v计划计划事先确定项目的目标和实现目标所需要的原则、方法、步事先确定项目的目标和实现目标所需要的原则、方法、步骤和手段等完整方案的管理活动骤和手段等完整方案的管理活动v软件项目计划软件项目计划Software Project Planning目的是制定一套软件项目实施及管理的解决方案目的是制定一套软件项目实施及管理的解决方案主要工作包括确定详细的项目实施范围、定义递交的工作主要工作包括确定详细的项目实施范围、定义递交的工作成果、评估实施过程中主要的风险、制定项目实施的成果、评估实施过程中主要的风险、制定项
4、目实施的(时时间间)进度计划、成本和预算计划、人力资源计划等进度计划、成本和预算计划、人力资源计划等软件项目管理软件项目管理8软件项目管理软件项目管理9v软件项目计划的作用软件项目计划的作用指导软件项目实施指导软件项目实施得到项目相关干系人的承诺得到项目相关干系人的承诺获得资源的承诺获得资源的承诺明确项目人员的分工和工作责任明确项目人员的分工和工作责任及早了解项目存在的问题和风险及早了解项目存在的问题和风险获得组织在项目预算上的承诺获得组织在项目预算上的承诺是软件项目实施结果评估的依据是软件项目实施结果评估的依据软件项目实施过程的文档化软件项目实施过程的文档化软件项目管理软件项目管理103.2
5、 项目计划的内容项目计划的内容v项目计划的内容项目计划的内容目标目标策略策略流程流程标准标准质量质量进度安排进度安排预算预算资源资源风险风险配置管理配置管理软件项目管理软件项目管理11v项目计划内容及其关系项目计划内容及其关系软件项目管理软件项目管理12v项目计划主要内容说明项目计划主要内容说明目标与范围目标与范围范围规划、定义及其任务工作分解结构范围规划、定义及其任务工作分解结构 项目估算项目估算采用恰当的评估技术,完成资源估算、活动持续时间估算以及费采用恰当的评估技术,完成资源估算、活动持续时间估算以及费用估算用估算 风险风险一般性风险和特定产品的风险都应该被系统化地标识出来,并建一般性风
6、险和特定产品的风险都应该被系统化地标识出来,并建立风险条目检查表立风险条目检查表 资源资源 人员、硬件、网络、软件等需求和安排,还包括项目组成员的角人员、硬件、网络、软件等需求和安排,还包括项目组成员的角色、责任和具体分配的任务色、责任和具体分配的任务 软件项目管理软件项目管理13进度安排进度安排任务排序、里程碑设置等任务排序、里程碑设置等 跟踪和控制机制跟踪和控制机制QA、变更控制、项目成员报告等、变更控制、项目成员报告等软件项目管理软件项目管理14v项目计划输出文档项目计划输出文档软件项目管理软件项目管理15吴永达吴永达项目管理目管理计划划范围管理计划进度管理计划成本管理计划风险管理计划采
7、购管理计划沟通管理计划质量管理计划人员配置管理计划里程碑清单过程改进计划成本基准质量基准范围基准资源日历进度基准风险登记册软件项目管理软件项目管理163.3 项目计划的方法项目计划的方法v滚动计划方法滚动计划方法一种动态编制计划的方法,按照一种动态编制计划的方法,按照“近细远粗近细远粗”的原则制定的原则制定一定时期内的计划,然后按照计划的执行情况和环境变化,一定时期内的计划,然后按照计划的执行情况和环境变化,调整和修订未来的计划,并逐期向后移动,把短期计划和调整和修订未来的计划,并逐期向后移动,把短期计划和中期计划结合起来的一种计划方法。中期计划结合起来的一种计划方法。软件项目管理软件项目管理
8、17滚动计划方法的要点滚动计划方法的要点分而治之分而治之分为多个阶段,针对不同的阶段制定不同的计划分为多个阶段,针对不同的阶段制定不同的计划逐步求精逐步求精随着时间的推移,预测计划逐步变成实施计划随着时间的推移,预测计划逐步变成实施计划动态规划动态规划以计划的以计划的“变变(调整调整)”来主动适应用户需求和软件开发环境的变化,来主动适应用户需求和软件开发环境的变化,即即“以变应变以变应变”和谐过渡和谐过渡可以解决生产的连续性与计划的阶段性之间的矛盾可以解决生产的连续性与计划的阶段性之间的矛盾软件项目管理软件项目管理18滚动计划方法的实施滚动计划方法的实施流程流程软件项目的开发生命周期总体计划软
9、件项目的开发生命周期总体计划详细计划详细计划较粗的计划较粗的计划没有计划没有计划需求分析需求分析设计设计编程编程测试测试部署部署软件项目管理软件项目管理19vWBS方法方法是是Work Breakdown Structure工作分解结构,一种将复工作分解结构,一种将复杂的问题分解为简单的问题,然后再根据分解的结果进行杂的问题分解为简单的问题,然后再根据分解的结果进行计划的方法。计划的方法。其目的是:其目的是:关注项目目标和澄清职责,并防止遗漏项目的可交付成果关注项目目标和澄清职责,并防止遗漏项目的可交付成果建立可视化的项目可交付成果,以便估算工作量和分配工作建立可视化的项目可交付成果,以便估算
10、工作量和分配工作改进时间、成本和资源估计的准确度改进时间、成本和资源估计的准确度为绩效测量和项目控制定义一个基准,容易获得项目人员的承诺为绩效测量和项目控制定义一个基准,容易获得项目人员的承诺辅助分析项目的最初风险、沟通清晰的工作责任辅助分析项目的最初风险、沟通清晰的工作责任为其他项目计划的制定建立框架或依据为其他项目计划的制定建立框架或依据 软件项目管理软件项目管理20WBS的要求和原则的要求和原则某项具体的任务应该在一个工作包且只能在一个工作包中出现某项具体的任务应该在一个工作包且只能在一个工作包中出现WBS中某项任务的内容是其下所有中某项任务的内容是其下所有WBS项的总和项的总和一个工作
11、包只能由一个人负责一个工作包只能由一个人负责任务的分解,尽量与实际执行方式保持一致。任务的分解,尽量与实际执行方式保持一致。分解合理,具有良好的稳定性和适应性分解合理,具有良好的稳定性和适应性鼓励项目团队成员积极参与创建鼓励项目团队成员积极参与创建WBS所有成果需要文档化所有成果需要文档化软件项目管理软件项目管理21WBS分解目的:便于控制分解目的:便于控制分解的程度:能够可靠的估算工作费用和持续时间,分解的程度:能够可靠的估算工作费用和持续时间,IT行行业惯例业惯例80小时即可小时即可分解的步骤:分解的步骤:1、识别可交付成果和工作、识别可交付成果和工作2、确定分解结构、确定分解结构3、将上
12、层分解为下层、将上层分解为下层4、分配标识号、分配标识号5、核实工作分解的程度是否必要而又足够、核实工作分解的程度是否必要而又足够不能分解:很远的将来要完成的成果不能分解:很远的将来要完成的成果软件项目管理软件项目管理22创建创建WBS的方法的方法自上而下自上而下(最常用最常用)从项目目标开始,逐级分解项目工作,直到可以将项目工作定义在从项目目标开始,逐级分解项目工作,直到可以将项目工作定义在足够的或适当的细节水平,从而可以准确估算项目的工期、成本和足够的或适当的细节水平,从而可以准确估算项目的工期、成本和资源需求。资源需求。自下而上自下而上类比类比归类归类软件项目管理软件项目管理23WBS方
13、法示例方法示例软件项目管理软件项目管理24飞行系统飞行器支持设备设施测试与评价项目管理培训数据系统工程管理支持性项目管理活动设备培训设施培训服务培训技术命令工程数据管理数据实物模型运作测试开发测试基地大楼维护设施组织层次的中间层次的补给站层次机身引擎通信系统导航系统消防系统软件项目管理软件项目管理25家庭装修家庭装修家庭装修家庭装修设施设施设施设施结构结构结构结构墙体墙体墙体墙体地板地板地板地板门窗门窗门窗门窗厨房厨房厨房厨房厕所厕所厕所厕所洗浴洗浴洗浴洗浴空调空调空调空调照明照明照明照明通讯通讯通讯通讯洁具洁具洁具洁具燃具燃具燃具燃具风机风机风机风机垃圾垃圾垃圾垃圾橱柜橱柜橱柜橱柜水池水池水
14、池水池上水管上水管上水管上水管下水道下水道下水道下水道龙头阀门龙头阀门龙头阀门龙头阀门过滤网过滤网过滤网过滤网软件项目管理软件项目管理26文艺演出文艺演出文艺演出文艺演出节目节目节目节目剧务剧务剧务剧务后勤后勤后勤后勤经营经营经营经营策划策划策划策划编导编导编导编导排练排练排练排练表演表演表演表演化妆化妆化妆化妆道具道具道具道具灯光灯光灯光灯光音响音响音响音响交通交通交通交通就餐就餐就餐就餐住宿住宿住宿住宿安全安全安全安全广告广告广告广告销售销售销售销售票务票务票务票务财务财务财务财务软件项目管理软件项目管理27这个WBS仅作为示例,不代表任何某个具体项目的完整项目范围,也不意味着此类项目仅此
15、一种WBS分解方式软件项目管理软件项目管理28v网络计划方法网络计划方法是一种应用网络模型直观地表示软件开发众多工作是一种应用网络模型直观地表示软件开发众多工作(工序工序)之间的逻辑关系与时间关系,对完成软件工程项目所需时之间的逻辑关系与时间关系,对完成软件工程项目所需时间、费用、资源进行求解和优化的计划方法。间、费用、资源进行求解和优化的计划方法。其基本类型是关键路线法其基本类型是关键路线法/计划评审技术计划评审技术(CPM/PERT)将在第将在第5章详细讨论网络计划方法章详细讨论网络计划方法软件项目管理软件项目管理293.4 有效完成项目计划有效完成项目计划v软件项目的特点软件项目的特点软
16、件开发是在不断探索、研究中进行软件开发是在不断探索、研究中进行最佳实践还不够成熟最佳实践还不够成熟软件的自动化对工具的依赖性也非常突出软件的自动化对工具的依赖性也非常突出软件构造过程实际是一设计过程,每一个软件产品都不同软件构造过程实际是一设计过程,每一个软件产品都不同由于软件是设计过程,自动化程度比较低由于软件是设计过程,自动化程度比较低软件变化不容易实现,而软件变化又是不可避免的软件变化不容易实现,而软件变化又是不可避免的软件的变化,进一步引起相关文档的频繁修改软件的变化,进一步引起相关文档的频繁修改软件项目管理软件项目管理30v软件项目的问题软件项目的问题时间紧迫性时间紧迫性项目独特性项
17、目独特性软件项目的不确定性软件项目的不确定性软件项目管理可视性差软件项目管理可视性差软件项目生产力依赖于软件人员的潜力挖掘软件项目生产力依赖于软件人员的潜力挖掘软件项目管理软件项目管理31v软件计划的错误倾向软件计划的错误倾向对计划不重视对计划不重视片面计划片面计划计划没有考虑足够的风险计划没有考虑足够的风险计划过于粗糙计划过于粗糙v计划的原则计划的原则目标性原则目标性原则预防性原则预防性原则客观性原则客观性原则系统性原则系统性原则适应性原则适应性原则软件项目管理软件项目管理32v制定计划的要点制定计划的要点目标导向目标导向如果一开始对项目的目标没有理解清楚,项目计划就会出现偏离,如果一开始对
18、项目的目标没有理解清楚,项目计划就会出现偏离,而项目实施时偏离就更厉害而项目实施时偏离就更厉害重视与客户的沟通,为最后项目验收打下良好的基础重视与客户的沟通,为最后项目验收打下良好的基础收集足够的信息,掌握信息越多,制定计划更科学更客观收集足够的信息,掌握信息越多,制定计划更科学更客观客观且实用,只有知已知彼才能做出合理客观的项目计划客观且实用,只有知已知彼才能做出合理客观的项目计划先从下至上计划,然后再从上向下计划,构成一个完整的先从下至上计划,然后再从上向下计划,构成一个完整的循环过程循环过程关注计划过程,随机应变,因势利导,不断调整和修改计关注计划过程,随机应变,因势利导,不断调整和修改
19、计划,以保证完成项目的目标划,以保证完成项目的目标计划的层次性,如分为主计划、子计划计划的层次性,如分为主计划、子计划软件项目管理软件项目管理33v计划的输入计划的输入项目的目标和需求项目的目标和需求项目可用的资源项目可用的资源项目干系人,即项目的相关利益者项目干系人,即项目的相关利益者(stakeholder)项目涉及的相关技术项目涉及的相关技术质量政策和标准质量政策和标准组织流程组织流程制约因素是限制项目管理团队运行的因素。制约因素是限制项目管理团队运行的因素。假设,通常保含着一定程度的风险,项目计划对所有的假假设,通常保含着一定程度的风险,项目计划对所有的假设都应该标明出来,然后逐个分析
20、设都应该标明出来,然后逐个分析。历史数据历史数据软件项目管理软件项目管理34v计划输入计划输入矩阵矩阵软件项目管理软件项目管理35vPMBOK项目计划流程项目计划流程软件项目管理软件项目管理36v常见常见的计划流程的计划流程确定项目目标,包括最终交付的内容和质量标准;确定项目目标,包括最终交付的内容和质量标准;确定项目的工作范围,包括软件产品功能特性;确定项目的工作范围,包括软件产品功能特性;根据质量目标,可以制定质量计划;根据质量目标,可以制定质量计划;采用采用WBSWBS方法,分解工作,确定各项具体的任务;方法,分解工作,确定各项具体的任务;针对具体的工作任务,估算工作量以及确定所需的资
21、源;针对具体的工作任务,估算工作量以及确定所需的资源;制定资源计划、进度计划和成本计划;制定资源计划、进度计划和成本计划;完成风险识别和分析,最终完成风险管理计划,包括风险完成风险识别和分析,最终完成风险管理计划,包括风险应对计划;应对计划;进一步完成辅助计划,如采购计划、培训计划等;进一步完成辅助计划,如采购计划、培训计划等;需要和软件项目干系人沟通、评审,达成一致意见需要和软件项目干系人沟通、评审,达成一致意见最后,获得有关方面的批准。最后,获得有关方面的批准。软件项目管理软件项目管理37v常见常见流程示意图流程示意图软件项目管理软件项目管理383.5 计划各项内容的制定计划各项内容的制定
22、v项目的具体计划项目的具体计划软件项目管理软件项目管理39v计划内容的制定计划内容的制定确定项目范围确定项目范围策略制定策略制定资源计划资源计划进度计划进度计划成本计划成本计划风险计划风险计划质量计划质量计划软件项目管理软件项目管理40软件项目范围软件项目范围软件产品规范,即一个软件产品应该包含哪些功能特性,这就是软件产品规范,即一个软件产品应该包含哪些功能特性,这就是产品需求文档产品需求文档(Product requirement document,PRD)所描述的。所描述的。更具体的要求就是功能规格说明书更具体的要求就是功能规格说明书(Functional Specification),但
23、这是在计划过程中或之后产生。一般在确定但这是在计划过程中或之后产生。一般在确定PRD的过程中,就的过程中,就开始进行项目计划。开始进行项目计划。项目工作范围,即为了交付具有上述功能特性的产品所必须要做项目工作范围,即为了交付具有上述功能特性的产品所必须要做的工作。工作范围在一定程度上是产生项目计划的基础。的工作。工作范围在一定程度上是产生项目计划的基础。软件项目管理软件项目管理41看一个简单的对比:看一个简单的对比:软件项目管理软件项目管理42项目管理的策略项目管理的策略选用什么样的软件开发过程模型?选用什么样的软件开发过程模型?选用什么样的技术?选用什么样的技术?项目合同管理策略项目合同管理
24、策略成本管理策略成本管理策略项目的控制策略项目的控制策略项目的例会制度项目的例会制度信息汇报及发布制度信息汇报及发布制度项目问题处理及上报制度项目问题处理及上报制度软件项目管理软件项目管理43项目的范围、资源、时间和质量项目的范围、资源、时间和质量软件项目管理软件项目管理44项目要素的金字塔项目要素的金字塔软件项目管理软件项目管理45资源计划资源计划项目资源计划,是指通过分析和识别项目的资源需求,确定出项项目资源计划,是指通过分析和识别项目的资源需求,确定出项目需要投入的资源。目需要投入的资源。资源计划包括人力资源计划、软硬件资源计划。资源计划包括人力资源计划、软硬件资源计划。项目资源计划重点
25、在人力资源计划,采用有效的方法进行人力资项目资源计划重点在人力资源计划,采用有效的方法进行人力资源计划。源计划。软件项目管理软件项目管理46实际的人力资源计划的模型实际的人力资源计划的模型软件项目管理软件项目管理47进度计划制定原则进度计划制定原则项目的实际参与人员制定进度项目的实际参与人员制定进度尽可能地先安排难度高的任务,后安排难度低的任务尽可能地先安排难度高的任务,后安排难度低的任务进度前面紧,后面松,比较好进度前面紧,后面松,比较好项目进度中都会设置若干个里程碑项目进度中都会设置若干个里程碑进度表中必须留有缓冲时间进度表中必须留有缓冲时间发现项目应交付的期限不合理,应调整进度发现项目应
26、交付的期限不合理,应调整进度当需求发生变化时,就要重新评估进度表当需求发生变化时,就要重新评估进度表软件项目管理软件项目管理48软件项目管理软件项目管理49成本构成成本构成成本类别成本类别名称名称含义含义举例举例直接成本直接成本可以从项目上找到直接出处可以从项目上找到直接出处技术人员工资技术人员工资间接成本间接成本多个项目分摊多个项目分摊水费、房租、管理费用水费、房租、管理费用固定成本固定成本不会随着产品生产数量而增不会随着产品生产数量而增加加计算机计算机可变成本可变成本随着生产产品的数量增加而随着生产产品的数量增加而增加增加原材料原材料可控成本可控成本项目经理可以控制的项目经理可以控制的直接
27、可变直接、可变不可控成本不可控成本项目经理不能直接控制项目经理不能直接控制间接、固定、其他间接、固定、其他生命周期成本生命周期成本考虑整个产品生命周期成本考虑整个产品生命周期成本设计、生产、运维、处置设计、生产、运维、处置软件项目管理软件项目管理50成本计划成本计划费用预算费用预算在成本估算基础之上,针对各项成本来估算可能产生的其他费用,在成本估算基础之上,针对各项成本来估算可能产生的其他费用,从而确定费用预算从而确定费用预算费用控制费用控制为了保证实际发生的费用低于预算。一般会采用阶段性控制和单项为了保证实际发生的费用低于预算。一般会采用阶段性控制和单项费用控制相结合的方法,更关键是需求变
28、更控制和质量控制。费用控制相结合的方法,更关键是需求变更控制和质量控制。软件项目管理软件项目管理51风险计划风险计划风险识别、风险评估和风险对策计划风险识别、风险评估和风险对策计划风险计划并不是在资源计划、进度计划和成本计划之后再制定,风险计划并不是在资源计划、进度计划和成本计划之后再制定,而是和这些计划同时进行,因为软件项目的风险会来自于各个方而是和这些计划同时进行,因为软件项目的风险会来自于各个方面,包括人力资源风险、进度风险和成本风险等,而且在如何应面,包括人力资源风险、进度风险和成本风险等,而且在如何应对风险或针对风险采取相应的对策时,对资源计划、进度计划都对风险或针对风险采取相应的对
29、策时,对资源计划、进度计划都有影响。有影响。软件项目管理软件项目管理52质量计划内容质量计划内容质量目标,包括功能特性和非功能性特性的质量要求;质量目标,包括功能特性和非功能性特性的质量要求;质量目标分解,总体质量目标分解到各个阶段或各项任务质量目标分解,总体质量目标分解到各个阶段或各项任务相关标准和规范相关标准和规范组织保证机制,包括确定责任人、质量保证人或管理人员组织保证机制,包括确定责任人、质量保证人或管理人员质量属性满足的优先级和成本效益分析质量属性满足的优先级和成本效益分析质量控制策略,包括测试覆盖率、代码评审的频率等;质量控制策略,包括测试覆盖率、代码评审的频率等;质量特性的相互依
30、赖关系的分析,确定质量特性的优先级质量特性的相互依赖关系的分析,确定质量特性的优先级潜在的质量问题分析,并找出应对策略潜在的质量问题分析,并找出应对策略流程评审、测试计划和测试用例评审等方面的具体要求;流程评审、测试计划和测试用例评审等方面的具体要求;其它质量保证或控制措施、质量相关活动。其它质量保证或控制措施、质量相关活动。软件项目管理软件项目管理533.6 项目计划工具项目计划工具vOracle Primavera Project Planner(P3)软件项目管理软件项目管理54vDotProject软件项目管理软件项目管理55v微软微软Project软件项目管理软件项目管理561)工作
31、分解结构的目的是工作分解结构的目的是()A.允许项目经理管理分配项目活动相关责任允许项目经理管理分配项目活动相关责任 B.是项目所需工作的流水性描述是项目所需工作的流水性描述 C.以细分元素的形式描述整个程序以细分元素的形式描述整个程序 D.阐明需做工作的内容,数量和时间阐明需做工作的内容,数量和时间 2)下列属于项目计划约束条件的是下列属于项目计划约束条件的是()A.过去业绩的纪录过去业绩的纪录 B.类似项目的财务报告类似项目的财务报告 C.事先确定的预算事先确定的预算D.以前项目的经验以前项目的经验练习一下练习一下3)把工作分解结构中的各元素分解得更细,用于把工作分解结构中的各元素分解得更细,用于()A.进度计划进度计划 B.估算成本和进度估算成本和进度 C.进度控制进度控制 D.成本控制成本控制