由于CMMI模型错误的使用,使得很多CMMI企业内部参加评估项目的工程人员有一些痛苦的经验,造成业界对CMMI的价值产生怀疑。
很多人把引入敏捷作为纠正CMMI错误的考虑,把二者看成水与火的关系。
在“知行合一”一书的第三部分,我详细讨论了CMMI和敏捷开发模式结合的一些有效方法,论证了二者的互补性。
这里我分享下敏捷领军人物对二者的关系的一些看法。
Ken Schwaber(Scrum的主要创建者之一)对CMMI看法的转变就很有代表性。
相当长一段时间,Ken对CMM/CMMI的印象很不好,在他看来,CMMI在不确定的开发环境下,为产品开发设置了不必要的官僚障碍。
CMMI企业都是建立了一套“死板、按方抓药、按步骤操作”的过程体系,像所有定义的方法一样,这样体系的致命伤是,它只能是对可提前正确预测的场景有效。
而在软件开发中,很少会碰到一切都可预测的项目。
随着Scrum的广泛应用,越来越多的人向他请教CMMI和Scrum的关系,他意识到有必要深入了解CMMI的核心理念。
最好的方法是和CMM作者直接沟通。
和Mark Paulk(CMM作者)沟通后,Ken回顾道“我十分吃惊,对CMM肃然起敬。”他第一次意识到,CMM/CMMI是一个是描述组织软件开发成熟的一个框架。
用什么样的方法满足这个框架的要求,是组织可以根据具体情况来决定。
评估小组就是要判断这个实现方式是否能满足框架的要求。
敏捷可以是一个具体满足CMM的实现方法。
更令Ken吃惊的是,Scrum可以满足CMM三级大部分项目相关的过程域的要求。
而CMM几个组织级的过程域,也弥补了Scrum的不足。
2003年以后,Scrum联盟的Scrum认证项目以及推出的一些Scrum方法工具,也可以帮助满足这些过程域的要求。
David Anderson(软件看板方法的创始人)正确的观察到“很多敏捷专家把CMMI和传统方法划等号,2002年以前,我就是这样认为的。
现在我意识到传统方法实际是瀑布模式或V模型的模式。
在我看来,CMMI是在敏捷和传统方法之上。
可惜直到今天,很多人还不这样认为。”
Jeff Dalton(CMMI的主任评估师、敏捷领袖人物之一)写到:
“我看到一些敏捷组织,在敏捷的名义下,不再执行过程同时也放弃了有价值的文档。他们的依据是敏捷宣言中有关开发出有效的代码优先于项目文档条目。
宣言中的这一条,是希望能将关注天平从文档为中心的传统开发模式移开,很多人将其理解成不需要过程、不需要文档。
在开发大而复杂的系统时,这样的理解会导致项目的失败。
如果CMMI能和敏捷成功结合,它能够提供必要的基础建设,在保证敏捷迭代开发的前提下,有效支持将敏捷的应用向管理开发复杂系统扩展。
令人诧异的另一件事是,所谓“敏捷组织”很少用敏捷方法设计推广它们的过程。”
Jeff Sutherland(另一位Scrum的创建人)近年来在CMMI和敏捷结合的实践中,做了很多工作。
他为全球首个用Scrum方法实现CMMI五级要求的企业提供了咨询服务。
在CMMI五级架构中,通过引入Scrum,这家企业在下列方面都降低了50%:
缺陷数、返工量、整体必要工作和过程相关的投入。他认为CMMI和Scrum的结合是软件开发的一剂“灵丹妙药”。
由于CMMI高成熟的组织有较强的能力管理变革并将变革成果制度化,所以这些企业从瀑布模式到敏捷模式的转换,会做得更快更好。
对已经实施敏捷的企业,Jeff认为CMMI中的通用实践可以帮助敏捷实践制度化的落地改进,精益软件开发(lean software development)可以用来作为识别改进机会的一个操作工具。
他对CMMI社区的建议是敏捷完全可以使用于CMMI框架,正确的结合是可以为企业带来令人兴奋的改进效果。
CMMI高成熟企业能使组织引入敏捷变革的速度更快、更好。
Barry Boehm建议应根据具体项目的特点(如失败的可能性对照进入市场的巨大压力)结合平衡计划驱动和敏捷的方式,已吸取两种方法的强项。
Alistair Cockburn(Crystal(另一敏捷方法)的创始人)指出:
“没有敏捷性的强执行力往往意味着官僚和僵化.没有执行力的敏捷则像是初期创业公司在盈利前没有控制的热情。”在实际操作中,相对于开发工作,到底需要多少计划和架构工作才能最大程度的降低项目的风险?对这个问题,没有一目了然的答案,只能具体问题具体分析。
同时引入CMMI和敏捷时,一定要考虑到团队内外的相互信任度、客户及终端用户的参与度、项目的范围及规模、预期的产品寿命、延期提交的代价、早期部分功能提交的价值及质量成本等因素。
这两种范式的结合点在哪里?如何有效的将其结合?如何判断这种结合的有效性?如何形成一个适用于中国软件业的方法?这些是我们需要通过实践回答的问题。
CMMI的作者对CMMI的支持者、敏捷的支持者、整个软件业,提出了3点希望:
1.认识对方的价值;
2.抵制错误的偏见;
3.不断学习实践,向业界报告有效的做法及相关场景。
中国软件业完全能通过自己的实践,找出一条让敏捷在中国有效落地之路。
CMMI和敏捷的结合也许把中国软件发展带入一个新的境界。
原创:丛斌博士
中国大陆
美国
日本
韩国
新加坡
英国
德国
BVI
开曼
澳大利亚
加拿大
中国澳门
中国台湾
印度
法国
西班牙
意大利
马来西亚
泰国
荷兰
瑞士
阿联酋
沙特阿拉伯
以色列
新西兰
墨西哥
巴西
阿根廷
尼日利亚
南非
埃及
哥伦比亚
智利
秘鲁
乌拉圭
比利时
瑞典
芬兰
葡萄牙
加纳
肯尼亚
摩洛哥
斐济
萨摩亚
巴哈马
巴巴多斯
哥斯达黎加
毛里求斯
塞舌尔
百慕大
巴拿马
伯利兹
安圭拉
马绍尔
厄瓜多尔
记账报税
税务筹划
一般纳税人申请
小规模纳税人申请
进出口退税
离岸开户
商标注册
专利申请
著作权登记
公证认证
电商入驻
网站建设
VAT注册
ODI跨境投资备案
许可证办理
体系认证
企业信用
高新技术企业认定
