|
1.CMMI 是什么? CMMI 的全称为:Capability Maturity Model Integration,即能力成熟度模型集成。CMMI是CMM模型的最新版本。早期的CMMI(CMMI-SE/SW/IPPD)1.02版本是应用于软件业项目的管理方法,SEI在部分国家和地区开始推广和试用。随着应用的推广与模型本身的发展,演绎成为一种被广泛应用的综合性模型。
2.SEI是什么? CMMI的版权属于SEI(Carnegie Mellon University---卡内基·梅隆大学)属下的Software Engineering Institute (软件工程学院)。 SEI 有一批认可的传递伙伴(transition partner)他们是一些在SEI登记号的咨询公司。这些传递伙伴公司提名一些主任评估师,经过SEI的训练和观察就可以按照CMMI的要求使用一个叫做SCAMPI的评审方法,判断企业的成熟级别。
3.CMMI的基本思想 1、解决软件项目过程改进难度增大问题; 2、实现软件工程的并行与多学科组合; 3、实现过程改进的最佳效益。
4. CMMI评估机构 为了说清楚这个问题,我们首先要对CMM/CMMI评估有一定的了解。CMM/CMMI评估的英文缩写是CBA IPI。意思是基于CMM/CMMI的内部过程改进评估。它已在世界范围内得到广泛认同。但是作为CMM/CMMI本身,并不是一个用于专门认证评价用的标准。它的主要目地是向机构提供一种评价准则,可用来识别自己在管理过程和开发过程中存在的优点和薄弱环节。使得企业能够有一个持续改进的基础。通过它企业可能不断的从成熟度较低的级别向较高的级别迈进。
作为制定CMM/CMMI的SEI,本意并不是将CMM/CMMI用于商业性评估活动。因此SEI机构本身并不颁发任何有关CMM/CMMI证书。那么证书是如何申请或得到的呢?首先要知道这个评估是由SEI授权的主评审员来实施。您可在SEI的网站上可以找到这些授权的主评审员的名字。由于SEI并不直接面向客户发放证书,因此证书一般都是由主评审员所在机构颁发的。如果企业希望获得CMM/CMMI证书,可与SEI认可的主评审员联系。他们会具体给您编制一个详细的工作计划和要求。企业只按照这些要求去做就可以了。 5.CMMI的不同评估模型 从CMMI框架可以产生不同的CMMI模型,因此必须首先确定那种模型最适合企业流程改进的需要。 阶段式描述 or 连续式描述 系统工程 or 软件工程 or 两者皆有 使用连续式描述可以根据企业需要选择流程改进顺序,降低企业风险,这给通过ISO做流程改进提供了一个方便的比较。使用能力度(Capability)来衡量。 阶段式描述提供了已经过验证的流程改进顺序,方便从CMM移植过来。使用成熟度(Maturity)来衡量流程改进。 系统工程包括整个系统的开发,可能包括软件也可能不包括。 软件工程用于软件系统的开发,主要集中在使用系统的·科学的·量化的方法来开发·运行·维护软件。
6.CMMI评估方法 自1991年起,CMM出现了很多模型,覆盖了各种各样的专业领域。其中著名的模型有系统工程·软件工程·软件采购·集成产品和流程开发等。然而当企业想要在组织内不同专业领域的流程改进,这些针对不同专业领域的模型在架构·内容和方法上的不同限制了组织成功实施改进的能力。此外,将这样模型在组织内部集成也提高了培训·认证和改进的费用。一套包括多个专业领域的模型加上整合的培训和认证支持将解决这些问题。
CMMI(Capability maturity model integration)是为了合并三个模型到一个框架中
--Capability Maturity Model for Software (SW-CMM) v2.0 draft C, |
--Electronic Industries Alliance Interim Standard (EIA/IS) 731
--Integrated Product Development Capability Maturity Model (IPD-CMM) v0.98
要留意的是,SCAMPI 有三个等级,SCAMPI A 是要求最高的。只有 SCAMPI A 可以定级。SCAMPI B 和 SCAMPI C都不能。
7.CMMI分类
CMMI分为五个等级,二十五个过程区域(PA)。
1. 初始级 (Initial)
软件过程是无序的,有时甚至是混乱的,对过程几乎没有定义,成功取决于个人努力。管理是反应式的。
2. 已管理级 (Mananged)
建立了基本的项目管理过程来跟踪费用、进度和功能特性。制定了必要的过程纪律,能重复早先类似应用项目取得的成功经验。
3. 已定义级 (Defined)
已将软件管理和工程两方面的过程文档化、标准化,并综合成该组织的标准软件过程。所有项目均使用经批准、剪裁的标准软件过程来开发和维护软件,软件产品的生产在整个软件过程是可见的。
4. 量化管理级 (Quantitatively Managed)
分析对软件过程和产品质量的详细度量数据,对软件过程和产品都有定量的理解与控制。管理有一个作出结论的客观依据,管理能够在定量的范围内预测性能。
5. 优化管理级 (Optimizing)
过程的量化反馈和先进的新思想、新技术促使过程持续不断改进。
每个等级都被分解为过程域,特殊目标和特殊实践,通用目标、通用实践和共同特性:
每个等级都有几个过程区域组成,这几个过程域共同形成一种软件过程能力。每个过程域,都有一些特殊目标和通用目标,通过相应的特殊实践和通用实践来实现这些目标。当一个过程域的所有特殊实践和通用实践都按要求得到实施,就能实现该过程域的目标。
能力度等级:属于连续式表述,共有六个能力度等级(0~5),每个能力度等级对应到一个一般目标,以及一组一般执行方法和特定方法。
0 不完整级
1 执行级
2 管理级
3 定义级
4 量化管理级
5 最佳化级
8. 申请CMMI的认证费用计算
关于CMM/CMMI的认证费用的问题很难回答,从上面题目的讲解中你可以看到它主要取决于评估者及所属的机构。费用大小的直接决定因素是评估机构所承担工作量的大小,同时也包括其它的非评估的费用。比如签证费、保险费、机票等等。因此,关于评估费用各机构不尽相同。另外,在评估过程当中,还要考虑企业是否要求评估机构提供相应的培训和其它服务等。
总之,评估费用是包括这么几类:
一类是评估人员的工资(按天数×日工资),评估人员所在机构的收取的费用、评估人员的住宿、保险、签证、交通等费用。这些费用一般可从三万美金至九万美金不等。同时我们还应注意,评估费用还与评审员所在国家工资收入平均水平不同而不同。与美国评估机构相比,印度及其它发展中国家评估人员审核费用相对较低。上述费用仅仅是一个考虑值。
9. 针对一些拥有很强技术队伍的公司对是否需要CMMI的认证存有疑问的解答
首先请注意的,是技术水平和过程成熟度的分别。一个技术很高的团队,未必就是过程成熟的。技术可以通过个人能力达到。过程的目标,是把员工的效率管理好,达到一个能够在不同情况下重复成功,并且不断地能够积累经验,提高效率,以达到能够在最短的时间,最低的成本开发出高质量的产品,来更好地满足市场和客户。
当然,这个需要一段时间。这是过程,不是流程。流程可以立刻使用,但不能保证生效。过程是一个制度,是管理理念、思维、习惯的改变,所以需要时间,但长远来说,生产力和质量的提高,是深远实际的,是远远比单依靠个人能力大得多。而且,没有有效的过程,个人能力的提高是有限的。我在贝尔实验室的时候,说过一句话,“I can be as good as the superior allows me to be!”这就是说,不良的过程,也可以是进步的一个障碍。反过来说,有效合理的过程,可以通过有效管理技术,促进员工个人能力的提高。
10.CMMI国内的咨询模式
目前国内CMMI咨询模式有两种。一种是以评估师为核心的模式,简称评估师式。该模式最大的特点是评估师除提供评估活动外,还提供CMMI培训服务(目前SEI已有所限制),但评估师往往不提供日常咨询服务。另一种模式是以培训师为主的咨询模式,简称培训师式(国外主要要的服务模式)。该模式最大特点是培训师参加CMMI导入的全过程服务,包括日常咨询服务,一步步地帮助企业建立满足CMMI模型要求的开发和控制体系。但一般培训师不参加评估活动。评估活动由咨询方合作伙伴(主评估师)承担,以确保客观性和公正性。我公司是基于后一种咨询模式。
11.推行CMM/CMMI能够给公司带来好处?
一个软件项目能够成功的最基本特征就是整个软件项目是在一个合理的计划指导下,有序地完成各项规定的任务。这包括十个最基本的因素。这些因素都可通过建立CMM/CMMI模型所获得的。它们是:
① 增强软件开发的过程中的规范性,提高软件开发的质量。准确核定软件开发的成本,实质符合国际通行软件开发的服务标准,是软件企业正规化、国际化、科学化的必经过程。
② 使自己与国际化接轨,是走向国际市场的金钥匙。
③ 软件外包的前提要求,因为您的潜在客户是通过CMMI认证了解到贵公司的软件开发技术水平与企业内部管理质量。
④ 同理,在市场占得先机并不单单是软件外包业务。比如招标,投标政府采购中,主办方也会参照这一国际通行CMMI的认证。因为这比企业自我描述性评价更具说服力。
⑤ 符合国家关于科技企业尤其是软件企业的支持政策及发展要求,是国家对IT产业规范化,国际化,能力化的引导。
⑥ 在企业决定进行CMMI认证后,可以享受各个地方政府的优惠政策。
⑦ 是银行信贷资信的重要证明,享受贷款优惠利率和申请政府科技基金的必然前提。
⑧ 对企业自身的内部管理,外部形象有很大的提升作用。
12.推行CMM/CMMI可能对公司目前工作带来的影响
许多软件企业都面临着两难的选择,一方面,对目前软件开发工作的混乱局面感到头痛,希望采取措施,立即加以解决。另一方面,又担心推行CMM/CMMI对目前的开发工作带来冲击。特别是在开发任务紧,人力资源不足,资金紧张的状况下,更难下定决心。
那么如何看待推行CMM/CMMI对开发工作带来冲击呢?这就取决于企业高层管理人员的认识了,一句话:这种“冲击”是值得的。
这种冲击首先表现在“额外”增加许多工作量,示意图如下:
未推行CMM/CMMI
a-------------------------b--------------------------
|
软件开发周期 软件维护周期
推行CMM/CMMI
a′------------------------------b′---------
软件开发周期 软件维护周期
上看推行CMM/CMMI之后开发周期有所增加,即a′>a,但维护时间缩短了许多,b′<b,综合两者,a+b>a′+ b′。即表面上虽然开发周期变长,但整体时间缩短,成本大大降低,而且产品质量显著提高,因此是值得的。
其次有些冲击是必要的。例如,文化上的冲击。以往我们的软件产品开发是靠“个人英雄主义”,而当今软件产品开发是靠“兵团作战”。推行CMM/CMMI就是这种“兵团作战”的基础。因此,这种在文化上的冲击也是必要的。其它冲击还有很多,在这里就不一一赘述。
目前许多软件企业管理人员有一种类似如何处理龋齿心态,因为怕痛不去医院治疗,推行CMM/CMMI一定会带来文化上的激烈冲击,这样下去后果大家自然会想到。因此一定要正确看待推行CMM/CMMI所带来的冲击。
13.有关企业可否越级直接申请
目前在国内软件企业推行CMM/CMMI过程中有些企业提出了越级推行CMM/CMMI的要求。这本不是一件坏事,向更高的标准迈进应该得到鼓励,但是我们必须客观和科学地看待这一跳级现象。首先CMM/CMMI本身并没有明确的越级指导,是否跳级推行CMM/CMMI,取决于企业的管理基础。如果企业有着良好的基础,CMM/CMMI2级所规定的目标都可以实现,自然可以不必从头做起。
但就中国软件企业的基础而言还是从头做起为好。为什么给出这样建议呢?因为目前中国软件企业的基础比较薄弱。例如:大多数软件企业都没有建立管理体系、开发过程和产品等基础数据库;没有真正的、有效的和闭合的对管理体系、开发过程和产品进行监督和改进机制;存在着不愿编写文档等思想和文化上的阻碍等。如果您不信可以对照CMM/CMMI的要求来检查一下,答案就清楚了。另外还要说明的是CMM/CMMI的建立的过程也是企业文化建立和完善的过程,形式上编写CMM/CMMI的相关文档,而企业文化上没有相应的改变,其CMM/CMMI的推行结果是不理想的。企业文化建立和完善的过程需要时间,不顾这些越级推行CMM/CMMI工作,企业会付出巨大的纠正代价。 |