项目策划过程域
本过程域要实现以下目标:
1)做好项目各方面的策划,包括:进度计划、风险计划、数据管理计划、利益相关方计划、测量分析计划以及保证其它过程活动得以顺利实施的各类计划,所有这些计划组成一个集成的项目软件开发计划;
2)确保计划及其变更通过利益相关方的评审,得到其承诺。
策划的前提是需求已经有了明确的定义,“策划从定义产品和项目的需求开始”,需求不明确,项目估计和策划就会成为空中楼阁,失去稳定的基石。
专用实践1.1 估计项目的范围
本实践是通过工作分解结构初步确定项目的工作范围。
在项目管理知识体系(PMBOK)中,对项目范围的定义是:项目范围管理保证项目包含了所有要做的工作而且只包含要求的工作,它主要涉及定义并控制哪些是项目范畴内的,哪些不是。项目范围管理的基本内容包括:项目启动、项目范围计划编制、项目范围核实、项目范围变更控制等等。
本实践就是要定义规划项目的范围。
工作分解结构不是产品分解结构,“工作分解结构应标识下列各项:已标识的风险及其缓解任务。有关交付物和支持活动的任务。获取技能和知识的任务。制定所需支持计划的任务,支持计划如配置管理、质量保证和验证计划。集成和管理非开发项的任务”,它包括支持产品和产品部件实现的所有工作:不仅有工程活动,还有管理活动。
工作分解结构不仅用于项目策划,“工作分解结构提供一种参与组织的机制,且作为策划、组织和控制项目工作的基础框架”。
实际上工作分解结构贯穿项目的整个生命周期。估计时要用到它,分配任务要用到它,设计、编码、测试、集成,都要用到它。
另外,估计项目的范围还要——“标识拟从外部采购的产品或产品部件。标识待重用的工作产品”,要指出哪些产品或产品部件无需研发:或外购、或重用。
专用实践1.2 建立工作产品和任务属性的估计值
本实践就是要对产品的规模进行估计,为后面的工作量估计和进度估计做好基础。
标准中给出的工作产品和任务属性示例为规模、复杂性、功能等。其中规模估计的内容最为重要。
除了产品的规模之外,还要“确定项目的技术途径”。
选择不同的技术途径对项目的工作量和进度会产生较大影响,因此,在进行估计工作之前,应先确定项目的技术途径。
专用实践1.3 定义项目生存周期
本实践是要根据项目特点来定义适合项目的生命周期模型。
定义项目生存周期的意义是——“项目生存周期阶段的确定为评价和决策提供一些计划好的时段。通常定义这些阶段,以支持一些合理的决策点,在这些点上作出有关资源和技术途径的重大承诺。这些点提供一些计划好的事件,以校正项目进程并确定未来的范围和费用”。
定义项目生命周期,很重要的一点是确定每个阶段的活动。而每个项目阶段,“要根据需求的范围、项目资源估计和项目特性来决定”。
从某种意义上来说,这一选择项目生命周期的阶段的决策不仅是项目选择生存周期模型的依据,也是组织定义生存周期模型各个阶段的依据。
专用实践1.4 建立工作量和成本的估计值
本实践是要完成对项目的工作量和成本的估计。
估计有两种方法,一种是使用成熟的模型(如构造性成本模型)或者算法(如专家DELPHI)直接计算得出,另一种是使用项目历史数据。
软件工程师在长期的实践中探索出一套经验公式:实际工作量主要取决于两个因素―一对某件事的估计工作量X,以及他做过类似开发工作的次数:Y=X±(X/N)。
如果员工一直做类似的项目,他们的N值不断增加,估计变化的范围会越来越小,准确度则越来越高。
所以标准更推荐使用组织自己的历史项目数据。
而且,“没有先例的工作风险较大,要求更多的研究,以建立合理的估计基础,并且要求更多的管理余量”。
这里所说的“要求更多的研究”,是指在没有先例的时候,项目组不妨先开始一、两周的工作,加深对项目和需求的认知之后再进行估计;“要求更多的管理余量”说明即使我们对自己的估计值有足够的信心,也要给出一定的工作量/成本余量,风险较大的就要给出更多的余量。
专用实践2.1 编制预算和进度表
本实践是要根据估计值制定出项目预算和项目的进度计划。
项目的进度表要以已确定的估计值为基础,并“确保任务复杂性和任务依赖关系都得到适当考虑”。
进度表是依据估计的结果制定的,不是平空想象的,绝不能把估计和策划分开;同时进度策划时还要考虑任务之间的依赖关系。
进度策划时,其中一个重要内容是确定项目的里程碑。
“里程碑可以基于事件,也可以基于日历时间。如果基于日历时间,一旦同意了里程碑日期,往往很难改变”。
在定义项目里程碑时,可以不用给出具体日期,而是给出里程碑标志性的事件,这样是否可以不用因为里程碑日期的改变,来变动计划?
专用实践2.2 标识项目风险
本实践是要识别出项目开发过程中可能出现的各种风险,包括管理风险和技术风险。
本实践不仅仅是发现和识别,不仅是为了在项目进程当中对其进行监控,还要“分析风险”,通过风险对预算、进度等的影响分析,为项目策划和项目监控提供支持。
专用实践2.3 制定数据管理计划
本实践是要对项目产生的数据进行管理策划。
数据管理策划的内容包括:
1)“应根据通用的或标准的数据需求集确定对项目的数据需求,包括要产生的数据项和它们的内容与形式”,即项目应当根据组织的通用的数据需求集,结合本项目类型策划本项目应产生的数据项及其内容、形式。
2)“建立将数据存档和取用存档数据的机制”,即项目要策划应产生的数据项的存储位置、收集时机、存储责任人、读取权限等内容。
专用实践2.4 制定项目资源计划
本实践要求对项目所需的资源进行策划。
项目资源的策划是以以SG1的4个实践为基础(特别是工作分解结构)。资源策划的内容包括:
确定所需的具备各色技能的项目成员及其数量;
确定开发、测试环境所需各种工具、设备及其数量等。
对于实施成熟度等级3的组织,项目资源的策划还要结合组织标准工作环境的要求。
专用实践2.5 策划所需的知识和技能
本实践是通过分析项目人员具备的知识和能力与项目开发过程的实际需要之间的差距,以对项目人员所需的培训进行策划。
通常的做法是,项目一旦立项,就成立项目组,之后在考虑项目组成员是否满足项目开发的需要。但是,标准中建议的是——“人员配置需求依赖于支持该项目实施可用的知识和技能”。
也就是说,首先要标识出项目实施所需的知识和技能,然后根据这个要求配置选择合适的项目成员,如果选择的成员在知识和技能上仍然有所欠缺,策划补上缺口的办法——培训或者在合适的时机引入新的成员。
专用实践2.6 制定利益相关方参与的计划
本实践是分析出那些影响项目进展的相关方,并对其参加项目的活动进行策划。
通常使用的方法是二维矩阵,“其中一个轴代表利益相关方,另一个代表项目活动”。
识别利益相关方应该不放过每个主要活动。“对于每个主要活动,都应标识出受该活动影响的利益相关方和具有进行该活动所需专门知识的利益相关方”。
利益相关方有两种人:一种是受活动影响的人,另一种是影响该活动的人。
前者要及时获得活动的结果,以便调整他的活动计划;后者要给出正确的决策,确保活动朝着有利于项目的方向发展。
识别利益相关方,一个很重要的因素是判断一个项目活动需要具备何种知识和技能的人参与。即标准所说的“这个专用实践的实施,依靠与专用实践2.5共享或交流的信息”。
专用实践2.7 制定项目计划
本实践就是要把项目所有的策划好的内容集成为一个总的文档计划。
项目计划中除了SP2.1~2.6之外,还要给出项目成员和组织机构,及其职责和权限。
一般项目计划文档还应满足GJB438中《软件开发计划》的要求。
专用实践3.1 评审影响该项目的计划
本实践就是要对已经形成的项目计划进行评审,以获得各相关方的支持。
评审应注意各计划之间的一致性。
“在其它过程域中制定的计划通常会包含类似于总计划中所要求的信息。这些计划能提供更详细的指导,且应支持总计划,并与之相容”。
除了SP2.1~2.6之外,要评审的计划还包括其它过程域GP2.2的计划,如需求管理计划、测量分析计划、验证计划、确认计划……,这些计划之间要保持一致性。
专用实践3.2 使工作与资源水平相协调
本实践要求项目计划要按照项目的实际资源水平进行调整。
“为建立一个切实可行的项目,必须从利益相关方获得承诺,并调整估计的资源与可用的资源之间的差别”。
预计的资源和现实的资源之间的差别对项目计划的成功与否影响巨大。
本实践要求发现这个差别,并采取有效的措施来消除或者降低这个差别带来的影响。
有效的措施包括:重新估计、修正进度、修正需求、调整利益相关方计划等等。
专用实践3.3 获得计划承诺
本实践要求从负责完成和支持计划执行的利益相关方处获得承诺。
承诺做出者是可能影响计划成功的所有利益相关方,包括项目内部和项目外部。
所以,本实践的执行也依赖于SP2.6所识别的利益相关方情况。