探索基于CMMI的过程改进之道
 

2010-12-22 作者:何丹 来源:万方数据 

 

近年来,由美国SEI(软件工程研究所)开发的SW-CMM(软件过程能力成熟度模型)模型以及改进后的CMMI(能力成熟度模型集成)模型得到了国际上的广泛认可。因此有越来越多的软件和IT公司已经或开始采用这些模型开展相应的过程改进工作,来提高过程能力的成熟度,以期使公司的软件或系统开发工作更加高效,更具有国际竞争力,这似乎已经成为一种潮流。很多公司都怀着这种美好的愿望开始了过程改进的旅途。

作为过程改进的咨询顾问,我看到了一些非常成功的案例,但同时也看到很多失败或至少是并不十分成功的结果。不少公司在过程改进之路上蹒跚而行,一路走来,一路泄气,一路放弃,一路逃避,那海市蜃楼般的愿望逐渐随着改进阻力和挫折感的增加而逐渐褪去。过程改进在一片人云亦云的潮流中浑浑噩噩起步,又在一些责备声中浑浑噩噩地销声匿迹。真正的原因在哪里?能不能总结一些经验和教训让这些公司少走一些弯路?虽然这些经验教训可能并不完整、可能并不完全正确,但希望能够抛砖引玉,激起更多的人来进行讨论和反思。

1清晰的过程改进目标

走访过很多实施过或正在实施CMM或CMMI模型的公司,当我问到采用CMM/CMMI进行过程改进期望达到的目标是什么,很多公司的高层都会告诉我,目标是多少个月后达到CMM或CMMI X(2~5)级。这不是过程改进的目标,更准确地说这应该是里程碑。真正的目标应该是和公司业务目标紧密联系的,应该根据各公司的现状和业务特点而各不相同:如客户满意度提升、员工满意度提升、开发周期缩短、开发成本降低等。只有明确这样的目标,再根据公司的强项和弱项分析,才能对改进优先级进行设定,否则员工看不到切实的改进成果很容易造成士气低迷,高级管理层看不到公司获得切实的收益很容易放弃。CMM模型是业界著名公司的优秀实践大全,共316条,而CMMI模型更是扩充到400多条。对于如此庞大的过程改进模型,如果不根据公司特点进行优先级排序,很容易在过程改进中失去重点。

即使公司的有些地方与C M M和CMMI的要求有不小差距,但如果这些方面的改进对公司目前的业务目标支撑并不强,也许并不需要马上进行改进。所有的改进要符合压强原则,先集中力量对业务目标支持比较强的方面进行突破。而其他方面的缺点和不足,可能当前并不一定要花大力气提高,否则全面进行改进则有可能顾此失彼。过程改进中很多人都采用木桶原理,也就是改进最短的木板,因为木桶盛水的高度是由最短的木板决定的,所以自然考虑到优先改进公司的弱点。但木桶原理是有其适用背景的,关键要看目标是什么?如果木桶不是用来装水,而是用来烧火,那么长短就无所谓了。有些情况反而要首先改进自己的强项,这样才能扬长避短,更好地支撑业务的发展。

基于CMM或CMMI进行过程改进最成功的几个公司在过程的改进中有很多创意,如:某著名公司过程改进中并不是按部就班地根据2级-3级-4级-5级这个顺序逐步进行改进的,而是先改进了5级的一个过程域—CAR(CauseAnalysis and Resolution),因为80%的问题是20%根源造成的,CAR正是用来分析和解决这20%根源的方法,因此对公司的投入产出比最大,应该先行改进。因此过程改进前没有明确目标和业务特点方向,则很难按照公司业务特点来诠释CMM/CMMI模型,就很可能造成削足适履,给改进带来挫折乃至失败。

2过程成熟度就是承担责任和使命的能力

在工作中,我们经常可以听到以下的借口和声音:“我们不执行开发流程,是因为我们的项目比较特殊……”;“我们没有执行这些规范,是怕这些规范束缚了我们软件人员的创造力……”;“CMMI和I S O都是些没用的东西,所以我没有执行……”。虽然不少公司耗费了财力物力制定了很多流程和规定,但却没有有效地执行。

任何流程、规范等在初次制定时,都不可能很完美,需要在执行中不断发现问题,解决问题,逐步优化流程,才能使流程具有新陈代谢的生命力。但我们每个人都或多或少地习惯了过去的开发习惯

和生活习惯,不太愿意被改变,也在惯性和惰性的驱使下不太愿意去尝试改变,因为这样有可能会暴露自己的弱点和不足,不够安全。表面看来,我们降低了风险,处于安全区,但却把自己最宝贵的能量束缚了起来,不停地说服自己降低对自己的标准,以为这样是对自己负责,殊不知不把生命的能量发挥到极致,才是对自己最大的不负责任。

过程能力成熟度实际上是承担责任和使命的能力,成熟度和年龄没有太多的关系,一个在苦难中长大的孩子在弱冠时就可以顶天立地,一个在蜜罐中长大的人,可能直到满头白发时还在颓废中不断地放弃。让我们成为流程执行和改进的楷模去领导和影响他人,而不是成为一个指手画脚的批评者。

3流程的创新和裁减

有一次,一个软件开发成熟度较高的国外公司质量经理很自豪地告诉我:“我们公司过程体系已经非常成熟,以至于近两年来都没有人能提出改进建议。”公司制定流程的目的是希望把已有的知识和经验固化下来,形成知识和经验的重用,以更好地支撑公司的业务。但一个公司的业务在不断发展变化,一成不变的流程如何能够适应不断变化的业务呢?如果一个流程体系不再变化,也许是没有人再有兴趣去使用它,也许是使用流程的人已经形成了思维的定式,陷入了一个次最优状态。在国外一个著名的C M M 5级公司,一位项目经理在项目启动时制定了项目计划,送交高层审批,受到了高层的严厉批评:“根据你的计划,表明开发项目,世界上没有两片完全相同的树叶,每个项目都有不同的特点,如果你没有对公司流程进行裁减和创新,说明你没有找到项目的特点,也不能把项目的特点真正发挥出来给公司创造最大的价值。”

与国内外一些著名公司或研究机构的一些人交流过之后,发现有些人非常平庸,没有思想、没有创造力。不禁问自己:是否过程体系过于完善,使庸人不再思考,只会完全按照流程照猫画虎。

过程体系是知识和经验的积累,对它80%的重用,另外有20%的不断创新和裁减,这样既能保证过程体系的稳定,给公司带来巨大价值,同时又能使它具有强大的生命力,从而拒绝平庸。

4流程的心

在一个培训中,我把培训学员分成几个小组,分别使用同样的流程来做一个练习,结果一个带着激情的小组和一个带着敷衍态度的小组使用流程的效率和结果有天壤之别。这使我想起一位国外著名管理大师的话:过程改进失败只能有两个原因,其中最重要的原因就是缺乏激情。
流程如同是一个躯壳,它的灵魂是流程使用者的心。一个优秀的流程远没有一颗热情的使用流程的心重要,因为只要有这颗激情洋溢的心,这个流程就会持续改进,这个流程就会焕发出强大的生命力。

心在流程,就会持续改进出最适用的流程,是心赋予了流程以灵性。

5.谦虚—流程改进之魂有些公司在开始基于C M M或CMMI改进流程体系时,认为以前基于ISO标准制定的流程完全没有指导意义,因此选择了彻底放弃。后来,发现6 S I G M A又非常流行,又开始觉得CMM和CMMI过于迂腐,因此再次放弃CMMI流程而转向定义6SIGMA流程。还有些公司因为人事的变动,每次负责人的更换都要推翻以前的流程体系。经过几年的过程改进,发现自己还是在原地踏步,因为每一次改进都是几乎全面的放弃,而不是扬弃,这样只能永远在较低水平振荡,无法超越。有些公司的不少软件项目实际上失败或部分失败了:项目大大延期、超支、质量低下、客户不满意等,项目开发过程中充满了焦虑、争吵、无休止的加班……一个知识型的公司最大的资产就是知识和经验,而最容易采得知识金矿的时候就是项目结束点和重要里程碑点,但我们却很少花精力在这些点去反思和总结,因为我们有一个美妙的理由:失败是成功之母,然而如果没有对失败的反思和总结,失败永远无法成为成功之母。以谦卑的心向自己和同仁成功的经验以及失败的教训学习,以开放的心态向业界的经验教训、过程改进模型和标准学习。只吸收有用和有价值的东西,不再苛求那些现有流程中不正确和不完美的地方,不再苛责书本上的一些错误,才能让工作和流程在扬弃中不断地趋于完美。

6让改进成为一种习惯

我在给一个著名的跨国公司做5级评估时,几乎每个开发人员都告诉我缺陷预防工作的开展给他们的工作带来的帮助和改进,这里改进已经形成了一种文化和习惯。

美国著名的质量大师戴明博士在二战结束后把他的质量理念带到日本,对日本的经济腾飞起到了非常关键的作用。20世纪50年代初期他在给日本很多公司总裁(参加培训的人员包括松下幸之助、盛田昭夫等)做培训时提出希望:每一个员工、每一个部门、每一个企业每天进步1%。20世纪80年代他把质量理念再次带回美国,福特汽车经过两年的改进,最后获得了60亿的净利润。

每天进步1%,其实是要让改进成为一种习惯。而习惯的形成需要对流程的有效执行,流程就像戒律,对流程的执行会养成人们的习惯,最后融入文化和品格。

现代铁轨宽度4英尺8英寸,是由有轨电车设计师设计的。电车标准来自于马车,马车来自于几千年前的古罗马人战车,而战车的宽度是牵引战车两匹马臀的宽度。也就是说,几千年前两匹马臀的宽度决定了今天我们使用的科技。所以不管做什么事情,如果我们当初选定的路径是正确的,就会进入良性循环轨道;反之,则很可能会逐渐下滑。一旦人们做了某种选择,就好比走上了一条不归之路,惯性的力量会使这一选择不断自我强化,并让你轻易走不出去。这就是著名的路径原理。

美国科学家发现,一个习惯的养成需要21天的时间。从效率角度分析,习惯应该是投入产出最高的了,因为一旦养成,终身受益。对一个公司也是如此,如果让过程改进形成一种习惯,那么将是投入产出最大的决策了。好的团队就是一天比一天好的团队,好的公司就是一天比一天好的公司,也就是把改进变成习惯的公司。

我们每个个体、团队、公司都需要长大,需要在螺旋式上升中实现一次次回归,一次次在改进中实现凤凰涅,让我们在一骑绝尘的改进中给我们的后来者展示一个优美的马臀……共同期许一个个伟大员工、团队和公司的诞生。



用敏捷方法推进CMM过程改进
CMM 二级SQA 关键过程域
基于SPEM 的CMM软件过程
敏捷与CMMI
Cmmi and Six Sigma Synergy
CMMI vs 敏捷
更多...   


软件过程、管理和质量-好资料
过程改进具体是做什么的
Scrum 敏捷项目管理-资料分享
分享资料:CMMI vs xp
如何保证员工或项目经理对当前


企业架构TOGAF


CMMI体系与实践
软件开发过程指南
软件开发过程中的质量管理实践
以"我"为中心的过程改进
软件质量管理
量化项目和过程管理


某航空研究所 CMMI体系实践
某知名软件服务商 代码评审
中国气象局 CMMI ML3实践
北京 CMMI体系与实践
电讯盈科 CMMI体系与过程
ADI-美国模拟器件 CMMI实践
更多...   
 
 
 
 
 

组织简介 | 联系我们 |   Copyright 2002 ®  UML软件工程组织 京ICP备10020922号

京公海网安备110108001071号