CMM SM是适用于小工程项目和小规模组织的经剪裁的CMM版本。而CMM V1.1是用适宜于那些和政府签约的大型组织的标准实践来表达的,这些实践必须剪裁才能适合不同于这个样板的组织的需要。 项目管理者联盟 项目管理者联盟 摘要:由美国软件工程学会(SEI)开发的软件能力成熟度模型(CMM, Capability Maturity Model),已经成为软件过程及质量改进方面的世界主流。尽管CMM被广泛接受了,但有关如何在商业驱动的软件过程改进中有效地使用它,特别是针对小型组织和小型工程项目,仍存在着许多的误解。有关在小工程或小组织中应用CMM的一些常见问题包括: 项目管理者联盟 www.mypm.net 什么样的才算做“小”?标准是根据人?时间?项目大小?还是产品的艰难复杂程度? 什么是CMM的“需求”?是否有不该被应用到小项目/小组织中去的关键过程区域或目标?有好的过程“ 不变量”吗? 造成CMM被滥用的驱动力和动机是什么? 这篇论文以小型组织为例讨论了怎样在各种商业环境中正确而有效地使用CMM。从那些对改进其软件过程感兴趣的任何组织得出的结论是:使用为大组织/大项目所开发的发行版来相应地解释用于小项目或小组织中的CMM,可能会存在程度上的差异,但它们决不会是本质上的不同。正确有效地使用CMM,要求具有专业性的判断,并且能够理解CMM是如何针对不同的用途来进行建构的。 项目管理者联盟 项目管理者联盟 1. 介绍 项目管理者联盟 项目管理论坛 软件工程学会(SEI)是由美国国防部1984年设立的一个联邦资助研发中心,主要通过大范围承包工程的研究来寻求软件工程技术的跃迁——即改进软件工程的实践。在某种意义上, SEI的存在是“软件危机”(即习惯性的拖延,超出预算,达不到预期功能,以及不可靠的质量等[Gibbs94])的结果。硬性地讲,危机大多是由软件自身造成的,一位首席信息官曾说过:“我宁愿让它有了错,也不想让它出得晚,稍后我们总会去修理它的。”许多组织要完成预期成本和进度目标的关键就在于——经常性地关注质量成本,一再地学习以往20年由美国工业界所推演出的现称为“全面质量管理(Total Quality Management,TQM)”的一门课程。 项目管理者联盟 项目管理者联盟 各种因素综合造成的如下情形并不令人惊奇: “人们总是抱怨我们,因为他们知道在抱怨的时候,我们会努力工作。”“大多数软件评估报告是令人沮丧的……但好在他们还不是对评估过程完全不满。”“正确的进度表是绝对不能达成的,只不过还不那么明显地不能达成。” 项目管理者联盟 项目管理者联盟文章 DeMarco继续观察到我们的工业界正在疲于奔命,而感觉上唯一真切的选择就是降低质量以换取速度。 TQM课程聚焦于在质量管理引导下减少开发周期, 提高生产率,增进客户满意程度并努力取得商业上的成功。挑战,当然被定义成“聚焦质量”的实用手段是什么,随即就要系统地寻求各种质量问题。也许SEI最成功的产品就是软件能力成熟度模型(CMM),就是说,它给在全世界软件社团中已成为主流的软件过程改进提供了路标。CMM定义了怎样使开发组织的软件过程走向成熟的5个等级的框架结构。这些等级描述了从特别紊乱的混沌过程到成熟的、有纪律的软件过程的进化路径。如图1中的概示,5个等级和18个关键过程区域详细描述了它们。5个成熟度等级指明了对于成功的过程改进(即在许多案例的研究和调查中被文档化记录的有效性)的优先顺序。项目管理者联盟 training.mypm.net
talent.mypm.net 项目管理者联盟 尽管CMM的当前发行版本1.1的焦点是在与政府签约的大型组织和大型工程项目上,但CMM是被设计成了为实现对软件工程及项目管理的详细指导及示例而普遍适用并分级细化的抽象模型。CMM的关键过程区域,是以能达成被描述为关键实践、子实践及示例的目标而满足的。CMM用以评估的构件是成熟度等级、关键过程区域和目标。另外的构件则在怎样解释模型上提供了信息和指导。18个关键过程区域共有52个目标和316个关键实践。虽然CMM的“需求”可以被概括成对52个目标的描述,但它的支持材料却包括了将近500页的信息。关键实践和示例描述了好的工程和管理实践是什么样,但是没有说明如何去实现这些过程。 CMM之所以能成为一个指导过程改进的有用工具,是因为它历史性地成为了通过对软件社团已开发软件的广泛评审而形成的全面质量管理(TQM)概念的一个常规应用。它的五个等级是非常简单的,但如能将其巧妙运用,就会找到一个激励人的支点,正如美国国防部的程序经理所坦陈的:“底线是进度表。我的晋升和加薪,就全靠首当其冲地完成进度表了。” service.mypm.net 项目管理者联盟 正当CMM由于对指导软件过程改进的重要性而令人鼓舞地在全球变得流行起来的时候,它也正被一些人滥用和误用,并且另外也有人没能有效地使用它。CMM v1.1提供的指导往往是面向大工程和大组织的,在使用过程中小组织发觉到这方面有问题,尽管我们坚信CMM的基本概念对于任何组织规模、任何商业环境、任何应用领域都是适用的。 项目管理者联盟 项目管理者联盟 难道按时完成进度、预算和需求,对于小项目或小组织来讲,真的那么重要吗?在某些环境下,这确实是值得商榷的,就如同商用小塑胶袋,拿它跟那些市场份额总是占先的装船出口的顶好产品相比,其成本是极其微不足道的。如果一个组织的雇员十分满足安于现状,那么CMM所提供的能导致真实变化的东西将会很少;变化只会出现在那些对现状非常不满并且乐于标新求异的经理和员工身上。无论对大组织还是小组织而言,这都是无庸置疑的。 www.mypm.net 项目管理者联盟 CMM在称心如意地实施管理及工程实践方面,都提供了良好的建议,它强调以人为核心的管理、沟通和协调以及能体现软件开发和维护特性的强化设计的过程。无论如何,把它看成灵活的指南而非生硬的指令吧,还有对于软件工程和管理,以及应用领域和组织的商业环境等方面,CMM用户必须能够在这些方面应用其基于知识和经验的专业判断。因为CMM聚焦于软件,所以TQM的一些重要方面不能直接照搬到模型里,比如系统工程里的“人的问题(people issues)”和“较宽泛的审视(broader perspective)”,这些在商业上可能是至关重要的。CMM应该被看成使用在软件过程改进系统步骤里的一种上下文工具,比如SEI的IDEAL模型,如图2所示。 项目管理者联盟 项目管理者联盟 在对软件过程改进的讨论中,开始的问题总应该是这样的:为什么软件组织会对使用CMM感兴趣?如其愿望是以直接依从商业目标以及心甘情愿投身改革而来改进过程,那么CMM确实是效用非凡、功能强大的工具;如果CMM只被当成单纯的短期时髦,那可真是把一剂糟糕的药方拿到了手。如果驱动力是客户利益,理想情况下客户利益将导致客户和供应商之间协作的改进。有时供应商的利益集中在软件能力评价(Software Capability Evaluations,SCEs)上, 如此则可在那些来源选择及签约监督方面是由政府获取代理的项目上有所表现。国防部在执行软件能力评价(SCEs)标准的政策上是排斥绝大多数小组织和小项目的,但也存在它们可以有所作为的机遇。 项目管理者联盟 项目管理者联盟 很多CMM的滥用都对“其他人”可以做什么的担心置于不顾。如若一个开发组织能在用CMM来导引胜过被需求来牵引上达成共识,那么在模型中要解决问题的很大一部分就化解掉了。有很多这样的案例。尽管如此,那些对于好的工程和管理实践的无知仍将成为问题。对于那些只有很少的管理方面的经验和训练而只是因技术优秀就被提拔到管理层职位的人来讲,问题是显而易见的。由DOD(美国国防部)特种部队确认并提出的问题是: 项目管理者联盟 项目管理者联盟 “少数区域在最佳当前实践和平均当前实践之间有着如此巨大的缺口。” “大问题不在技术方面……现今军事软件开发的主要问题不再是技术问题,而是管理问题。” 项目管理者联盟文章 service.mypm.net 2. 小组织和小项目 pmp.mypm.net 项目管理者联盟 本篇论文的焦点对准了在小组织正确而有效地使用CMM,因为经常有人问我,“CMM是否能被用在小项目(或小组织)?”然而有关“小”的定义却是模糊难解的,如表1所示。 在某段时间里我们致力于为小项目和小组织而开发出剪裁适当的CMM,1995年CMM剪裁工作室的结论是我们甚至不能对什么才算“小”的真正含义达成一致意见!这个结果得出了一篇更注重于“如何剪裁CMM”而不是“已为小组织而裁好的CMM”的报告。1998年SEPG会议关注于CMM及小组织上,“小”被定义成“5个或更少的人为期3至4个月的开发”。Brodman和Johnson则定义“小组织”为少于50个软件开发人员并且“小项目”为少于20个开发人员。 表2. 项目管理者联盟 项目管理者联盟
项目管理者联盟文章 pmp.mypm.net 注意从小到微小的项目是在被Humphrey称为小组软件过程(Team Software Process,TSP)的范围里,而个人的开发努力则在个人软件过程(Personal Software Process,PSP)的范围里。TSP和PSP阐明了CMM的概念是如何应用到小项目中的。“荒唐”变体则描述了一个解释性的问题。在两种场合里,变体都会被论述,问题是“项目”的定义。两种情况下它都是个维护环境,而且组织的“项目”将被描述为CMM的任务;更多关于CMM“项目”的精确解释是一个基线的升级或者维护的发行……但术语的冲突会将其搞乱。 项目管理者联盟 项目管理者联盟 对于那些使用CMM的小组织来说,首要的挑战就是其主要商业目标要能存活下来!甚至在决定之后,现状是不能令人满意的而且过程改进也将有助于发现资源并为过程改进分派职责,接下来通过制定与部署过程所要做的是一项艰难的商务决定。小组织往往相信: 项目管理者联盟 项目管理论坛 我们全都是胜任的——人们是被雇佣来做工作的,我们可不想负担那些要在雇佣期间进行培训所花的任何时间或金钱 我们全都彼此沟通——因我们是如此紧密地在“渗透式”工作 我们全都是英雄好汉——我们无论做任何需要做的事情,规则都不适用于我们(这些恰恰达成了将工作完成的方式),我们承受住了短周期及高压力 项目管理者联盟 项目管理者联盟 然而对于小组织,也正象大组织一样,有着非文档化的需求所带来的麻烦,以及无经验的经理人员、资源分配、培训、同行评审和产品文档等方面带来的问题。尽管有着这些挑战,小组织仍能非同寻常地进行创新和提高生产率。尽管有一大把需要人们去解决的大块问题,通常小组织比大组织更具生产效率,他们能更敏锐地成形生产要素并且远远更少见有沟通方面的问题。无论如何,遗留下来的问题是,小组织也需要过程纪律吗?回答这些CMM咒语,我们需要考虑到纪律包括了什么? 而那将引入这篇有关CMM指导性课题论文的核心。 项目管理培训 项目管理者联盟 即便如此,评估小组织时运用最新式的评估过程是明智可取的。为期两周的CMM内部过程改进基础评估(CMM IPI)的形式也许是多余的,甚至会由于缺乏监控而导致某些遗漏,而关键是有效地确认重大问题。我建议将注意力集中在建立在企业文化上的制度化实践方面:如规划、培训等等,并确切地将过程改进落实到商业需要上。 talent.mypm.net 转自项目管理者联盟 3. 解释CMM CMM都适用在什么地方呢? 项目管理者联盟 www.mypm.net CMM是按照在任何环境中为任何项目都能提供良好的软件工程和管理实践来塑造的。模型是被分层次描述的: 项目经理博客 www.mypm.net
|