CMMI

CMMI全称是Capability Maturity Model Integration,即软件能力成熟度模型集成

其目的是帮助软件企业对软件工程过程进行管理和改进,增强开发与改进能力,从而能按时地、不超预算地开发出高质量的软件。其所依据的想法是:只要集中精力持续努力去建立有效的软件工程过程的基础结构,不断进行管理的实践和过程的改进,就可以克服软件开发中的困难。

CMMI是模型



CMMI和敏捷之间的关系,这是一个无法规避的话题。一个大部分人(当然敏捷社区除外)都认同的观点是这两种方法不应该是对立冲突的两方,而是应该相辅相成。每种方法都可以借鉴对方的优势,弥补自身不足。这种说法看似客观合理,其实也是错误的认识。在这件事情上,甚至连SEI也犯了愚蠢的错误(随着Humphrey法师去世,在过程改进上,SEI已经每况愈下了)。先说说这种说法的来源。首先,CMM/CMMI早期有一种认识,即认为CMMI只是抽象概念,而敏捷方法则是具体指导,因而两者相互借鉴可以取长补短。其次,CMM/CMMI代表的是计划驱动的开发方式(话说,现实项目哪个不是计划驱动?),而敏捷则强调灵活和适应。前者好比是大象,后者好比是猴子,两者结合才能发挥各自优势。

         当然,这种说法也是错的。最根本的原因是CMMI不是开发过程,这一点非常关键。而大部分敏捷则是具体的开发过程。两者根本就是完全风马牛不相及的事物,不具备冲突的基础。所以,不存在两者之间的权衡和借鉴。此外,也不存在CMMI的抽象是其不足。稍具常识就明白,所有的模型都是抽象的,抽象恰恰是模型的本质特征之一。模型通过抽象来强化特征与目标之间的关系,这才能帮助我们理解其内在机理,指导具体实践


你可能感兴趣的:(CMMI)