CMMI(开发能力成熟度模型集成),由美国国防部、卡内基梅隆大学软件工程研究中心以及美国国防工业协会三家共同开发和研制,它的目的是帮助软件企业对软件工程过程进行管理和改进,增强开发和交付能力。
按照阶段式描述方法,CMMI一共分5级,一级为初始级,二级为可管理级,三级为已定义级,四级为量化管理级,五级为优化管理级。
CMMI等级一(初始级)
某公司拿到一个软件开发订单,由小张负责这个项目。接到上级的任务,小张不敢怠慢,仔细询问了用户需求后,他开始了编码工作,可接下来的事情并没有那么顺利,由于疏忽,小张忘掉了一个很重要的功能,只好连续加班才把代码修改完成。眼看就要大功告成,用户来公司看产品,却挑出了很多毛病。原来小张没有完全理解用户的意图,也没有与用户详细沟通,等最终完成产品,整个开发进度已延迟了一个月。
CMMI一级(初始级)的特点是,软件开发过程是无序的,成功取决于个人努力。
CMI等级二(可管理级)
如果用CMMI等级二(可管理级)水平进行改进,小张的项目应该怎么做?我们不妨从以下几个方面帮助小张分析一下。
一、用户的需求是什么?怎样确保真正了解了用户的需求?
二、有几个功能需求技术难度太大,要不跟老板申请外包?
三、老板让我一个月完成,我得先计划一下。
CMMI二级(可管理级)的特点是,软件开发企业建立了基本的项目管理过程来跟踪费用、进度和功能特性。
CMMI三级(已定义级)
小张的项目引起了公司的极大重视。为了避免类似问题产生,公司专门进行了以下工作的改进。
一、公司过程改进,部门分析了问题产生原因,制定了相应的改进计划。
2、结合成功项目经验,公司内部制定了软件开发生命周期规程指南,同时还制定了相应的文档模板。
三、公司专门定义了软件开发不同角色以及角色职责,保证了整个团队的协作开发。
CMMI三级(已定义级)的特点是,所有项目均使用经批准裁剪的标准软件过程来开发和维护软件产品的生产,在整个软件过程是可见的。
CMMI四级(量化管理级)
年底将至,公司正在加紧统计一年来的利润和成本,虽然公司的合同额非常大,利润却不是很多,发现了这个问题之后,公司做出了如下改进措施。
一、建立公司内部统一的过程管理平台,所有项目和产品的开发都要通过过程管理平台进行管理。
二、根据平台的数据积累,公司制定了统一的量化标准以及相应的度量活动。
三、根据公司的量化目标,每个项目定义自己的量化目标,定期进行偏差分析,制定改进措施。
CMMI四级(量化管理级)的特点是,企业能够分析软件过程和产品质量的详细度量数据,对软件过程和产品有定量的理解和控制!
CMMI等级五(优化管理级)
五级只有两个过程域,分别叫组织创新与发展、原因分析与解决方案。这两个过程域的主要意思就是在度量的基础上,选择循序渐进的创新与改善活动,逐步改善,从而达到企业制定的各项指标,同时对发生的问题以及产生的缺陷进行分析,并采取积极预防措施,避免类似问题再次发生。
CMMI等级五(优化管理级)的特点是,过程的量化反馈和先进的新思想新技术,促使软件过程持续不断改进。
将各级分别总结成一句话,描述CMMI的5个级别:
一、初始级,软件开发过程是无序的。
二、可管理级,建立了基本的项目管理过程。
三、已定义级,建立了组织级的标准化软件过程。
四、量化管理级,软件过程和产品都有定量的理解和控制。
五、优化管理级,运用新技术、新思想,持续实施软件过程改进。