二、项目管理过程
软件开发项目管理过程,从项目全视角来看,分为售前、售中、售后等三个大的阶段,本文所谈的是售中阶段项目管理过程,在售中阶段,项目管理主要分项目策划、项目跟踪监控、项目结项归档等三部分,相关活动包括销售活动、采购活动、资源活动、支持活动等。
1、项目策划
项目策划是一种具有建设性、逻辑性的思维的过程,在此过程中,总的目的就是把所有可能影响决策的决定总结起来,对未来起到指导和控制作用,最终借以达到方案目标。它是一门新兴的策划学,以具体的项目活动为对象,体现一定的功利性、社会性、创造性、时效性和超前性的大型策划活动。
1.1、项目策划的原则
1、可行性原则
项目策划,考虑最多的便是其可行性。"实践是检验真理的唯一标准",同样,项目策划的创意也要经得住事实的检验。
2、创新性原则
创新是事物得以发展的动力,是人类赖以生存和发展的主要手段,每个软件项目都是全新,要根据项目特征值创新性的策划项目。
3、无定势原则
世界万物都处在一个变化的氛围之中,没有无运动变化的事物,事物就是在这种运动的作用下发展的。
4、价值性原则
项目策划要按照价值性原则来进行,这是其功利性的具体要求与体现。例如:项目工作量最少的QPPO,就是项目的价值取向。
5、集中性原则
在战争中,集中优势兵力攻击对方关键性的部分,成为军事谋略的上策。不论是军事项目,还是软件开发项目,都可以借此达到胜利的目标。
6、智能放大原则
人的能量是无穷的,策划中的创意与构思也是无止境的,因此说项目策划要坚持智能放大的原则。
7、信息性原则
信息是项目策划的起点,具体来说,包括以下几项要求:
1)收集原始信息力求全面
2)收集原始信息要可靠真实
3)信息加工要准确、及时
4)保持信息的系统性及连续性
1.2、项目策划依据和准则
在企业进行CMMI评估过程中,在CMMI2、3级时就已经建立起项目管理过程及体系文件,并日臻成熟,所以,项目策划时是需要依据企业本身的CMMI体系文件,也就是公司SOP(标准体系文件),相关已经和准则如下:
1、项目过程定义裁剪准则
可裁剪属性有:生命周期模型,项目类型,项目阶段,评审级别,文档是否裁剪,频度,成本、进度容差,里程碑延迟等,详见《组织过程裁剪指南》裁剪项目过程。
2、任务分解准则(WBS)
依据《项目定义过程》、《项目估算报告》、《项目实施计划》、《项目进度计划模版》等过程体系文件和指南,任务分解准则如下:
⑴、WBS分解分类:项目分解WBS(项目管理类型任务分解)、技术分解WBS(项目工程任务及特有技术工作内容分解)。
⑵、WBS分解原则:
- 项目要求;
- 定义逐步求精;
- 人时(工作量):一般的任务不超过2周,也就是80人时;
- 任务责任到人;
- 团队工作原则:项目经理在制定项目计划过程中,尤其是在任务分解,工期估计对关键过程中一定要与项目成员一起进行。
3、项目估算依据
参考体系文件《估算指南》,依据项目合同、需求、项目通知、任务分解,以及组织资产库进行项目估算。
4、软件项目风险管理规则
- 风险类别有:人员、客户、管理、质量、测试、环境等;
- 风险系数有:高、中、低;
- 风险发生概率和风险影响范围分别1~5分。
5、风险的管理策略
a. 当风险系数(高)在16~25之间,必须制定应急计划,并且随时监控风险变化情况,一旦风险发生,则立刻启动应急计划。
b. 当风险系数(中)在 9~15之间,可不制定应急计划,定期监控风险变更情况,随时准备启动缓解措施。
c. 当风险系数(低)在 1~8之间,可不制定应急计划,定期监控风险变更情况,必要时启动缓解措施。
注:对于部分低风险,可选择接受。
1.3、 策划过程及内容
项目策划过程就是项目经理接到项目启动通知后,依据项目启动通知和项目项目策划过程,在部门经理、项目级QA、CM等人员的配合下,进行项目过程定义、项目估算、项目实施计划的制定和维护、项目策划评审等工作。输出成果有:项目实施计划、项目估算报告、项目定义过程、进度计划。
1.4、项目策划过程实践
1、项目开发过程定义
在项目过程定义中,在项目级QA的协助下,参考《组织过程裁剪指南》和《软件生命周期》裁剪定制适合于项目的生命周期模型,制定《项目定义过程》;由于本项目需求比较明确,所以采用了瀑布模型;定义阶段如下:
- 需求阶段
- 设计阶段
- 编码及单元测试阶段
- 集成测试阶段
- 系统测试阶段
- 验收测试阶段
其中,需求、编码及单元测试、系统测试、验收测试为里程碑。
2、项目估算
项目估算是参照任务分解模版和《估算指南》,分别定义项目工程活动、项目管理活动、项目支持活动三部分。
⑴.项目工程活动按本项目实践的瀑布模型生命周期和PDP,主要定义如下:需求开发、需求评审、软件设计、设计评审、编码与测试、代码走查、单元测试、集成测试、系统测试、项目验收等活动。
⑵.项目管理活动分解活动如下:项目立项、项目策划、周报例会、项目结项、其他项目管理活动(例如:需求管理、量化管理等)、项目度量;
⑶.项目支持活动分解为配置管理和质量保证两类活动。
1)、编码工作量估算(代码行数)
项目工作活动中,编码活动估算,是根据项目实际情况和前期需求及资产库,工作范围和软件功能分解到具体功能模块(树状结构),估算代码行数,估算方法为Delphi,估算记录如下图所示。
使用Delphi法估算代码行数,估算两轮,第一轮会议室办公用品管理、后台配合两个模块的估算额定偏差超过20%,因此仅对两个模块进行了第二轮估算。
2)、工作产品规模估算(页数等)
项目工程活动中,基于项目wbs的规模和工作量估算”中对除编码阶段外其它阶段进行工作产品规模估算,并通过计算得到工作量
3、项目实施计划
项目实施包括:项目概况、项目组构成及人力资源计划、项目预算及进度计划、干系人参与计划、度量分析计划、.其它子计划等6部分内容,详细内容如下图所示。
1)、项目概况
项目概况介绍了项目背景和基本信息及建设目标等内容,核心内容为项目目标,例如下图项目过程性能目标(Project's QPPO),以及项目范围、验收标准、待交付产品或服务、项目工作环境、项目风险等。
2)、项目组构成及人力资源计划
项目组由项目经理、QA、CM、需求开发人员、设计人员、编码人员、测试人员构成,按下表的职责分工协作,由项目经理全面负责。其中,人力资源计划是根据项目实际情况和资产库,分别选配初级、中级、高级技术人员,以及相关技术专业。如果人员能力不足,则安排专业技能培训计划。
在项目组构成及人力资源计划中主要体现项目组构成、角色与职责、项目所需知识与技能分析、项目培训计划。
3)、项目预算及进度计划
项目预算及进度计划包括项目生命周期、项目工作量及预算分配、项目一级计划、里程碑标定说明等4项内容。由于此项目需求清晰完整,所以生命周期模型选择瀑布模型,由此定义后续内容。
项目工作量及预算分配,按需求开发、软件设计、编码与测试、集成测试、系统测试、项目验收、项目管理、支持过程及估算工作量,确定工作量预算分配比例如下:11%、23%、26%、7%、10%、4%、13%、6%。期中,预算还包括人力成本、差旅费用、其他费用。
进度计划如下表所示。
项目里程碑是必须设置的,此项目定义如下:需求开发、编码与测试、系统测试、产品验收4个里程碑。
4)、项目干系人参与计划
项目干系人参与计划主要包括:项目干系人识别及职责定义、干系人参与计划、外部干系人沟通计划等3部分内容,如下表所示为项目干系人识别及职责定义。
干系人参与是按项目各个阶段协商安排计划,计划内容如下:阶段、任务名称、参与人员、开始日期、完成日期、任务完成验收标准。
外部干系人参与计划,主要计划内容有:沟通方式、沟通内容、发起人、外部干系人、沟通频率。
5)、度量分析计划
度量分析计划包括项目度量目标及度量指标、度量分析计划等两部分。由于度量是比较基本的内容,而且基本相同,再此略。
6)、其它子计划
其它子计划包括:数据管理计划、项目监控计划、需求管理计划、决策分析计划、项目评审计划、项目测试计划。
数据管理计划为识别项目需纳入数据管理范围的数据项,并计划其管理级别等相关信息。具本的数据项请参见:配置管理计划。
项目监控计划主要是有:
- 项目管理
- 项目周报
- 风险管理
- 周例会
- 里程碑评审
- 日常监控报告
- 配置管理
- 配置管理周报
- 质量保证
- 质量保证周报
- 度量分析
- 项目进度度量
- 项目工作量度量
- 规模度量
- 过程质量度量
- 产品质量度量
4、项目进度计划
在完成实施计划后,开始对项目实施计划进行细化,其中,项目进度计划是其中重要细化内容,并贯穿项目全周期。
项目进度计划是子计划,主要是基于项目实施计划中的资源、进度计划、里程碑等各项内容,在项目实施过程中进行任务分配、人力资源分配、时间分配,上述分配要与工程进度相协调。任务管理模型如下表所示:
在项目进度计划编排过程,需要注意以下原则和情况:
- 任务分配渐进式,也就是说在任务分解渐进精细的过程中,任务也要逐步分配到人,具体任务,让开发人员看到2周就可以了,再多分配,则在调整任务时,将耗费很大精力;
- 依据里程碑识别并确定关键路径,在任务进度安排过程中,应先寻求关键路径并在关键路径上安排一定的机动时间和节假日,以便应付意想不到的困难和问题。;
- 理顺任务间的关系,提高并行化;
- 做好项目基线(基于MS Project)。
注:项目基线是特指项目的规范、应用标准、进度指标、费用指标以及人员和其他资源使用指标等。基线随着项目的进展而变化,主要原因有:(1)时间指标无法实现;(2)各项任务延期完成;(3)里程碑未达到;(4)有些工作不能按时开始;(5)人员不能按计划到位;(6)设备性能被过高估计;(7)高峰期人员工效不高;(8)预算过高或过少;(9)工作完成量超过或未达到计划。——智库.百科
5、项目配置管理计划
配置管理计划是软件开发计划的一部分,它设立了项目的配置管理策略及实践。
受控级别说明:
- 低:不必随时跟踪版本,但要求将阶段性成果在配置库内必须有,如项目周报,不要求跟踪版本等,但必须检查是否已放入配置库相应位置。
- 中:表示该配置项受控,其每个版本需要审核、评审或测试,由配置管理工程师存放03.Baseline下相应位置。
- 高:表示基线控制,修订需要通过变更控制过程来严格控制,并要跟踪版本及存放位置的正确性。所有纳入基线库的工作产品必须定为高级。其它则根据项目需要来定。
- 密:机密文件,不可复制,不可拷贝。
下图为落实配置管理所建立配置管理库的结构图。
6、质量保证计划
质量保证计划主要是由QA来完成,在此略。
待续......