3.2.3.2 里程碑2:方案设计
标准输出:SPI解决方案
体系诊断评审结束后,策划组要对评审结果进行分析,筛选出一些改进点;然后将每个改进点都作为一个改进项目,分别制定改进方案。
SPI方案应该包括以下内容:
本组织软件过程改进的历史
过程诊断
诊断方法
诊断结果和差距分析
改进方案
总体目标
总体工程化管理系统设计
详细改进措施
预期收益
实施负责人
对成本、资源和项目周期的估计
计划进度概要
前提和承诺
资源需求预测
风险
子里程碑
方案中还应该说明建议使用的实施方法,例如是否进行试用等。估计成本时要包括:过程定义的时间、试用期间人员培训的成本、处理反馈意见的时间和重新试用的成本。同时,可以基于CMM/CMMI、SEBOK(软件工程)、good practice (非常好的实践)、PMBook、ISO等模型和标准设计,也可以融合设计SPI方案。
因为所有的改进工作不可能一次实施,所以要确定各个改进项目的优先级。我们怎么确定改进活动的优先级呢?主要是通过考察三方面的因素,即:对商业目标的影响、风险和在过程改进模型标准中的定位(如CMM/CMMI)。
有些公司还会对各方案进行成本/收益分析(例如,考察投资回报率),但是1级或2级的企业往往没有充分的历史数据,因此无法准确估计过程改进的无形收益;4级和5级的企业通常就能作到这一点,3级的企业也有可能作到。
1、对商业目标的影响
对商业目标的影响是指某项改进工作对总体的战略目标的影响。
首先,策划小组要和主管的高层经理进行讨论,明确公司商业目标、并分析确定决定商业目标能否实现的5-7个关键成功因素(CSFs)。如果公司没有明确成文的商业目标,小组的首要工作就是确定商业目标;如果商业目标已经非常清楚、明确,并且形成了文档,策划小组的核心工作就是分析关键成功因素并每个关键成功因素确定权重。
接下来,我们要对每项改进活动进行分析,按其对每个关键成功因素的贡献进行评分,然后将结果进行加权平均,作为最后比较的一个依据。
2、风险因素
风险是指实施改进工作的困难程度,我们要考虑实施某项改进是象赌博一样冒险么?结果是不是有一定的可预测性呢?通常,风险的来源主要有三个方面:项目的规模、结构的问题和技术。
项目规模风险,是指实施的人工成本,一般人工成本越低风险越小。
结构方面的风险,主要有以下因素:参与该项目开发的功能组的数量、项目的复杂程度、制定解决方案的人员在该过程域的经验是否丰富、对改进中带来变更,预期存在抵触行为等。
技术风险,这里就不分析了。
3、过程改进模型标准中的定位
如果企业有认证过级的目标,那么需要结合起来考虑。
3.2.3.3 里程碑3:项目策划
标准输出:SPI项目计划
如果我们把软件过程改进看作一个项目,象其他项目一样,它也要有一个好的计划,这个计划不但要满足公司的商业目标,还要包含过程改进战略和具体的实施步骤(子项目)。软件过程改进非一日之功,急于求成必将导致失败;因此,如果不进行系统的战略策划而盲目进行过程改进,只会浪费时间和资金而不会取得好的效果。有了有效的战略计划,我们才能在这项长期的活动中获得管理人员、开发人员和公司的所有者的理解和耐心的支持。
项目目标
整体目标
本阶段目标
假定和约束
项目组织
组织结构
接口关系
报告关系
责任矩阵
项目进度跟踪方式
项目里程碑
交付物
文档编制
人员培训
风险管理
项目激励
项目验收