CMMI五个级别旁解

来源:互联网 发布:斑马梦龙网络计划教程 编辑:程序博客网 时间:2024/04/24 21:03

CMMI的五个级别如何理解呢?我来做个类比。大家都学过社会发展简史,人类社会经历了原始社会、奴隶社会、封建社会、资本主义社会,还有马克思预言的共产主义社会。CMMI五个级别分别与人类社会的五个形态有类似之处。

CMMI一级如同原始社会。在原始社会,没有法律、没有制度,部落间发生冲突和相互仇杀是常有的事情。在CMMI一级的组织,产品开发没有规矩,每个人的工作方式全凭喜好和习惯,一般项目中也极少有关于过程方面的规定,不论采用什么方法、遵循什么样的开发步骤,最后只要把代码写出来了就可以了,软件开发的主要活动就是编码和调试。很少有项目计划,顶多有个项目时间表,需求、设计等工程文档也很少有。

CMMI二级如同中国的奴隶社会。从奴隶社会开始,人类便有了文字记载的历史,出现了法律法规,人类进入文明时代,夏、商、周、春秋战国都属于奴隶社会。但中国的奴隶社会国家,实际上是由众多的诸侯国构成,每个诸侯国有自己法律、度量衡、货币、语言、文字等。

处于CMMI二级的组织,各个项目(好比诸侯国)有了各自的制度和标准,比如项目A规定采用瀑布开发模型,使用CVS作为配置管理工具,要度量项目的进度和成本;而项目B规定采用增量开发模型,使用VSS作为配置管理工具,度量项目的质量成本和需求稳定度。同CMMI一级比,项目的开发过程已由混乱的开发方式跃迁到了有纪律的开发过程。

公元前221年,秦始皇统一全国,从此中国开始步入了封建社会。秦始皇不仅仅统一了领土,更具有长远意义的是他统一了法律、文字、货币和度量衡。在秦之前的诸侯割据时代,文字的不统一严重影响文化传播和交流,货币制的不统一,也严重阻碍着各地商品的流通及统一国家的财政收支,其它方面的不统一也同样带来各种各样的问题。文字、货币、度量衡的统一,在中国历史上占有重要地位。孔子之孙子思在《中庸》倡导“今天下,书同文、车同轨、行同伦”,可见统一的、标准化是多么重要,如同工业上零件规格的统一,或网络协议的统一一样,都有着重要。

CMMI三级类似封建社会,结束了项目的“各自为政”的状况,整个组织有统一的过程、标准。这样,新启动的项目不必花精力考虑本项目该走什么样的过程、遵循哪些标准、使用什么模板等等。因为过程的统一,不同项目项目经验教训具有了可参考性,项目数据具有了可比性了,有了这样的前提,组织可以创建过程财富库,收集历史项目的经验教训、度量数据、文档样例等等,为后续的项目所使用。所以,到了三级项目管理是基于一个已建立好的平台上进行的,比如项目经理花费心思项目计划要包含哪些方面,组织级的项目管理计划模板提供了答案。也许项目经理经验有限,不清楚制定一个好计划有哪些注意事项,那么组织级的项目计划检查单可以帮助项目经理注意到制定计划的关键点,从而制定更加全面、完整的计划。组织级的经验教训库和风险库同样可以帮助项目经理计划和监控项目。

目前,许多组织为了提高生产率、缩短开发周期、降低开发成本,提升产品质量,建立了一些产品重用组件库,当有了新产品开发时,会像搭积木一样去使用重用组件构建产品,只对产品独特的地方进行重新开发,这样的过程叫做产品重用,或叫技术重用。而CMMI三级的组织,其流程体系(包括流程、模板、指南、规范、检查单等)和所累积过程资产(如经验教训、风险、样例、度量数据等)类似于一个个产品重用组件,为项目开发管理所用,这样的过程叫做过程重用。大家都知道重用可以大大提升效率、提高质量,产品重用是有形的资产重用,而过程重用是无形的资产重用。如果能够很好对无形资产进行累积,并且在项目中推广使用,那么会给组织带来的价值会远超于产品重用所带来的价值。

可见,CMMI三级相对二级有时一个飞跃:二级开发制度是“诸侯割据”的状态,而三级“一统体天下”;二级是项目级的,而三级是组织级的。

CMMI四级类似资本主义社会。很多读者或许同我一样,未必会多了解资本主义,那么我们就用社会的部分现象做类比,只要能有助于理解CMMI就好了。

资本主义相对封建社会,科技有了巨大的进步,做什么事情都讲究科学,而科学又是通过数据呈现出来的。研究天文的,有天文方面的数据;研究地理的,有地理方面的数据;研究经济的,也有经济方面的数据……有了数据,才能说明人们对所研究的事物有了认识和理解。在这些数据的基础上,通过实践与分析,人们在各个的领域建立一些模型,通过这些模型来理解过去、预测未来。比如,天文学家可以精准地告诉我们何时何地会出现日食;经济学家可以解读金融危机的原因,预测未来经济的走势……

处于CMMI四级的组织,通过历史项目数据的累积,可以反映出当前的组织能力状况,如生产率是30LOC/人天,进度偏差是20%等等,同时可以建立预测模型预测未来,建立控制图找出过程中的异常因素。四级的项目管理要依据数据进行管理,而不仅仅凭着感性的经验,因此,也被称作量化的项目管理。

需要注意避免一个误区:到四级才有数据、才有度量。其实,在二级就有了度量与分析这个过程域,如果没有二级、三级度量方面基础,四级的量化管理将成为空谈。二级的度量和四级的量化管理是有区别的,用个炒股的类比来解释。

股票的价格起起伏伏,二级要求股民根据目的设定度量项,并要收集和分析数据,基本上每个股民的目的都是想盈利,那么,收集、记录股票买入价格、买入时间、卖出价格、卖出时间和股票量等数据,从而帮助分析盈利情况。在二级,股民缺乏数据帮助他们理解具体是什么因素导致股票价格上扬或下挫,也不清楚明天后天的价格会是多是。如果到了四级,某些度量项要进行细化,如股票价格,设为Y,通过长期的数据累积和假设验证找出影响Y的因子x1x2……,从而建立了股票价格预测模型:

Y=f(x1,x2)

另外要注意的是,SEI对四级和五级的理解和要求自2007年已发生了很大变化,以往四级强调过程的稳定性和控制图的使用,而现在更强调过程的可预测性,以及对过程偏差的理解。

综上所述,如果用两个词来形容CMMI四级,一是量化管理的,二是可预测的。

CMMI五级就到了人类社会的最高阶段——共产主义社会。在共产主义社会,物质和精神文明极大丰富,因为是共有制,社会资源更够根据全民的需求进行合理的配置,而不是以资本家的利益为导向的,从而避免了经济危机、金融危机,社会效率非常高。

达到了CMMI五级的组织,在四级量化管理的的基础上,通过持续的、系统的改进,其生产率、产品质量等重要指标都有很大提升。

关于五级的理解,同样要避免一个误区,以为只有五级才要持续改进。其实,从一级到二、三、四、五级,这个过程一直是持续的过程,即使一个处于三级的组织想要维持三级的成熟度依然要持续的改进,因为环境不断地变化,新问题会不断地出现,过程也要随之优化。

那么,五级的持续改进和之前级别的持续改进差别在哪里呢?比如,一个人每天开车上下班,他不断改进以减低油耗,比如改进开车方式,如不猛踩油门;速度快时关闭车窗以减小阻力;在路况和交规允许的情况下,高档快速行驶;保证车胎气量充足;确保车上没有多余负载等等。这些改进项一般是比较明显的,改进者凭借着经验、靠着感性进行的,属于五级前的改进。

如果他上下班有两条线路可以选择,A线路10公里,平均速度慢,但红绿灯相对多;B线路12公里,红绿灯少,平均速度快。如果他平时大都走A线路,那么他现在要不要改进走B线路呢?这样问题很难回答了,就不能靠感性来选择,一定用数据来说话。我们假设其它条件相同,可以建立一个汽车耗油模型,耗油量设为Y,路程、车速和启动次数为影响Y的三个因子,设为x1x2x3,则有:

Y=fx1, x2, x3

当通过大量数据统计,得出各个因子的实际数值或者数值分布时,就可以计算出YaYb,如果YaYb,则他应该选择线路B了。则这样的改进就是五级的改进了。可见,五级的改进是基于数据的、更加理性的改进。


原创粉丝点击