我所在的公司是一家IT企业,软件开发部门有十来个人,我作为部门负责人全程推动了公司CMMI ML3的认证工作,现将CMMI ML3的整个认证过程总结如下。

一、获得 CMMI ML3认证的目的

为了进一步规范公司软件项目开发的过程,提高研发项目的质量,达到更快更好的完成公司的软件项目或产品的目的。这是CMMI的最终目标。

除此之外,获得CMMI ML3认证有助于公司以后的项目投标,作为投标加分项,这也是目前国内很多软件公司热衷于CMMI认证的原因,也是我公司要获得CMMI ML3证书的主要目的之一。

cmmi软件开发流程(公司CMMIML3认证经验总结)(1)

二、CMMI ML3认证过程描述

1、启动项目

公司把CMMI ML3认证作为一个项目来管理,首先编写了一个项目方案,包括资源准备、进度安排、详细计划、费用估算、验收标准及形式等。

方案报公司领导通过后,由公司采购负责咨询公司的方案询价报价,通过内部邀标的方式确定了深圳的一家咨询服务公司。

2、与CMMI咨询公司签订咨询认证合同

与深圳的咨询公司签订服务合同,耗费了一个多月,国营单位走内部合同审批流程需要一点时间,大家应该了解。咨询服务费用小二十万,我们公司是个规模只有50个人的创业型公司,咨询服务这一块都比较初级简单,所以费用预算也不会很高。

3、前期准备阶段

现状差距分析。签订合同之后就开始正式干活了,首先是做的是开项目正式启动会并做现状差距分析,当时咨询公司派了一个咨询顾问和一个主任评估师来对我们公司软件项目的研发流程、管理规范还有公司存在的问题做了访谈和证据查看,最后出具了一份出具差距分析报告。

同时组建了MSG(管理指导组)和EPG(过程改进组),EPG组主要包括项目经理、需求分析人员、工程设计人员、测试人员、QA、配置管理人员、培训师等。我作为MSG成员和EPG组长负责推进公司CMMI 过程改进的总体协调和计划安排工作。

4、培训与过程定义阶段

CMMI培训。这个阶段咨询老师先后来我们公司培训过3次,每次培训1到2天,讲解CMMI和过程域的知识。说实话,老师讲的知识非常有用,但是纯理论的讲解大家只是听,所以吸收得并不是很好,后面咨询老师索行直接给了参照的过程体系模板给我们,让大家分工来编写自己公司的标准过程体系手册。

标准过程体系文档编写。我按照公司的情况做了分工,业务部门做需求开发与管理流程,采购部门负责采购管理流程,综合部负责培训管理流程,其他的流程大部分有技术部门负责,包括设计和实现流程、测试和验收流程、项目管理流程、度量分析流程、质量保证流程、配置管理流程、过程改进流程、决策分析流程、评审流程。标准过程手册分工编写完工后,发给咨询老师做审核,根据咨询老师的意见修改完成后就算完成了。

试点项目选择和执行。为了顺利开始过程改进实施,试点项目的选定非常重要。因此建议公司在一开始选定典型项目,首先开始实施过程改进,在体系文件进行优化,主要成员对过程改进有一定的理解之后,再向整个组织推广。经讨论,我们选定了一个当时正在开发的公司自营的内部项目来作为第一个试点项目,并在公司内部做了流程体系、SVN和禅道的使用培训。

做试点项目就是按照之前定义的公司标准过程文档来管控项目执行的过程,体系手册有很多输出物的模板,我们按照要求定期输出这些文档到SVN保存。另外,还安装了最新版本的禅道系统V9.8。

试点的时候咨询顾问来过我们这做了一次项目检查,对执行中发现的问题进行讲解纠正。

5、过程运行及推广阶段

这个阶段基本与项目试点重叠,就是要把流程体系推广到其他项目。为了评估的需要,我们又在三个项目上推广了CMMI。一般这时候老师也不用来现场了,大家也比较熟悉了,我们会发项目资料给老师,老师过段时间过来解决一些问题。

这个阶段老师提出的问题是培训管理的资料一直没有看到(说过几次),需要我们尽快提供,否则无法正式评估,可能是因为培训这一块的负责人认为研发流程体系跟培训没啥好大关系,所以没有重视,培训计划、日常培训的资料也没有及时汇总到SVN。

6、预评估及改进阶段

这一阶段主要是ATM 培训、预评估的实施和评估结果的改进等。根据要求我们公司派了4个人参加ATM培训(即CMMI-DEV V1.3模型过程引导培训)。

同时还准备4个项目的过程文档、组织过程资产库以及SCAMPI A Appraisal PIID文档,压缩后给主任评估师做预审,咨询顾问针对主任评估师发现的问题来我们公司做了一次现场辅导,解决了大部分发现的问题。

7、正式评估阶段

正式评估为期5天,评估组一共6人,成员包括咨询公司的主任评估师、公司内部参加ATM培训的4人,还有一位外部来自其他公司的评估组成员。如果之前试点的项目认真做,材料齐备,一般没有啥问题,按照评估的安排来做就行了。

正式评估期间做了5场现场访谈:中层管理 EPG OT访谈,需求设计访谈、开发测试访谈、项目经理访谈、配置管理和质量保证访谈。访谈是多人一起问答,最尴尬的事情就是几个同事谈的过程互相矛盾,被主任评估师问的无法可说,还是对流程理解上有欠缺,只是一味按照模板来做事,不了解其中的标准要求,希望后面加强。

评估阶段有些组织级和项目级的文档证据整理不全的还可以完善,并维护好PIID文档,最后都发给主任评估师。这里注意,所有证据材料在正式评估后是不允许修改或者新编的。

最后,主任评估师出具了一份SCAMPI A Appraisal Final Findings报告,待评估资料提交到美国CMMI机构后我们公司将获得CMM ML3级认证,有效期三年。

三、CMMI认证经验总结

1、整个评估过程从去年10月正式启动到今年6月底正式评估结束,公司有20多个人参与(市场口的人员一般不参与),主要的工作落在EPG组长和几个研发项目经理上。没做CMMI之前我们都以为会增加研发部门很多的工作量,后面实施过程中体会到,只是在第一个项目上大家要习惯一下CMMI的流程和产生物要求,改变以往的随机的工作习惯,而最关键是CMMI要求每个项目在立项后做项目总体计划时可以裁剪规则对研发过程进行裁剪,有些过程和输出物可以不做,这样也增加了一定的灵活性。总之我们做CMMI不是为了过程控制来做控制,而是根据组织和项目的实际需要,最终是为了达到项目风险、成本、进度可控优化的商业目标。

CMMI ML3实施的范围是针对公司的软件研发项目来开展的,适用的是CMMI-DEV V1.3模型,所以不适用于公司的系统集成项目和硬件研发类项目,这个大家应该理解的,CMMI全称是Capability Maturity Model Integration,即能力成熟度模型集成(也有称为:软件能力成熟度集成模型),针对的是软件方面的。

2、EPG组长应该是由公司副总级别的技术总监来担任,因为他要非常了解研发的过程和项目管理,另外能够调配各个部门的资源,包括业务部门和技术部门。我们公司在实施过程中由于EPG组长的级别不够,不少工作没有严格落实到位,比如要求该相关部门对流程体系文档做编写和开展培训的,各个业务并没有执行,项目的产出物评审和每轮迭代周期的迭代演示(每两周)也没有严格执行,这些都是CMMI要求的,也是一般公司在流程管理上缺乏的,加之没有严格的绩效考核要求,这些工作就容易不了了之,执行不了。

3、正式评估后,主任评估师给我们总结,说我们公司在成熟度二级过程域做得比成熟度三级的过程域要差一点,跟一般情况有差别,我反省一下,主要是公司研发团队规模小,角色兼职的情况比较多,比如研发项目经理还做了蛮多需求分析和开发工作,我做EPG组长还兼职做组织级和项目级配置管理员,在有些项目还要兼职做项目经理,测试工程师也是后面才招聘的,测试工程师还兼任了QA的角色。

cmmi软件开发流程(公司CMMIML3认证经验总结)(2)

主任评估师建议,QA最好是有个人专职担任,QA兼任了测试,就无法检查测试工作的执行情况,或者另外配备一个专职的测试工程师。这里说一下QA的职责:(1) 负责QA计划制定;(2) 负责定期不定期的过程与工作产品检查;(3) 负责QA检查问题记录与跟踪管理。

4、CMMI DEV V2.0已经在今年3月份正式发布了,但要在2019年1月才接受正式评估申请,可能要到今年10月份才能开始V2.0版本的培训工作。以后公司要做CMMI评估都要走2.0版的模型了。

5、相关重点术语说明

成熟度二级过程域:

项目策划(PP)

项目监控(PMC)

度量与分析(MA)

过程与产品质量保证(PPQA)

配置管理(CM)

需求管理(REQM)

供应商协议管理(SAM)

成熟度三级过程域:

集成项目管理(IPM)

风险管理(RSKM)

决策分析与解决(DAR)

需求开发(RD)

技术解决方案(TS)

产品集成(PI)

验证(VER)

确认(VAL)

组织过程焦点(OPF)

组织过程定义(OPD)

组织培训(OT)

6、最后一点,为了保证CMMI评估的顺利通过,及时根据咨询服务合同按阶段打款给咨询公司很重要。希望以上总结对大家有一定的帮助。

,