UML软件工程组织

ISO9000与CMM在软件组织中的融合
作者:无
一、前言:


IS09000系列标准是国际标准化组织(简称ISO)汇集发达国家质量管理专家,在总结发达国家质量管理科学经验的基础上起草并正式颁布的一套质量管理与质量保证的国际标准。IS09000系列标准遵循管理科学的基本原则,以系统论、自我完善与持续改进的思想,明确了影响组织产品与服务质量的有关因素的管理与控制要求,并且作为质量管理与质量保证的通用标准。IS09000系列标准的宗旨:通过提高组织经营的效果与效率,使所有相关方受益;促进质量管理在全球范围的开展与提高;消除非关税壁垒,促进国际贸易的开展。


    CMM(Capability Maturity Model)软件能力成熟度模型是由美国软件工程学会SEI(Software Engineering Institute)制定的一套专门针对软件产品的质量管理和质量保证标准。CMM是1987年由美国卡内基梅隆大学软件工程研究所(CMU SEI)研究出的一种用于评价软件承包商能力并帮助改善软件质量的方法,其目的是帮助软件组织对软件工程过程进行管理和改进,增强开发与改进能力,从而能按时地、不超预算地开发出高质量的软件。CMM模型划分为5个级别,共计18个关键过程域,52个目标,300多个关键实践。该标准将软件组织的能力成熟度划分为初始级、可重复级、妥善定义级、定量管理级、和持续优化级五级,一般级别越高,能力越强。


二、ISO9000与CMM的关系

ISO9000适用于除了电工和电子之外的各个行业,通过对设计、开发、生产和服务等各个环节的控制实现产品质量的保证;CMM提供了一套仅针对软件开发过程控制和过程管理的、行之有效的方法,它强调的是通过保证过程质量来达到产品质量的保证。ISO9000与CMM都是组织质量管理和质量保证标准,二者在实质上是基本相同的,并且都强调过程控制、体系文档化、PDCA持续改进等。当一个组织实施其中一个标准时,其事实上也部分实施和满足了另一个标准的内容。两者都强调:“该说的要说到,说到的要做到”,强调文档化的过程和文档化的设计,通过对每个重要过程的跟踪检查实现对质量的控制。

ISO9000与CMM也存在着差别,两者的适用范围不同、侧重点不同、评估结论也不同,其中,ISO9000-3侧重评价软件产品是否已达到了标准的各项指标,CMM基于软件的特点,侧重软件过程改进的必然性和长期性,强调软件开发的过程控制和预见性。
适用范围:ISO9000适合除了电工和电子之外的各个行业,其中特别增设了对软件产品进行评价的ISO9000-3标准;而CMM是专门针对软件产品定做的能力成熟度评估模型,它和ISO9000-3之间既有不同的相关义有相互不能代替的内容.如图所示。


侧重点:ISO9000标准涉及从原料供应到产品销售的每一个环节;CMM侧重软件开发和改进过程。
评估结论:按ISO9000标准进行的评估只有通过和不通过两种;而CMM将软件能力成熟度分为五个级别,通过论证,组织符合哪一等级的要求就将被评定为哪一级的组织。任何一个软件组织通过或不通过评估都能找到自己的位置。
三、实施ISO9000与CMM可能遇到的问题

“组织实施ISO9000,最高领导的支持是关键”,领导不仅是支持,应该有高层领导亲身参与,不是表面上的,而是抱着一个坚定的信心,执着的投入到里面去。把推行质量管理当作组织推行全面制度化的一个手段和阶梯。CMM的实施不是在短时间内可以看到显著成效的,它强调”逐步改进”,而非突变。每升一个级别可能会花费1-2年。这样的情况下,如果组织管理者没有一个坚定的支持态度,很难保证实施不被半途而废。

ISO9000和CMM都只提要求,没有告诉怎么做,具体的实施和应用需要由顾问公司协同组织来做。当前,顾问公司所提供的服务是浅层次咨询,只是把标准的知识引进来,怎么使用基本是组织来琢磨,最后顾问公司再验证要素的覆盖程度。顾问公司不对体系的效率负责,只管要素覆盖,是因为要素覆盖是与拿证书相关的。一个好的顾问公司应该协同顾客研究其流程,提出重组的建议,流程的建立不仅要考虑要素覆盖还要兼顾流程效率。实施参与深度不够是一方面,参与时间也偏短,我们一般一个咨询周期6-8月,而国外1-2年的周期是很多的。6个月的时间往往只是体系的初步建立,还很粗糙,要运行和完善为一个比较可行的的体系,还需要大量的时间,这个过程仍然不能没有咨询公司的参与和指导。

四、如何实施ISO9000与CMM

目前ISO9000在中国的大中型软件组织中已经比较普及,现在很多软件组织正准备实施CMM或正在实施CMM,这对中国软件产业实在是一件好事,因为大家终于认识到软件开发过程管理的重要,CMM只是说明达到某一级别必须做的工作,并未按说明如何实施,所以需要组织结合自身的情况,对软件过程进行认真的策划,建立符合组织特点有效的管理体系。

根据我国软件组织发展的特点,结合ISO9000与CMM的发展历史,建议先实施ISO9000,因为ISO9000实施费用、要求人力、物力比较少,容易实施,在实施ISO9000的基础上实施CMM相对来说容易些。下面根据作者经历介绍如何在软件企业中实施ISO9000与CMM,如何使ISO9000与CMM在软件企业中融合在一起,发挥更大的作用。首先介绍如何实施ISO9000,实施ISO9000应当以“八项质量管理原则”为基础,结合组织本身的特点进行有针对的质量管理。如下图所示:

CMM

原则一:以顾客为关注焦点
组织依存于其客户。因此组织应理解顾客当前的和未来的需求,满足客户要求并争取超越客户期望。全面了解客户的需求和期望,确保组织的各项目标,包括质量目标能直接体现客户的需求及期望。确保客户的需求和期望在整个组织中得到沟通,使各级领导和全体员工都能了解客户需求的内容、细节和变化并采取措施来满足客户的要求。有计划地、系统地测量客户满意度并针对测量结果采取改进措施。在重点关注客户地前提下确保兼顾其他相关方的利益,使组织得到全面、持续地发展。

原则二:领导作用
领导者建立组织统一的宗旨及方向。做好发展规划,为组织勾画一个清晰的远景。在整个组织及各级、各有关部门设定富有挑战性的目标,在组织各级创造并坚持一种共同的价值观,并树立职业道德榜样,形成组织文化,使全体员工工作在一个比较宽松、和谐的环境之中,建立信任,消除忧虑,激发、鼓励并承认员工的贡献,提倡公开和诚恳的交流和沟通,发展实施为达到目标所需的发展战略。

原则三:全员参与
各级人员是组织的基础。只有他们的充分参与,才能使他们的才干为组织带来收益。
要对员工进行职业道德的教育,使员工了解他们的贡献的重要性和在组织中的作用,在本职工作中,应让员工有一定的自主权,并承担解决问题的责任。应把组织的目标分解到职能部门层次,让员工看到更贴近自己的目标,激励员工为实现目标而努力,并评价员工的业绩。启发员工积极寻找机会来提高自己的能力,提倡自由地分享知识和经验,使先进的知识和经验成为共同的财富。

原则四:过程方法
将活动和相关的资源作为过程进行管理,可以更高效地得到期望的结果。识别质量管理体系所需要的过程,包括管理活动、资源管理、产品实现和测量有关的过程,确定过程的顺序和相互作用。确定每个过程为取得所期望的结果所必须开发的关键活动,并明确为了管理好关键过程的职责和义务。确定对过程的运行实施有效控制的准则和方法,并实施对过程的监视和测量。对过程的监视和测量的结果进行数据分析,发现改进的机会,并采取措施,包括提供必要的资源,实现持续的改进,以提高过程的有效性和效率。评价过程结果可能产生的风险、后果及对顾客、供方及其他相关方的影响

原则五:管理的系统方法
将相互关联的过程作为系统加以识别、理解和管理,有助于组织提高实现目标的有效性和效率。建立一个以过程方法为主体的质量管理体系。明确质量管理过程的顺序和相互作用,使这些过程相互协调。控制并协调质量管理体系的各过程的运行,应特别关注体系内某些关键或特定的过程,并应规定其运作的方法和程序。通过对质量管理体系的测量和评审,采取措施以持续改进体系,提高组织的业绩。

原则六:持续改进
持续改进整体业绩应当是组织的一个永恒目标。在整个组织内采用始终如一的方法来推行持续改进,即持续改进应成为一种制度,对员工提供关于持续改进的方法和工具的培训。使产品、过程和体系的持续改进成为组织内每个员工的目标。应为跟踪持续改进规定指导和测量的目标。承认改进的结果,并对改进有功的员工通报表扬和奖励。

原则七:基子事实的决策方法
有效决策是建立在数据和信息分析的基础上。通过测量积累、或有意识地收集与目标有关的各种数据和信息,并明确规定收集信息的种类、渠道和职责。通过鉴别,确保数据和信息的准确性和可靠性。采取各种有效方法,对数据和信息进行分析。在分析时,应采用适当的统计技术。应确保数据和信息能为使用者得到和利用。根据对事实的分析、过去的经验和直觉判断做出决策并采取行动。
原则八:与供方互利的关系

组织与供方是相互依存的,互利的关系可增强双方创造价值的能力。识别并选择重要供方。在建立与供方的关系时,既要考虑眼前利益,又要考虑长远利益。与重要供方共享专门技术、信息和资源。创造一个通畅和公开的沟通渠道,及时解决问题。确定联合改进活动。激发、鼓励和承认供方的改进及其成果。
CMM的主要思想很清楚,标准的条例也很明确,但如何达到这种标准的可操作性比较差,可参考的、可借鉴的具体实施步骤比较少。根据软件组织实施的经验,CMM的实施主要以下步骤进行。

首先,提高思想认识

实施CMM对软件组织的发展起着至关重要的作用,CMM过程本身就是对软件组织发展历程的一个完整而准确的描述,组织通过实施CMM,可以更好地规范软件生产和管理流程,使组织规范化。

其次进行CMM培训和咨询工作,根据CMM模型的要求,一个项目的开发一定要有章可循,而且要做到有章必循,这两点都离不开培训。只有组织的管理人员和软件开发人员对CMM真正了解和认识了,自觉地按CMM的方法去进行工作,才能真正实施CMM。

第三、确定合理的目标
一个软件组织实施CMM,首先必须了解自己的管理现状,对照CMM的级别,找到自己在CMM中所处的位置,然后有针对性采取与自己所处级别相适应的措施,使组织尽早纳入CMM的进化阶段,使软件过程管理早日得到改善,最终达到提高软件质量,获取经济效益的目的。结合组织的实际情况选择CMM的切入点,确定总体目标。在总体目标已经确定的前提下,还要制订近期目标和长期目标。

第四、成立专门工作组

组织针对CMM的实施,应成立专门的CMM实施领导小组或专门的机构。CMM的实施需要有强有力的组织保证,领导层必须真正学习理解软件过程管理和改进的重要性,亲自领导和参与,要保证过程管理的人员配备,在CMM的实施过程中,工作组的成立是CMM的一个关键步骤。有几个重要的组织是必不可少的,这些组织包括软件工程过程组、软件工程组、系统测试组、软件质量保证组。软件工程过程组是由专家组成的组,全心全意推进组织所采用的软件过程的定义、维护和改进工作。软件工程组负责一个项目的软件开发和维护活动(即需求分析、设计、编码和测试)的团体。软件质量保证组是一些计划和实施项目的质量保证活动的团体(既有经理又有技术人员),其工作的目的是保证软件过程的步骤和标准是否得到遵守。

第五、制定和完善软件过程
CMM模型强调软件过程的改进,如果组织还没有一个文档形式的软件过程,则首要任务是对当前的工作流程进行分析、整理及文档化,制定出一个具有本组织风格的软件过程,并用该文档化的过程指导软件项目的开发。如果已经具备了软件过程,则要对这个过程做内部评估,对照CMM的要求,找出问题,然后对这个过程进行补充修改。在具体实施的过程中,可以选择有一定代表性的项目组或项目进行试点,跟踪、监督改进后的软件过程的实施情况。总结这些项目组或项目以前成功的经验,从中规划出一个具有实际意义的软件过程,按照CMM规范评估这个过程,找出其中的优缺点。对不满足CMM要求的地方加以完善,使其成为一个完美的实施CMM的软件过程方案

第六、内部评审
CMM每一级别的评估都由美国卡内基梅隆大学的软件工程研究所(CMU/SEI)授权的主任评估师领导一个评审小组进行。一般建议软件组织在进行正式评估之前,先进行内部评审或评估,这种内部评审包含两层含义。第一种就是软件组织内部成员,严格、认真地按照CMM规范评估过程,对自己的软件过程进行评审,找出其中的不足点并进行改进。第二种含义就是在一定范围内,由有关软件工程和CMM专家组成一个专门的“内部评审”机构,负责指导协调实施CMM的活动,推进活动的深入开展,对组织进行“预评估”。这种预评估,可降低软件组织通过正式CMM评估的风险,减少软件组织实施CMM的成本,为组织最终获得国际CMM认证打下基础。

第七、正式评估

如前所述CMM正式评估由CMU/SEI授权的主任评估师领导一个评审小组进行,评估过程包括员工培训(组织的高层领导也要参加)、问卷调查和统计、文档审查、数据分析、与组织的高层领导讨论和撰写评估报告等,评估结束时由主任评估师签字生效。在评估结果揭晓后,将送交所有有关的人员,然后准备开始评级。

第八、根据评估结果改进软件过程

根据IDEAL模型,成熟度的评估只是软件过程改进中的一个环节,如果这个环节与软件过程改进的其他环节不能很好地结合,那么,CMM评估对于软件过程改进所应具有的作用就得不到发挥。一般来说,应该在评估之后很快地作出软件过程改进的计划,因为这时大家对评估结果和存在的问题仍有一个深刻的认识。计划在软件过程改进中是一个非常必要的阶段,只有有效的计划,才能确保软件过程得到有效的改进。评估结果本身就是一个非常坚实的基础,是制定软件过程改进计划的依据。CMM评估客观地指出了组织软件过程存在的问题,帮助组织发现软件过程的不足之处,充分指出了软件过程改进的前景

五、结束语

综上所述,ISO9000和CMM均是国际上的具有高水准质量评估体系。ISO9000系列与CMM模型的建立,在一定程度上规范了竞争市场,抑制了由于无序的、恶性的竟争而造成两败俱伤的恶果,从而降低软件开发的风险,提高了综台的经济效益。ISO9000-3和CMM都在寻找着提高软件质量的途径,两种模型都是评估专家多年来不懈奋斗的成果和工作经验的结晶。ISO9000-3和CMM两者相互影响、共同发展并不断调整、完善。
在实施CMM时,组织千万不要一开始就把目标定位过高,不必一下子去满足某一能力成熟度等级的所有目标。而要根据组织自身的情况,试行某些关键过程域的一部分关键实践活动,逐步完善软件过程和成熟度的升级。对于组织来说,关键是生产处高质量的软件产品,软件组织在证书,所以应当处理好实施和认证的关系。实施是基础,认证是结果。只有认真扎实的实施,才可能有认证的通过。先按照严格的软件工程方法,致力于改进组织的管理,提高软件开发能力,而先不要搞软件能力评鉴,追求认证、评级等。等到能力成熟后,再进行认证。这样可以避免和杜绝华而不实、弄虚作假的现象。应该把实施ISO9000与CMM作为提高软件组织管理水平和提高软件质量的突破口,追求真正的软件能力和水平的提高,而不是把单纯的软件认证作为一个唯一的目标。

2000版质量管理体系国家标准理解与实施
中国标准出版社出版2001年4月第一版
全国质量管理和质量保证标准化技术委员会秘书处
中国质量体系认证机构国家认可委员会秘书处

现代软件工程技术与CMM的融合
杨一平
人民邮电出版社 2002年11月第一版

 

版权所有:UML软件工程组织