CMMI还是Agile:为何不拥抱彼此!(三)

第三部分 · 影响对CMMI和敏捷观念的因素

对于CMMI和敏捷地位观点的互相争吵,主要出现在相对更不稳定的商业软件开发社区。这些因素的影响一般可归因于市场力量和人性。我们把他们描述为:(1)滥用,(2)缺乏准确的信息,(3)艰涩的术语。

3.1 滥用

无论是分析CMM、CMMI,有一点使他们独特——它们是模型不是标准,它们是为了提高产品质量和过程性能。

然而,近二十年来,软件行业已经经历了人们滥用评级作为进入标准的结果:对企业绩效进行混乱的等级评价,在产品需要满足合同需求的情况下,使用错误的模型作为标准。

在这种方式下,CMM和CMMI的最佳实践被误解和误用。毫不夸张的说,在这样的环境下,任何方法来提高企业业务目标实现将有很大困难,它必须克服很多的客户高难度要求和竞争激烈的竞争,以及延续多年的冗长的合同期。

这种情况意味着对于软件来说,CMMI是错误的方法论吗?不,当然不是。它只是说明了为什么CMMI和敏捷格格不入,原因如下:

  • CMM和CMMI起源来看,是针对特定客户群的:具有独特的挑战性和高风险、低信任度的特征。

  • CMM和CMMI是一种新的范式,并且是进入一个大的(和主导)产业。这种模式包括与之相关的态度和信念,用正确的方式实施了很多年(例如,指导和控制)。

  • 而敏捷开发,作为低效的软件开发模式,在这个行业出现反弹。

这些重点,介绍了CMM和CMMI的研发背景。这些背景使我们能够理CMM和CMMI的一些特征,以及 在过去的二十年里,他们是如何被使用的。而CMMI的语言描述,不可否认的也会保留一些这方面的味道和措辞,CMMI每个版本的成长都会更远离原来的根源,去拥抱一个更丰富的和更动态的内容。

此外,这些内容不是唯一的决定因素:确定CMMI模型应该如何使用、在何时何地才可以使用,或是如何定义CMMI是否被正确使用。面临的挑战是为了更广泛的使用阵营,以确定实践和方法(或实践的执行),从而使组织成熟度在一个的更动态的环境下(例如,互联网商务,社交网络和游戏开发)。

3.2 缺乏准确的信息

当我们写这篇报告时,准确的信息的可用性有了改进。然而,这些改进是新的,因此,很多之前改善的情况仍然是以前的状况。可以通过网络搜索信息(文件、报告、贸易文章、博客、讨论组的帖子,和wikis),从敏捷和CMMI的年收益率对比看到结果。

在许多原有的敏捷联盟的著作并没有什么惊喜(那些签署了著名的敏捷宣言和敏捷的原则的人)。“油和水&”是一个常见的表达,被用于表示CMMI和敏捷著作之间的关系。如果我们考虑到上述所描述的历史差异和挑战,这是毫无疑问的。

关于在CMMI里使用敏捷方法的讨论,常常充斥敏捷是没有原则的言论。平心而论,XP阵营不该招致这样的指责。就连名字“极限编程”都能让人联想到滑板公园或自由滑板滑雪规则混乱的景象。敏捷宣言中的某些章节可能产生相似的看法。随着敏捷的支持者公开的“敌视”CMM/CMMI,CMM/CMMI常常被误用,CMMI和敏捷和平共处的可能性的尝试将很容易迷失在其他竞争信息的乱象中。

敏捷和CMMI自从2001开始已经出现同时并存的情况。值得一提的是,敏捷团体和CMMI团体不怎么来往。但是少数人既参加敏捷的会议,又参加CMMI的会议。更令人惊讶的是,在任何一个团体的领袖人物很少出版只有一个来源的书籍。

然而,持续的研究课题表明,尽管似乎敏捷和CMMI融合的一面的情况在增多,但还没有超越(更不用说浇灭)现有的看法,即这两个概念是不相容的这一看法。

软件行业人口特征分布是值得关注的。1985年的行业有多少空间?现在有多少空间(数据来源于全世界1500万的软件工程师参与者)?有多少年轻工程师不使用第三代语言,比如C语言,或者工作在一个真正的瀑布式项目?由于这些人口特征,越来越多的行业传统领域的成员妖魔化CMMI,而仅仅是基于迷信或道听途说。

3.3 艰涩的术语

CMMI、敏捷开发、传统研发和产品研发,一般都有自己的词汇表。然而,这些词汇中的重叠包括术语,给出不同的或甚至是延伸的意义。更重要的是,当在一个词汇中引入的术语在其他地方有使用的历史,那么这个术语就会与它以前使用的上下文相关联。

例如,在CMMI里有个术语,叫技术数据包(TDP),指的是与产品相关的文档的集合,从一个技术的角度来看,描述了产品开发的产品。它通常用于进一步的开发,操作,安装,培训,维修,支持,故障排除,或维护的产品。

TDP可以包含文字、图表、图纸、设计、规范、和/或数据集。(在一个小的敏捷项目中,软件代码本身,可能是不够的。)然而,术语TDP,在系统采集的意义,它是指一个具体的可交付成果,包括具体的文件。并不是所有的项目都创建了特定的文档集,也没有合理的设置这样做。

很多人不熟悉CMMI的整体目的,就会很容易误用自己以前的经验教训来理解TDP的定义,并认为是CMMI的要求。这种假设并非如此。实际上,CMMI模型使用的术语TDP的一般的解释更容易匹配最小或敏捷项目。

此外,可预见的是一种传统性和敏捷开发社区之间的混淆和误解。敏捷社区中的许多人认为,软件项目不能以任何精确的预测。这些信徒说,“完美是足够好的敌人,所以不要试图预测,只要不断的应对问题和再一次找到原因。”然而,CMMI中用的这个词是在一个更微小的领域来进行预测。可预测性的结果产生在一个详细的项目计划前,涵盖整个项目的生命周期。

 

【相关文章】

 

 

《CMMI还是Agile:为何不拥抱彼此!》第一部分 · 问题思考

《CMMI还是Agile:为何不拥抱彼此!》第二部分 · 两个方法论的起源

《CMMI还是Agile:为何不拥抱彼此!》第三部分 · 影响对CMMI和敏捷观念的因素

《CMMI还是Agile:为何不拥抱彼此!》第四部分 · CMMI的真相

《CMMI还是Agile:为何不拥抱彼此!》第五部分 · Agile的真相

 

凡奉首页    管理实践    CMMI管理实践    CMMI还是Agile:为何不拥抱彼此!(三)
创建时间:2016-07-15 00:00
收藏