CMMI是什么?看完这篇你就懂

CMMI是什么,这已经不是什么新鲜的问题,网络搜一搜,一抓一大把的介绍,看的人头晕眼花,今天超级认证侠用最通俗易懂的方式,跟大家探讨一下CMMI的定义,它到底是什么。

一、模型与最佳实践

首先请思考一个问题,如果你被要求做一个从没做过的工作,你会怎么办?可能你会不知所措,找不到思路,但其实也有一个很简单的办法,就是去请教那些做过的人,看看他们是怎么做的。如果有可能,最好多问几个不同的人,比较一下,获得最好的做法。CMMI也是这样,来源于业界的最佳实践。通过从业界收集的最佳实践进行分析,发现其中对项目开发的成功能起到至关重要作用的实践,再将这些实践进行整理后命名为过程域(PA),CMMI V1.3中就有22个这样的过程域,这些实践按相关性可以分为过程管理、项目管理、工程、支撑四个领域,为组织在不同领域的改进提供指导。

另一方面,通过对不同项目实践分析,发现实施不同的实践组合和次序会带来不同的结果。例如,如果没有良好的项目管理,项目就不能有效的执行,那么项目管理是项目能够成功的基础,所以首先要实施项目管理的相关实践。通过几个项目的成功实施后,发现还有除了项目管理,工程技术方面的实践也对项目的成功有着重大作用,那么就将这个过程固化下来,这样就形成了组织标准开发过程,是一个组织成熟的表现。CMMI将过程能力分成了5个成熟度等级,也就是常说的初始级、已管理级、已定义级、定量管理级和优化级,在CMMI中叫阶段式表示法,也叫成熟度等级。CMMI模型认为具有不同成熟度的研发组织具有不同的过程能力,拥有不同的研发和管理能力,也就是项目能够成功的能力。成熟度等级为组织级改进提供了一个预定义的路线图。还有一种连续型表示法,是支持单个过程域的改进方式,组织可以根据自身的情况,选择某个特定的过程域进行实施,以提升和改进组织在某一特定领域的能力,这叫能力等级。选择哪种方式作为改进方式,需要依据组织自身情况来确定。

还要说明一点,CMMI内容分为“Required”(必需的),“Expected”(期望的)、“Informative”(提供信息的)三个级别。最重要的是“必需的”级别,是模型和过程改进的基础。第二级别“期望的”,在过程改进中起到主要作用,但是某些情况可能不会出现在成功的组织中。“提供信息的”构成了模型的主要部分,为过程改进提供了有用的指导,在许多情况下他们对“必需的”和“期望的”构件做了进一步说明。在一个PA中,一般PA的目标属于“必需的”,PA中建议的实践属于“期望的”,其他对目标和实践的补充说明属于“提供信息的”。从这里可以看出CMMI模型只提出了目标是必须达到的,并没有要求你怎么去达到目标,你可以用业界最佳实践,也可以用你自己的原始办法,更加可以创造新的方法。

回到了CMMI是什么的问题上,从这里可以看出, CMMI是一个模型,是实践,它不是标准,也不是流程,所以它并不会告诉你具体要怎么做。它给我们提供了一个框架,一个可预期的改进线路图。

二、为什么要改进过程

做任何事情都是有过程的,连最平常的吃饭、刷牙也不例外,但不同的过程或顺序会带来不同的效果。例如不要饭前喝太多汤,这样会稀释胃液,影响消化;还有刷牙也不简单,经常能从牙膏广告中看到要上下刷,左右刷,内外刷,甚至还要刷舌头。当然产品开发的过程比吃饭刷牙要复杂的多,不同的过程会对产品质量带来不同的影响,通过不断的调整和改进过程,可以帮助提高组织的生产率和产品质量。

在谈论复杂的产品开发过程改进前,先来看一个简单的桌球的例子。打桌球的动作看似简单,其实是一系列复杂且紧密联系的动作组合。对于初学者,想要一下子打出一杆好球是挺困难的,像握杆的手势、站姿、击球的位置都是基础,必须先掌握好。但是我们一般不容易发现自己不对的动作,这时需要一个高手来指出哪个动作是需要改进的。例如击球时,两个手臂间是90度,这个可以作为后续击球动作的基线在击球时度量。当错误的动作改进后,它们就可以合并成一个更加集成的整体动作,就可以使用它达到预期的目标,击球入洞。最后当击球动作正确且能持续后,就可以根据球桌上的实际情况来选择正确的战术策略,例如在没有进球机会时选择防守性击球、通过击打母球不同的位置来控制母球走位等。组织的过程改进跟打桌球的改进是类似的,CMMI模型可以帮助我们把过程分解成很多小的活动,然后告诉我们哪些是最基本的,帮助我们确定哪些活动应该先做(例如2,3级的PAs) ,哪些活动我们做的不好需要改进。

另一方面,过程改进也能帮助项目与组织业务目标保持一致。不同的项目有着不同的业务目标,有的为了大规模商用,需要高的质量和可靠性;有的是为了抢占市场,需要快速交付。为了实现这些目标,你必须了解这个产品是如何开发出来的,每个步骤、活动是什么。必须了解这个过程、这些步骤的可变性,这样就可以根据项目的目标调整它们。例如,当对产品质量有更高要求时,可改进已有的组织标准过程,如改进检视方法、增加测试活动、增加质量评估点等;当进度更被关注时,可加强对进度的监控,设置偏阈值,加强进度相关风险管理等。当然,我们还可以将这些变化度量和记录下来,形成组织过程基线,为下次的改进提供输入。过程改进活动还能提供指导,帮助我们定义和标准化组织过程,提高工作效率、减少返工,度量组织的性能和利用数据来管理业务。所以,想要提高组织的竞争力,必须不断的改进,这就是过程改进真正起作用的地方。

随着科技的发展,应用的多样,项目变得越来越庞大,越来越复杂,跨学科,跨地域的变得越来越普遍,涉及的人员也越来越多。如果在这样一个项目中使用不同的模型沟通和协调的成本会非常的高,资源分配也会很混乱,各种模型能否有效衔接也是一个大的问题。因此更需要一种统一的过程改进框架,能有效集成和管理。

我们再来看一下CMMI的定义,是否好理解一些了,综合一下上文中所提到的二点,超级认证侠给大家总结一下CMMI是什么:

1. CMMI是模型,是业界最佳实践,不是标准,不是流程;

2. CMMI提供一个统一的、包容性的过程改进框架,可以容纳创新;

3. CMMI是一个集成的框架,致力于解决全系统的问题;

4. CMMI通过改进组织过程,以开发高质量产品与服务,满足客户的需求。