CMM(软件成熟度模型)是1987年美国卡内基梅隆大学的软件工程研究所(SEI)提出的软件成熟度模型框架,通过实施CMM,软件公司不仅能提高生产率,软件产品出错率下降,还能提高公司信誉。
作者凭多年实施CMM的经验认为,中小型软件企业在实施CMM时,应根据自身实际情况和具体要求加以应用,并从以下几方面考虑:
一、 组织及角色安排
首要,如果一个组织要改善其效能,那么高层管理就必须积极地支持变革。由下至上地改革,无须高层支持和上级的认同,却能够完成变革,这几乎是不可能的。
建议成立软件工程过程组(SEPG),作为协调过程定义、改进及部署活动,不一定要全职的SEPG人员,但应该明确指派到某人负责。对于CMM要求的一些角色,可以灵活安排,不必太过拘泥。小项目未必需要专门的软件配置管理组,但配置管理活动是不可少的;独立的质量保证组也许不必要,但必须有人完成验证的活动。项目组成员可以担当多重角色,如项目经理可以同时担任SCM的角色,而测试人员也可同时担负SQA的角色。
二、 实施策略
中小企业在实施CMM过程中,组织支持是基础,策略则是步骤有效实施的粘合剂,不能因为过于繁琐或影响进度而弃之。
其一是过程文档化。如果企业还没有一个文档化的软件过程,则首先要总结以往项目成功的经验,对当前的工作流程进行分析、整理及文档化,制定出一个适合本企业的软件过程,并用该过程指导软件项目的开发。
其二是过程的裁剪。过程需要裁剪到项目所需的程度,这也是中小企业实施CMM过程改进的关键。裁剪的准则就是一切以实用为主,避免过于繁琐和形式化。
其三是组织培训。组织培训要完成对公司所有员工包括高层经理的最基本的软件工程和CMM知识培训。让所有员工了解CMM,才能支持CMM的实施。
三、 实施步骤
1. 需求管理
1) 从客户处获取原始需求,经分析后形成软件需求规格说明书,获得客户书面认可;
2) 软件需求规格说明书通过项目组的评审,加入配置管理,创建需求基线;
3) 通过表格对需求的开发状况进行跟踪,了解需求的实现情况;
4) 如需变更需求,应填写《需求变更请求表》,按配置管理的变更流程执行。
2. 软件项目计划
软件项目计划是软件项目跟踪与监控的基础,按照以下步骤实施即可:
1) 项目经理根据需求进行估算,拟定软件开发计划和进度表;
2) 软件开发计划必须通过项目组评审和上级部门的审批,审批通过后,加入配置管理。
3. 软件项目跟踪与监控
1) 项目经理使用进度表作为跟踪监控基础,根据项目每周的实际执行情况,拟定进度报告,并与项目组成员确认;
2) 项目经理对照计划与实际执行情况,发现差距形成问题报告;
3) 高层经理审查项目报告,促请项目经理修正计划及解决存在的问题和风险。
4. 软件质量保证
1) 如有专职的SQA,可拟定专门的质量保证计划;
2) SQA根据计划审计项目执行过程和评审提交的工作产品,记录不一致的问题;
3) 将发现的问题记录到项目问题日志,跟踪并协调问题的解决情况,并定期向项目经理和高层经理汇报。如果不能解决的由高层经理协助解决。
5. 软件配置管理
1) 如有专职的SCM,可以拟定专门的配置管理计划;
2) 创建开发域和基线域,开发人员在各自开发域上工作,SCM则标识配置项并加入基线域;
3) SCM在各个阶段结束时创建基线,对配置项和基线进行审计;
4) 基线域中的配置项变更请求先向项目经理提出,由SCM统一操作和记录;
5) 质量保证人员定期审计配置管理活动。
6. 同行评审
1) 项目经理确定评审的人员、时间和地点,将相关的材料分发给评审人员;
2) 评审人员在会议前认真阅读这些材料,记录发现的问题;
3) 如时间充足,建议以会议方式进行交流,否则由项目组成员各自提交发现的问题;
4) 汇总发现的问题,项目经理指定人员跟踪解决问题。