原文出处: http://tech.it168.com/m/2007-08-02/200708020957750.shtml
    本文请勿转载。

近来笔者所在公司正在为过CMMI3做各种准备,对公司的员工进行了一些相关的培训,作为项目管理人员的我,在学习CMMI3的过程中,也有了自己的一点对于CMMI3的思考。

CMMI将软件过程中的很多步骤都通过步骤规范起来,它并没有告诉我们应该怎么去做,而只是告诉我们应该做些什么。因为软件过程中的每一步都需要经过思考、决策、有依据才能得出过程的结果,所以减少了每一步发生错误的可能性。

一.CMMI概述

CMMI是Capacity Maturity Model Integrated的简称,即集成的软件能力成熟度模型,CMM是CMMI的早期版本,它主要用于软件工程,而CMMI是一种综合性模型,它是工程实施和管理方法,它在软件与系统集成以外的如科研、工程等领域都得到了广泛的应用。

CMMI是一个由理论和经验部分组成的模型。它有连续式和阶段式两种表述方式,其中连续式主要用于衡量一个企业的项目能力,而阶段式主要用来衡量一个企业的成熟度。在连续式表述下,企业在接受评估时可以选择自己希望评估的项目来进行评估,所以评估通过率相对比较大,但它反映的那个相对比较窄,因为它仅仅反映该企业的该项目或类似项目达到了对应的等级。而用阶段式来进行评估时,需由评估师自己来挑选内部的任何项目或其中的某一部分来进行评估。

阶段式的CMMI有5个等级,如下:

第一级(初始级):在该等级下,项目的目标虽然得以实现,但它的实现带有很多的偶然性和风险性,该级对人员的依赖性比较大,性能依赖个人的能力,且随个人固有的性能、知识和动机的不同而变化。

第二级(受管理级):在该等级下,意味着组织要确保策划、文档化、执行、监督和控制项目级的过程,并且需要为过程建立明确的目标,并能实现成本、进度和质量目标等。在这种情况下,组织已经营造了一个稳定的、受控的开发环境,项目已经在受控制的状态下运行。该级包括如下7个过程域:需求管理(RM)、项目策划(PP)、项目监督与控制(PMC)、供方协定管理(SAM)、测量与分析(MA)、过程和产品质量保证(PPQA)和配置管理(CM)。

第三级(已定义级):在等级三下,项目执行过程是通过裁剪组织的标准过程集合和组织过程财富产生的“已定义过程”,并具备与该过程相适应的运行环境。该级报刊如下11个过程域:需求开发(RD)、技术解决(TS)、产品集成(PI)、验证(Ver)、确认(Val)、组织过程聚焦(OPF)、组织过程定义(OPD)、组织培训(OT)、集成项目管理(IPM)、风险管理(RSKM)和决策分析和决定。

第四级(定量管理级):在等级四下,组织建立了产品质量、服务质量以及过程性能的定量目标,运用统计技术和定量目标作为判断过程管理成功的标准。在过程的生存周期里,对产品质量、服务质量和过程性能做到统计意义上的了解和管理。该级包括如下两个过程域:组织过程性能和定量项目管理。

第五级(持续优化级):该等级的突出特征是过程性能的持续改进。组织建立起整个组织的定量过程的定量过程改进目标,并且把它们作为过程改进的判断标准;这些目标将适时修改,以反映不断变化的本组织的业务目标。实际实施的过程和组织的标准过程集合都是改进活动的对象。该级包括如下两个过程域:组织革新和部署和原因分析和决定。

二.CMMI给我们带来了什么好处?

概括来说,CMMI给我们带来了如下好处:改进进度和预算的可预测性、改进开发周期、提高生产率、改进质量(质量缺陷)、增加客户的满意度、提高员工的士气、增加投资回报和低质量成本。

对于不同的人来说,CMMI给他们带来的好处各有不同,例如,对于企业的老板来说,CMMI不仅提高了企业整体的管理水平,而且为企业引进了科学高效的管理观念、创造了更好的利益。而对于项目经理来说,对CMMI技术的学习掌握能够提高自身的项目管理能力,因此能够更好的提高项目质量,低成本、按期限的完成既定的任务。等等。

CMMI的实施包括如下几个步骤:差距分析、过程定义、过程部署和实施、预先评估和正式评估五步。它的实施能够提高我国企业的管理水平,使我国的企业在管理上能够尽快地引入国际上的先进技术。调整了我国企业的管理体制,使其从无序变成有序、主观变成客观、人治变为体制。CMMI应用将产生的直接效果是提高了工程项目的质量、降低了工程的成本,保证了工程的周期、提高我国企业的在国内与国际市场上的竞争能力。

来越多的大型企业业开始要求其工程承包商具有一定的CMMI级别。级别高的企业在赢得项目的竞标中具有一定的优势。 因此,如果没有CMMI的等级评估,企业就会失去很多商机。另一方面,企业通过CMMI评估也是为了提升企业内部的管理水平,降低企业的工程成本,得到更加丰厚的回报,对企业来说受益不少。

就拿笔者所在公司来说,从CMMI实施中进行差距分析来说,测量与分析、风险管理、组织培训等地方明显做得不够。因为没有测量与分析的数据的采集,导致过程中的很多地方无法进行估量。因为对风险管理得不够,使得风险散播到项目过程中的各个地方,无法从某处获得对风险的集中管理。因为上级的组织培训的不重视,导致很多技能不能被相关人员较快较好的掌握。除此以外,还存在很多的问题,CMMI的实施给公司项目管理者带来了福音。

三.对CMMI的思考

笔者在学习CMMI的过程中,也产生过一些疑问,进行过一些思考,具体如下:

1. 实施CMMI最好采用什么方式来驱动?

CMMI只是告诉我们需要做什么,但具体如何做,以及采用什么工具、方法和技术等去做,这些答案需要我们自己去找。

实施CMMI最好采用什么方式来驱动呢?

答案是以实际需求来驱动,真正遵循IDEAL(I-初始;D-诊断;E-建立;A-执行;L-学习)组织过程改进模型。

我们不应该过分的追求采用什么方法或工具来做好某件事情,例如设计图我们并不一定需要采用专门的Rose的工具来做;对需求等的跟踪并不一定要采用专门的需求跟踪工具来做,很多时候Excel就能够达到很好的跟踪效果。在以实际需求来驱动的过程中,可以灵活的采用适合的方法或工具,不应该太过拘泥。

2. CMMI与ISO9000存在哪些区别?

取得ISO 9000认证不意味着完全满足CMMI的某等级要求。取得CMMI第二级或第三级也不能笼统地认为可以满足ISO 9000的要求。

3. CMMI过时了吗?

迭代开发技术、软件产业最佳实践、和经济动机推动组织采用基于结果的方法:开发业务案例、构想和原型方案;细化后纳入基线结构、可用发布,最后定为现场版本的发布。虽然CMMI保留了基于活动的方法,它的确集成了软件产业内很多现代的最好的实践,因此它很大程度上淡化了和瀑布思想的联系。

分析CMMI和迭代开发之间有什么联系,方法之一就是看每个模型的KPA是否为这种开发方法激发了合理的软件管理原理。CMMI和迭代思想联系得很紧密,所以说CMMI并没有过时。

4.CMMI与敏捷开发的关系?

最近几年来,CMMI已经成为一项主流开发技术。很多成功的企业都在使用这个技术。

那么CMMI与敏捷之间存在怎么样的关系呢?分析如下:

使用敏捷式方法要求IT和业务方面的参与者紧密沟通,更快的交付业务需求从而更快的获取效益。降低改变的成本、提高系统的灵活性,以及降低投资的风险。敏捷式开发能在质量上有很大的提高。大概在60年代的时候,软件开发是没有计划性的,基本是写出来,谁也不知道什么时候能交付,但也就是在那个时候,软件工程学的概念在美国召开的一次会议上头一次被提出来,传统工程学通常是把项目分成三步或者四步,先把需求确立起来,进行设计构建。应用到软件里是开始先由分析人员对需求进行分析,然后设计,架构师把整体的东西设计出来,再确定下来交给编程的团队,编程的团队按照需求规约,把东西给做出来,所有的这些东西都是由不同的人在不同的时间完成的。

这种模式的优点是:开发计划性非常强,因为你知道什么人在什么时候做什么事情。但也存在一些缺点,这些缺点主要由软件开发和传统的建筑工程学的不同引起。客户需求的不断变化,特别是商业 软件,跟随市场的变化,客户需求也在不断变化。客户本身在脑子里并不是很清楚自身需要什么,在它看到了产品后,在使用的过程中,他对自己想要的东西才有了一些更加确定的想法,知道了怎样的东西才是自己所需要的。但在这个阶段的需求变化使得项目步履维艰、使得成本大幅度增加。所以工程学里一个核心的概念,变化是最可怕的一件事情,从设计角度也好、分析的角度也好,不管怎么,不要变化,这样就使成本增加。

敏捷式开发最核心的东西是它不排斥变化,对变化采取的是适应性的态度。敏捷式的开发针对一小部分进行设计测试,对每一个循环时间非常短,软件从小到大,从很小的一点到不断的增加扩大,而且增长的过程中是对软件不断修改的过程。

敏捷开发还有一个很大的特点就是它是以人为本,而不是以方法为本的。我们的软件开发是脑力劳动,而不是简单的工作。如果你设计出一套方法来,不管什么方法,让每个人去适应的方法,最后开发效应反而不如你组建一个具有进取心的团队,这个团队通常情况下是先选择一种方法,细节也一样,在开发过程中,不断对方法反思,直到达到这个团队的最高开发效应为止。

如果说,要真正赶上最新一轮的创新浪潮有几个重要的标志,一个是要赶上最新的CMMI的转向敏捷开发,从体系架构角度讲,除了一些先进的架构理念,还有一些架构模式等等,还有开源代码的应用,不仅仅是操作系统,包括数据库、应用服务器、各种开发工具等有很多的开源工具。

四.总结

本文对CMMI进行了概述,并分析了实施CMMI给我们带来的好处,以及笔者对CMMI的一些思考。

对CMMI3的学习和思考相关推荐

  1. 学术分享丨机器人学习的思考

    2020-12-01 21:15:31 随着学会的队伍不断发展壮大,分支机构的发展愈发完善,丰富多彩的分支活动与学术分享也频频呈现.今年以来,CAAI认知系统与信息处理专委会积极倡导学会"疫 ...

  2. 焦李成院士:进化优化与深度学习的思考

    来源:AI科技评论 作者:焦李成 整理:维克多 编辑:青暮 2021年12月17日,西安电子科技大学人工智能学院教授.欧洲科学院外籍院士.IEEE Fellow焦李成受邀参加2021中国计算机大会&q ...

  3. 程序员应知——学习、思考与分享

    有人说,程序员是个苦差事,一辈子总是要不停地学习,学习新的技术,学习新的架构,学习新的工具,一旦一段时间不学习,就会发现其他人嘴里冒出来的新鲜词,自己已经搞不懂是什么了. 的确,作为程序员,学习很重要 ...

  4. C/C++ 由int (*p)[5]与int *p[5]引发的学习与思考

    由int (*p)[5]与int *p[5]引发的学习与思考 最近在大一上复习指针这部分时,有个C指针的特例一直困扰着我.我查阅了许多课本,也看了CSDN上许多大佬的理解.自我感觉受益匪浅,现记录下自 ...

  5. 学习与思考,李敖有话说

    今天是第二次看<李敖有话说>,谈到了如何读书,讲了学习与思考的关系,受益匪浅. 从前,很少想问题的,只是看书,有什么信什么,记住什么.再到后来,学会了思考,有时吃饭或是干什么,会在那之前看 ...

  6. 学习和思考的一点小总结

    学习和思考总结 思维的垃圾堆 学习新知识的三大阶段 一.解读名词阶段 二.狂啃专业书阶段 三.思考输出阶段 思维的垃圾堆 对陌生的知识的忽视会像房间中不打扫的角落一般,堆出一堆垃圾堆来- 根据我个人略 ...

  7. (学习力+思考力) x 行动力,技术人成长的飞轮效应总结

    在技术同学的成长发展上,怎么能够给大家提供更多的帮助,是这篇文章的起源,也欢迎更多的同学参与讨论,我们或多或少都需要终身学习和成长. 万米高空,望向窗外,一片迷雾之下啥也看不见,两天晚上睡不好的北京差 ...

  8. epoll学习:思考一种高性能的服务器处理框架 - fanlb - 博客大巴

    epoll学习:思考一种高性能的服务器处理框架 - fanlb - 博客大巴 epoll学习:思考一种高性能的服务器处理框架 - fanlb - 博客大巴 epoll学习:思考一种高性能的服务器处理框 ...

  9. 关于对政务云密码支撑方案及应用方案设计的学习及思考

    1.文章编写背景 写这篇文章的主要目的是记录和梳理我从事密码应用安全测评师工作以来学到的东西,同时也想分享给有需要的人,我们一起学习一起讨论,共同进步,如有错误和问题欢迎大家指出! 2.对于编写密码方 ...

最新文章

  1. 1044 Shopping in Mars
  2. android jack log,Android:JACK编译错误汇总及解决
  3. xftp提示过期的解决方法
  4. java array iterator_java数组遍历——iterator和for方法
  5. java parseexception_Java ParseException类代码示例
  6. 捕捉Web页面子类错误堆栈中的信息
  7. 我的一个windows phone program
  8. oracle存储过程的创建与调用,Oracle 存储过程创建及调用
  9. 安卓分屏神器_【实用工具】一款鲜为人知的电脑神器,内置300多…找了很久了!...
  10. 帝国CMS系统目录结构介绍
  11. [UVA1449] Dominating Patterns(AC自动机,STL,计数,神坑)
  12. Oracle 19c 参数列表及概要介绍
  13. 《钢铁是怎样炼成的》读后感集合「15篇」
  14. c语言程序的引言,C语言程序设计-第1章-引言
  15. 企业面试遇到的问题02
  16. C++程序设计基础之(第三章)函数
  17. 网络学习---HTTPS的升级
  18. 2021-08-07 Gabor滤波器简介以及简单应用
  19. ubuntu装软件包
  20. 途志传媒:打造抖音短视频个人ip有何技巧?

热门文章

  1. Win10 + Python + MXNet + VS2015配置
  2. Light OJ 1007
  3. 2015 UESTC 数据结构专题G题 秋实大哥去打工 单调栈
  4. 大理三塔,及崇圣寺里的假深沉
  5. 创建WebPart时的数据库连接问题。
  6. iOS sha1加密算法
  7. CodeForces 543D 树形DP Road Improvement
  8. VS2003,VS2005,VS2008 低版本打开高版本的解决方案和工程文件
  9. SQL Server : 禁止在SQL Server中生成用户实例
  10. vue --- 使用vue-router获取带参数的路由