软件工程:敏捷开发和高级别CMMI
读书人IT频道reader8.com/exam/jisuanji/ 经常讨论敏捷开发过程的知识,并且我们也会经常争论结合使用敏捷开发过程和CMMI高级别的话题。他们两个是否能够结合使用?或者他们两个只是向相反的方向发展?带着这个疑问,下面
读书人IT频道reader8.com/exam/jisuanji/ 经常讨论敏捷开发过程的知识,并且我们也会经常争论结合使用敏捷开发过程和CMMI高级别的话题。他们两个是否能够结合使用?或者他们两个只是向相反的方向发展?带着这个疑问,下面我们一起来探讨。
这个问题可以说是老生常谈,但是我对第5级别中的那个基本差异有一个疑问,这个疑问会使人产生不安的情绪。CMMI1.2强调了想在组织中控制结果的变更,进而将其重心转移到了个人的身上。敏捷开发在意义上说不单单是为了让每个项目能在应对各种各样的环境中都拥有灵活的能力,并且可以让他们在这个环境中尽其所能表现的最好。我们并没有特别关注在所有项目中要规范行为以便可以预知结果是可靠的。
但是,我并不清楚我现在尽力想说明的这种区别,是否确实是敏捷开发和CMMI的基本概念中的一个基础的区别,还是只是组织如何解释和执行CMMI第5级别的一个结果。当然,敏捷开发团队在过程模型和过程实践资产中拥有的信任似乎要比CMMI团队中的要少――虽然在敏捷中没有方法可以规范这些事情即便他们是低成本的,但是没有假设说明这就是组织要走的路。事实上,敏捷开发支持者偏向于这样的想法,在任何形式的可遇见的过程模型中快速地建立起逐渐减少的成果。是否这就是等同说敏捷开发支持者相信特殊原因会影响执行效果是如此的普遍,以至在组织中试图建立预见性的模型是无用的?
CMMI第4级别: QPM(量化项目管理):主要关注懂得过程行为变更的个别项目,他们认为这些变更影响着他们的成功和如何处理事情――或者至少影响着完成产品发展或者达成目标。组织单位(EPG)必须要监控成果。
OPP(组织过程实践):主要关注集成模型,项目可以使用模型来规范他们想要达到成功的方面,比如说质量,进度表,预算,维护以及其他任何事情。诀窍就是项目在过程执行中以这些模型为基础,控制QPM中的行为。比较典型的是,这些模型可能是基于相似的项目中的重复的结果不断建立起来的,虽然可能并没有这样的需求。在个别项目级别中模型应该先被改进以便使用,所以在CMMI模型中使用基于一个项目的历史数据(比如说,增量)或者20个项目的历史数据是没有区别的,虽然这可能对使用者来说是有区别的。
CMMI第5级别:
CAR(原因分析与解决方法):主要关注引起问题的主要原因,过失,管理问题或者其他一切需要解决的问题。项目,EPG或者其他任何人是否可以应用,是作为解决问题的方法。EPG在OPP中监控结果,或者得到别的经验。(敏捷开发是否在增量开始点或者结束点不建议进行类似的行为?我不清楚我所知道的术语是否正确)
OID(组织创新与推展):完全非项目特点。关注基于个体,CAR,模型使用,外界因素等的组织改进。你是否会收集并且使用所有这些学到的经验?你进入企业后是否会寻求新的或者更好的做生意的方法(其中敏捷开发可能只是一个例子)?在组织中又该如何处理证明,分析(职业),和使用(结构请参照第4级别中的模型和过程控制)这些改进。
我个人认为CMMI高级别和敏捷开发应该结合起来工作。敏捷可以帮助CMMI高级别更容易实现短期的转变,并且它在处理事情的发展上起了很重要的作用。我的经验基本是从第5级别得来的,有部分来自第4级别。许多组织怀着每个人都必须如此做的想法而通过了第3级别,但是他们却反对在第4,5级别中有着同样的想法。就像我曾经提到的,敏捷开发是使用CMMI第4,5级别来改进如何发展产品的完美例子。 读书人IT频道reader8.com/exam/jisuanji/