二、项目管理过程

        软件开发项目管理过程,从项目全视角来看,分为售前、售中、售后等三个大的阶段,本文所谈的是售中阶段项目管理过程,在售中阶段,项目管理主要分项目策划、项目跟踪监控、项目结项归档等三部分,相关活动包括销售活动、采购活动、资源活动、支持活动等。


软件项目量化管理(CMMI高成熟度)实践经验谈——之项目管理过程策划篇_项目管理

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等人员的配合下,进行项目过程定义、项目估算、项目实施计划的制定和维护、项目策划评审等工作。输出成果有:项目实施计划、项目估算报告、项目定义过程、进度计划。




软件项目量化管理(CMMI高成熟度)实践经验谈——之项目管理过程策划篇_配置管理_02




1.4、项目策划过程实践

        1、项目开发过程定义

        在项目过程定义中,在项目级QA的协助下,参考《组织过程裁剪指南》和《软件生命周期》裁剪定制适合于项目的生命周期模型,制定《项目定义过程》;由于本项目需求比较明确,所以采用了瀑布模型;定义阶段如下:

  • 需求阶段
  • 设计阶段
  • 编码及单元测试阶段
  • 集成测试阶段
  • 系统测试阶段
  • 验收测试阶段

        其中,需求、编码及单元测试、系统测试、验收测试为里程碑。

        2、项目估算

        项目估算是参照任务分解模版和《估算指南》,分别定义项目工程活动、项目管理活动、项目支持活动三部分。

        ⑴.项目工程活动按本项目实践的瀑布模型生命周期和PDP,主要定义如下:需求开发、需求评审、软件设计、设计评审、编码与测试、代码走查、单元测试、集成测试、系统测试、项目验收等活动。

        ⑵.项目管理活动分解活动如下:项目立项、项目策划、周报例会、项目结项、其他项目管理活动(例如:需求管理、量化管理等)、项目度量;

        ⑶.项目支持活动分解为配置管理和质量保证两类活动。

        1)、编码工作量估算(代码行数)

        项目工作活动中,编码活动估算,是根据项目实际情况和前期需求及资产库,工作范围和软件功能分解到具体功能模块(树状结构),估算代码行数,估算方法为Delphi,估算记录如下图所示。


软件项目量化管理(CMMI高成熟度)实践经验谈——之项目管理过程策划篇_配置管理_03


        使用Delphi法估算代码行数,估算两轮,第一轮会议室办公用品管理、后台配合两个模块的估算额定偏差超过20%,因此仅对两个模块进行了第二轮估算。

        2)、工作产品规模估算(页数等)

        项目工程活动中,基于项目wbs的规模和工作量估算”中对除编码阶段外其它阶段进行工作产品规模估算,并通过计算得到工作量


软件项目量化管理(CMMI高成熟度)实践经验谈——之项目管理过程策划篇_项目实施_04



        3、项目实施计划

        项目实施包括:项目概况、项目组构成及人力资源计划、项目预算及进度计划、干系人参与计划、度量分析计划、.其它子计划等6部分内容,详细内容如下图所示。


软件项目量化管理(CMMI高成熟度)实践经验谈——之项目管理过程策划篇_项目实施_05

        1)、项目概况

        项目概况介绍了项目背景和基本信息及建设目标等内容,核心内容为项目目标,例如下图项目过程性能目标(Project's QPPO),以及项目范围、验收标准、待交付产品或服务、项目工作环境、项目风险等。


软件项目量化管理(CMMI高成熟度)实践经验谈——之项目管理过程策划篇_配置管理_06

        2)、项目组构成及人力资源计划

        项目组由项目经理、QA、CM、需求开发人员、设计人员、编码人员、测试人员构成,按下表的职责分工协作,由项目经理全面负责。其中,人力资源计划是根据项目实际情况和资产库,分别选配初级、中级、高级技术人员,以及相关技术专业。如果人员能力不足,则安排专业技能培训计划。


软件项目量化管理(CMMI高成熟度)实践经验谈——之项目管理过程策划篇_配置管理_07

        在项目组构成及人力资源计划中主要体现项目组构成、角色与职责、项目所需知识与技能分析、项目培训计划。

        3)、项目预算及进度计划

        项目预算及进度计划包括项目生命周期、项目工作量及预算分配、项目一级计划、里程碑标定说明等4项内容。由于此项目需求清晰完整,所以生命周期模型选择瀑布模型,由此定义后续内容。

        项目工作量及预算分配,按需求开发、软件设计、编码与测试、集成测试、系统测试、项目验收、项目管理、支持过程及估算工作量,确定工作量预算分配比例如下:11%、23%、26%、7%、10%、4%、13%、6%。期中,预算还包括人力成本、差旅费用、其他费用。

        进度计划如下表所示。


软件项目量化管理(CMMI高成熟度)实践经验谈——之项目管理过程策划篇_配置管理_08


        项目里程碑是必须设置的,此项目定义如下:需求开发、编码与测试、系统测试、产品验收4个里程碑。

        4)、项目干系人参与计划

         项目干系人参与计划主要包括:项目干系人识别及职责定义、干系人参与计划、外部干系人沟通计划等3部分内容,如下表所示为项目干系人识别及职责定义。


软件项目量化管理(CMMI高成熟度)实践经验谈——之项目管理过程策划篇_项目实施_09

        干系人参与是按项目各个阶段协商安排计划,计划内容如下:阶段、任务名称、参与人员、开始日期、完成日期、任务完成验收标准。

        外部干系人参与计划,主要计划内容有:沟通方式、沟通内容、发起人、外部干系人、沟通频率。

        5)、度量分析计划

        度量分析计划包括项目度量目标及度量指标、度量分析计划等两部分。由于度量是比较基本的内容,而且基本相同,再此略。

        6)、其它子计划

        其它子计划包括:数据管理计划、项目监控计划、需求管理计划、决策分析计划、项目评审计划、项目测试计划。

        数据管理计划为识别项目需纳入数据管理范围的数据项,并计划其管理级别等相关信息。具本的数据项请参见:配置管理计划。


软件项目量化管理(CMMI高成熟度)实践经验谈——之项目管理过程策划篇_项目管理_10

        项目监控计划主要是有:

  • 项目管理
  • 项目周报
  • 风险管理
  • 周例会
  • 里程碑评审
  • 日常监控报告
  • 配置管理
  • 配置管理周报
  • 质量保证
  • 质量保证周报
  • 度量分析
  • 项目进度度量
  • 项目工作量度量
  • 规模度量
  • 过程质量度量
  • 产品质量度量

        4、项目进度计划

        在完成实施计划后,开始对项目实施计划进行细化,其中,项目进度计划是其中重要细化内容,并贯穿项目全周期。

        项目进度计划是子计划,主要是基于项目实施计划中的资源、进度计划、里程碑等各项内容,在项目实施过程中进行任务分配、人力资源分配、时间分配,上述分配要与工程进度相协调。任务管理模型如下表所示:


软件项目量化管理(CMMI高成熟度)实践经验谈——之项目管理过程策划篇_项目实施_11

        在项目进度计划编排过程,需要注意以下原则和情况:

  • 任务分配渐进式,也就是说在任务分解渐进精细的过程中,任务也要逐步分配到人,具体任务,让开发人员看到2周就可以了,再多分配,则在调整任务时,将耗费很大精力;
  • 依据里程碑识别并确定关键路径,在任务进度安排过程中,应先寻求关键路径并在关键路径上安排一定的机动时间和节假日,以便应付意想不到的困难和问题。;
  • 理顺任务间的关系,提高并行化;
  • 做好项目基线(基于MS Project)。

        注:项目基线是特指项目的规范、应用标准、进度指标、费用指标以及人员和其他资源使用指标等。基线随着项目的进展而变化,主要原因有:(1)时间指标无法实现;(2)各项任务延期完成;(3)里程碑未达到;(4)有些工作不能按时开始;(5)人员不能按计划到位;(6)设备性能被过高估计;(7)高峰期人员工效不高;(8)预算过高或过少;(9)工作完成量超过或未达到计划。——智库.百科

        5、项目配置管理计划

        配置管理计划是软件开发计划的一部分,它设立了项目的配置管理策略及实践。

        受控级别说明:

  • 低:不必随时跟踪版本,但要求将阶段性成果在配置库内必须有,如项目周报,不要求跟踪版本等,但必须检查是否已放入配置库相应位置。
  • 中:表示该配置项受控,其每个版本需要审核、评审或测试,由配置管理工程师存放03.Baseline下相应位置。
  • 高:表示基线控制,修订需要通过变更控制过程来严格控制,并要跟踪版本及存放位置的正确性。所有纳入基线库的工作产品必须定为高级。其它则根据项目需要来定。
  • 密:机密文件,不可复制,不可拷贝。

        下图为落实配置管理所建立配置管理库的结构图。


软件项目量化管理(CMMI高成熟度)实践经验谈——之项目管理过程策划篇_配置管理_12

        6、质量保证计划

        质量保证计划主要是由QA来完成,在此略。

        待续......