实施CMMI时必须解决的认识问题

 
在基于 CMMI 实施软件过程改善时,有些根本的思想认识问题解决不了,往往会使实施的周期比较长,效果不好,甚至导致过程改善的失败或中止。软件企业的高层领导、企业的过程改进主管、项目经理及一般的开发人员都需要对这些问题统一认识,在此基础上才能消除各方面的阻力,把握好过程改善的方向,控制好过程改善的进度。 CMMI 不是万能的,只有 CMMI 是不行的,还要技术 ( 开发方法、工具 ) 、人员二个要素一起改善。
在软件工程发展的历史进程中,人们为了解决软件危机,尝试了采用诸如形式化描述语言、结构化开发方法、 CASE 工具、构件化开发方法等等各种解决方案,但是效果并不那么显著, SEI 提出了软件过程能力成熟度模型集成( CMMI )基于过程的角度来解决软件 / 系统危机。那么是否实施了 CMMI ,软件企业的开发能力就一定能提高,一定能带来经济效益呢?答案是否定的。 如果企业里要带来经济效益必须要结合软件过程、工具、开发方法、人员等多种因素一起提高,才能保证带来经济效益,因为人员、技术和过程是支撑软件开发平台的三条腿,少了那一条都不行。大家也都知道木桶原理,一个木桶可存储水的最大容量是由最短的那根木头决定的。在企业的开发能力中过程、技术 ( 含工具、方法 ) 、人员都是主要的因子,都需要全面提高,只关注一个方面,而忽略了其他方面,都是有害的。
在开始实施 CMMI 时,最容易犯的一个错误就是 " 唯管理论 " 或孤立地只抓过程改善,忽略了开发技术与人员的提高,过分强调管理的作用,实施了半年或一年后,发现企业的生产能力并没有得到明显的改善,这时反对的声音就会成为主流,过程改善就难以继续进行了。有的企业采用面向对象的开发方法进行软件开发,但是企业内并没有对面向对象技术真正了解的专家,虽然也采用 RUP 过程、也采用 ROSE 等开发工具,但是仅仅是形似,没有做到真正的 OO 方法,没有得到 OO 方法的精髓,这种问题仅仅依靠过程改善是无法解决的。还有的企业开发人员的积极性很差,工作热情很低,企业的激励机制没有起到很好的作用,这种问题也是依靠 CMMI 无法解决的。
1.          管理就是预防,管理的作用是隐性的,不都是立竿见影的,大家要有耐心。
在实施 CMMI 时,企业的管理层在开始时往往会对过程改善期望值太高,希望短时间内效果显著,正如上面所述,效果显著与否不是由一个方面的要素决定的,需要多个因素共同改善。而管理的最大作用是预防,防患于未然。
任何的管理的改善都是符合 J 曲线的,即在改善的初期企业的运行效率可能会下降,甚至可能会出现一些混乱的局面,不过渡过了这段时间就会看到效果。所以在改善的初期大家要有这个思想准备,要有耐心。
2.          坚持活学活用,以我为主
机械照搬 CMMI 的条文是在实施 CMMI 时常犯的错误。在国内的软件企业中,都是从作坊式的软件组织逐步发展过来的,也没有经过系统工程化阶段,甚至也没有什么标准、规范。真正超过 10 年软件 / 系统工程经验的人员更是比较少的,加上大家不愿从事管理,因而有的企业所组建 EPG 的人员中可能在工程经验方面是有欠缺的,又没有真正的有实践经验的专家进行指导,所以对 CMMI 的理解就不可能一下就很深刻,不敢裁剪 CMMI ,容易机械照搬 CMMI 条文,其实这恰恰违背了 CMMI 的精神, CMMI 是系统工程经验的集大成,是从实践中总结出来,用以指导实践的, CMMI 本身也在更新版本,不断完善。每个企业都有自己的特点,就象微软的 MSF ,那是微软自己内部的管理过程标准,是微软的产品开发经验总结,有些内容是 CMMI 中没有的,完全可以借鉴过来使用,所以只要可以提高企业自己的软件管理水平,就应该大胆地来尝试。
在推行 CMMI 时,所以遇到的阻力,很大程度上是由于照搬 CMMI 的条文,不切合项目组的实际,没有具体情况具体分析。实际上,一线的管理人员、开发人员最了解实际。谁了解实际,谁有发言权。所以在制定 CMMI 规程标准时,尤其是在制定大家要执行的操作规程、模板和记录模版时,一定要得到执行者的认同,否则就容易造成执行和沟通的障碍,你硬要推,表面上看来似乎大伙也照规程做了,其实是表面文章,对改善没有实际帮助,以导致 SPI 工作受阻。
3.          要改良式不要革命式
以革命的方式来实施 CMMI ,期望通过一场运动来解决过程能力的问题,一种可能是不懂 CMMI ,不晓得管理的改进是循序渐进的,一种可能是明知故犯,期望在短期内通过 CMMI 评估,单纯追求市场上的轰动效应。有的企业在短时间内虽通过了 CMMI 几级评估,我想恐怕由于没有实效而得不到大家的认同而难以将这种 " 水平 " 持续下去。一个企业引入 CMMI 之后会从本质上影响企业的文化,改变大家的思想与做事方法。有人曾形象得将过程改进比喻为减肥,你是可以依靠减肥药在短时间内减轻体重,但如果不从根本上改善饮食、生活、运动的习惯,那么体重将会在短时间内恢复到原来,我认为这个比喻是十分形象的。
4.          CMMI 与企业的创新文化是不矛盾的
软件企业的有些管理人员,也包括一些开发人员往往抱怨或认为严格的管理会束缚他们的创新,他们认为在 CMMI 中提倡的一种按部就班,什么活动都要做计划、按规程标准来做,对企业的创新文化会起负面作用。在我遇到的开发人员中,越是技术钻研越深的人持这种观点的越多。我想形成这种观点主要有二个原因:一是企业在推行 CMMI 时,过分机械,没有从实际出发,不能与实践紧密结合,挫伤了开发人员的积极性。比如说在分析与设计阶段,需要开发人员能够发挥创意的成分更大一些,如果你要求他们一定就要按统一的文档标准来写文档,甚至字号大小、缩进格式一点也不能差,这的确很难做到,可能你需要在项目组配备文档支持人员,有他们来做这些完善工作,降低分析与设计人员的这些工作量。二是这类人员缺少真正的软件工程经验,做的大项目太少,经历的失败太少。关于这一点是不要争论的, CMMI 是系统工程经验与教训的集大成,我们无需再去重复那些失败。
软件企业必须形成创新的文化,事实 CMMI 本身也一种系统工程管理的创新,而技术创新是必须进行管理才能使其有效地转化为生产力,转化为企业的实际效益,达到效益最大化,这是最根本的。
5.          要勇于实践,也要允许犯错误
CMMI 就是系统工程经验与教训的总结。在实施 CMMI 的过程中,肯定会走些弯路,甚至于要犯错误,由此许多人会议论纷纷,一直会反映到高层经理处,这时不要犹豫,要敢于尝试,更不能因为有困难就打退堂鼓,现在大家都是 " 摸着石头过河 " ,不下水,是没有办法过河的,临渊慕鱼不如退而结网。要少说不,少说难,勇于实践,有错就改。对于软件企业的领导尤其要注意这一点,不要因为在过程中的一些实践失败,就对项目经理、 SEPG 等人员有偏见,要提倡这种文化。
 
6.          管理过程改进是组织内所有人的事情,而并非仅仅是 SEPG 的事情
按照 CMMI 专家的建议,在一个组织内专职从事软件过程改善的人数应为组织总人数的 2-3% ,根据这一建议,企业内一开始就配备专职的工程过程组( EPG ),这些员工专职负责企业的软件过程改善工作,另外我们根据需要组织一些技术任务组( TWG ),他们会兼职的参与特定过程规程、标准的制定、试点和修改完善工作。在这种情况,可能会出现如下的问题:
SEPG 成了最忙的人, TWG 的任务往往会由于那些兼职的人员以工作忙为理由一拖再拖,最后还是由 SEPG 的成员替代 TWG 做工作;
企业的非开发人员对管理过程改进的效果一下没有明确地感受到,甚至看到由于加了些新的活动可能使项目拖期可能会更严重,于是他们可能就会将这些抱怨反馈到企业的高层经理,在推行过程中经常会听到:我这个项目时间太紧,当前不适合使用 CMMI
7.          高层经理迫于市场的压力,甚至可能会提出不合实际的项目工期等等。
推行 CMMI 不仅仅是管理人员的事情,每个人都要积极参与。要改变原来的一些做法:即 EPG 是在使劲的推进 CMMI 的工作,而不是大家自觉自愿的来实施 CMMI 。从 EPG 的角度来看,要做好培训的工作,首先要解决的大家的思想认识问题,这还是比较难的,有些人的思想还是比较顽固的。
管理首先要解决的是思想认识上的问题,不但在主观上要解决,在客观上也要有措施,光说不练是不行的,光练不说也是要否定的。曾经遇到过类似的问题,有的开发人员或者项目经理在口头上是可以接受变革的,会配合工作的,但是在具体操作,很可能又会遇到事实上的否定,这时作为 CMMI 的推广人员要尽快提出实施的具体措施,尽快落实。任何变革都要涉及到企业内的权利的再分配,不要忽视企业政治,这是客观存在的,所以一定要预防那些光说不练者。 
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: CMMI(Capability Maturity Model Integration)是一种软件和系统工程能力成熟度模型集成,它为组织提供了一种实施和改进软件开发过程的方法。完整版CMMI实施标准规范是指根据CMMI模型中的最新版本(目前是V2.0)的要求,规范组织在实施CMMI过程中需要遵循的步骤和指南。 完整版CMMI实施标准规范主要包括以下内容: 1. 起始阶段:确定实施CMMI的目标和范围,并建立一个为此目的而设立的项目小组。项目小组将负责制定实施计划、培训员工、收集和分析相关数据等。 2. 诊断阶段:通过对组织现有的软件开发过程进行评估,发现现有的问题和优势。这个阶段的目标是为实施CMMI做准备,为改进软件过程打下基础。 3. 设计阶段:根据CMMI模型的要求,设计适合组织的软件开发过程。这包括确定过程的输入、输出、活动和角色,以及定义相关的工具和指导。 4. 实施阶段:将设计好的软件开发过程在组织中进行实施,包括培训员工、制定过程文件、建立度量和监控机制等。 5. 评估和改进阶段:定期评估实施CMMI后的软件开发过程,收集和分析相关数据,以评估过程的成熟度和效果。根据评估结果,进行必要的改进和调整。 完整版CMMI实施标准规范是一份详细的指南,可以帮助组织顺利实施和改进软件开发过程,提高组织的软件开发能力和质量管理水平。组织在实施CMMI应遵循这些规范,结合自身的情况进行调整和优化,以达到最佳的实施效果。 ### 回答2: CMMI(能力成熟度模型集成)是一种用于评估和改进组织软件工程和系统工程能力的框架。完整版CMMI实施标准规范是指按照CMMI框架的要求,开展完整的CMMI实施过程所需遵循的规范。 完整版CMMI实施标准规范主要包括以下几个方面: 1. 组织准备阶段:在实施CMMI之前,组织需要明确目标、制定计划、安排资源,并确保高层管理支持。这个阶段涉及制定实施策略、指定项目团队,并明确相关角色和责任。 2. 评估和定义过程阶段:在这个阶段,需要组织对现有过程进行评估,确定现有过程的目标和成熟度级别,然后根据CMMI要求定义新的过程。这个阶段还包括编写相关文档,如过程描述、作业指南等。 3. 实施和培训阶段:根据定义好的过程,组织需要进行实施和培训。这个阶段涉及到将新的过程应用到实际项目中,并培训团队成员,确保他们理解和遵守新的过程要求。 4. 过程改进阶段:在实施过程中,组织需要持续监测和评估过程的执行情况,定期进行内部审核和评审,并根据评估结果进行改进。这个阶段要求组织建立有效的反馈和改进机制,不断优化过程,提高组织的能力和效率。 5. 绩效度量阶段:在实施过程中,组织需要建立有效的绩效度量机制,对实施过程的效果和绩效进行定量分析和评估。这个阶段要求组织制定合理的度量指标,收集和分析相关数据,以便实监控和评估过程的绩效水平。 总之,完整版CMMI实施标准规范涉及组织准备、评估和定义过程、实施和培训、过程改进以及绩效度量等多个方面,旨在帮助组织提高软件工程和系统工程的能力和效率,实现持续改进和优化。 ### 回答3: CMMI(Capability Maturity Model Integration)即能力成熟度模型集成,是由美国软件工程协会(SEI)制定的一种软件过程改进模型。它旨在帮助组织提升其软件开发和管理能力,实现更高质量的软件产品和服务交付。 完整版CMMI实施标准规范是一个详尽的指南,旨在协助组织系统地进行CMMI模型的应用。它包含以下几个关键方面: 1. 规定实施的步骤:完整版CMMI实施标准规范提供了一系列步骤和指导,以帮助组织在实施CMMI模型进行规划、培训、评估和监控。 2. 强调过程集成:完整版CMMI实施标准规范鼓励组织将各种过程进行集成,通过统一的方法来执行和管理软件开发和维护活动。 3. 提供指导和工具:完整版CMMI实施标准规范提供了许多实用的指导和工具,以帮助组织在实施CMMI模型解决各种挑战。这些工具可能包括模板、检查表和评估技术等。 4. 考虑组织特征:完整版CMMI实施标准规范要求组织根据自身的特征进行定制化,并结合实际情况来灵活应用CMMI模型。 5. 支持持续改进:完整版CMMI实施标准规范强调组织的持续改进和自我评估,并提供了建立改进计划、制定指标和指导的方法。 总之,完整版CMMI实施标准规范提供了一个系统的方法,帮助组织高效地应用CMMI模型,提升其软件开发和管理能力,并持续改进。这些规范可以根据组织的实际需求进行定制化,并结合其他标准和最佳实践来实施

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值