一、什么是质量? 作为软件产品的销售人员,市场人员或维护人员经常会受到客户这样那样的指责或抱怨,客户说:你们产品的质量太差,不稳定等等。那么什么是质量呢?我们该如何来衡量质量呢? 质量具有三个维度: ?? 符合目标。目标是客户所定义的,符合目标即判断我们是不是在做需要做的事情。 ?? 符合需求。即产品是不是在做让它做的事情。 ?? 符合实际需求。实际的需求包括用户明确说明的和隐含的需求。 ISO 关于质量的定义表示如下: “ 一个实体(产品或服务)的所有特性,基于这些特性可以满足明显的或隐含的需要。 ” 注意,在这个定义中包含明显的需求和隐含的需求。而往往我们会忽略隐含的需求。因此在控制一个产品的质量的过程中必须关注这些隐含的需求,并给予应有的验证。 另一方面因为我们的产品是为客户提供服务的,因此凡是不满足客户需求的,我们都认为是一个失效( failure )。所以我们的产品必须始终围绕着客户的需求进行开发和验证。 这里我们谈到客户,其实在一个软件的需求收集过程中需要关注客户和用户。而我们经常会忽略客户与用户之间的区别。那么谁是客户?谁是用户呢?简单的来说,客户是真正能够决定是否购买你软件的人,而用户是实际使用软件的人。了解了这个区别,对于你在分析需求的重要性的时候就可以进行参考。同时在产品质量验证的时候也可以做出不同的权衡。另一方面我们在考虑我们用户需求的时候,往往只考虑了实际使用软件的人员,而忽略了其它一些人员对软件的要求或对软件造成的潜在竞争,这包括维护人员的要求、系统管理人员的要求、软件上下游人员的要求、先前版本的情况、市场上竞争对手的软件情况等。 每个人提到质量的时候,经常会遇到下列矛盾,在这些矛盾中隐含着对质量的承诺【 5 】: ?? 质量需要一个承诺,尤其是高层管理者的承诺。但为了得到质量,高层管理者必须和其雇用的员工进行紧密合作; ?? 许多人相信没有缺陷的产品和服务是不可能的。但是控制在一定级别的缺陷数是正常并可接受的; ?? 质量经常是和成本紧密联系在一起,一个高质量的产品同时也意味着高投入。这是设计的质量和一致性质量的一个矛盾; ?? 一个高的质量要求需求规格说明书足够详细,以便产品可以根据这些规格说明书进行定量的分析。然而许多组织没有能力或者不愿意产生如此详细程度的规格说明书; ?? 技术人员经常相信规范和标准会束缚他们的创造力,因此就不遵照标准做事。然而如果要得到高质量的产品,就必须遵循良好定义的标准和过程。 二、流程对质量的贡献 好了,既然已经了解了什么是质量,那么怎么才能改进软件产品的质量呢?从一个企业的长远发展来看,首先应当从流程抓起,规范软件产品的开发过程。这是一个软件企业从小作坊的生产方式向集成化、规范化的大公司迈进的必经之路,也是从根本上解决质量问题,提高工作效率的一个关键手段。 软件产品的开发同其它产品(如汽车)的生产有着共同特性,即需要按一定的过程来进行生产。在工业界,流水线生产方式被证明是一种高效且能够比较稳定地保证产品质量的一种方式。通过这种方式,不同的人员被安排在流程的不同位置,最终为着一个目标共同努力,这样可以防止人员工作间的内耗,极大的提高工作效率。并且由于其过程来源于成功的实例,因此其最终的产品质量能够满足过程所设定的范围要求。软件工程在软件的发展过程中吸取了这个经验并把它应用到了软件开发中,这就形成了软件工程过程,简单的说就是开发流程。 无论做什么事情,都有一个循序渐进的过程,从计划到策略再到实现。软件流程就是按照这种思维来定义开发过程,它根据不同的产品特点和以往的成功经验,定义了从需求到最终产品交付的一整套流程。流程告诉我们该怎么一步一步去实现产品,可能会有那些风险,如何去避免风险等等。由于流程来源于成功的经验,因此,按照流程进行开发可以使得我们少走弯路,并有效的提高产品质量,提高用户的满意度。 目前流行的流程方法有很多种,不同的过程模型适合于不同类型的项目。瀑布模型是应用的最为广泛的一种模型,也是最容易理解和掌握的模型,然而它的缺陷也是显而易见的。遗漏的需求或者不断变更的需求会使得该模型无所适从。然而,对于那些容易理解但很复杂的项目,采用瀑布模型会是比较适合的,因为你可以按部就班的去处理复杂的问题。在质量要求高于成本和进度要求的时候,该模型表现的尤其突出。 螺旋模型是也是一个经典模型,它关注于发现和降低项目的风险【 8 】。螺旋型项目从小的规模开始,然后探测风险,制定风险控制计划,接着确定下一步项目是否还要继续,然后进行下一个螺旋的反复。该模型的最大优点就是随着成本的增加,风险程度随之降低。然而螺旋模型的缺点是比较复杂,且需要管理人员有责任心,专注以及有管理方面经验。 RUP ( Rational Unified Process )是 Rational 公司提出的一套开发过程模型,它是一个面向对象软件工程的通用业务流程【 9 】。它描述了一系列相关的软件工程流程,它们具有相同的结构,即相同的流程构架。 RUP 为在开发组织中分配任务和职责提供了一种规范方法,其目标是确保在可预计的时间安排和预算内开发出满足最终用户需求的高品质的软件。 RUP 具有两个轴,一个是时间轴,这是动态的。另一个是工作流轴,这是静态的。在时间轴上, RUP 划分了四个阶段:初始阶段、细化阶段、构造阶段和发布阶段。每个阶段都使用了迭代的概念。在工作流轴上, RUP 设计了六个核心工作流程和三个核心支撑工作流程,核心工作流轴包括:业务建模工作流、需求工作流、分析设计工作流、实现工作流、测试工作流和发布工作流。核心支撑工作流包括:环境工作流、项目管理工作流和配置与变更管理工作流。具体可以参考图 1 。 RUP 汇集现代软件开发中多方面的最佳经验,并为适应各种项目及组织的需要提供了灵活的形式。作为一个商业模型,它具有非常详细的过程指导和模板。但是同样由于该模型比较复杂,因此在模型的掌握上需要花费比较大的成本。尤其对项目管理者提出了比较高的要求。 图1 RUP 工作流程示意图 IPD ( Integrated Product Development )流程是由 IBM 提出来的一套集成产品开发流程,非常适合于复杂的大型开发项目,尤其涉及到软硬件结合的项目。 IPD 从整个产品角度出发,流程综合考虑了从系统工程、研发(硬件、软件、结构工业设计、测试、资料开发等)、制造、财务到市场、采购、技术支援等所有流程。是一个端到端的流程。在 IPD 流程中总共划分了六个阶段(概念阶段、计划阶段、开发阶段、验证阶段、发布阶段和生命周期阶段),四个个决策评审点(概念阶段决策评审点、计划阶段决策评审点、可获得性决策评审点和生命周期终止决策评审点)以及六个技术评审点,具体可以参考图 2 。 IPD 流程是一个阶段性模型,具有瀑布模型的影子。该模型通过使用全面而又复杂的流程来把一个庞大而又复杂的系统进行分解并降低风险。一定程度上,该模型是通过流程成本来提高整个产品的质量并获得市场的占有。由于该流程没有定义如何进行流程回退的机制,因此对于需求经常变动的项目该流程就显得不大适合了。并且对于一些小的项目,也不是非常适合使用该流程。 图2 IPD 流程示意图 三、流程与技术 流程和成功不是等价的。没有流程就成功是不可能得到保证,但有了流程并不意味着肯定能够成功。这恐怕是很多迷信于流程的人所不能接受的。但这的确是个事实。记得有个做了将近 30 多年的需求分析专家说过:即使是一个已经达到 CMM4 级的公司,也完全有可能做不好需求分析。为什么?技术,技术是成功的另外一个必要条件。就好比现在你要从上海到北京去,流程给你指出了最短的路径,技术提供给你最快的交通工具。两者结合就是完美。 对于软件开发来说,要保证软件的质量,需要掌握多方面的技术,包括分析技术、设计技术、编码技术和测试技术等等。在国内有一个普遍的非正常现象,就是大家觉得只有编程能力才是玩电脑的真正技能。就好像造一套房子,其它都不重要,只要砖瓦匠有高超的技能就行了。尽管这个比喻会打击很多程序员的自尊心,但这的确是一个事实。我们缺少系统级的工程师,在分析和设计方面的工作做得很不扎实。 需求是一个项目的灵魂。模棱两可的需求带来不可避免的后果便是返工 —— 重做一些你认为已做好的事情。返工会耗费开发总费用的 4 0 % ,而 7 0 % ~ 8 5 % 的重做是由于需求方面的错误所导致的( l e ff i n g w e l l1 9 9 7 )【 10 】。想像一下如果你能减少一半的返工会是怎样的情况?你能更快地开发出产品,在同样的时间内开发更多、更好的产品,甚至能偶尔回家休息休息。在《软件需求》一书中关于如何进行需求分析给出了比较详细的介绍【 7 】, RUP 中关于需求的指导也是很实用的。 设计是最能体现一个工程师能力和水平的环节。一个好的设计基本上决定了产品的最终质量。设计是把需求转换成系统的一个关键步骤,它需要从自然语言描述的需求中寻找出设计的基础单元,构建出整个系统的构架。在 RUP 中关于系统构架师和设计师的定位是相当高的。关于设计方面的技能涉及面是很广的,包括传统的结构化设计到面向对象设计。设计人员需要掌握一定的建模技术。 UML 是国际上比较流行的一种建模语言【 11 】。在嵌入式方面, SDL 也是一种非常好的选择。《设计模式》是在设计思想方面总结的非常出色的一本书【 6 】,作为一名设计人员(尤其是面向对象设计人员)必须要好好研究一下。但是对这些模式的应用应当讲究一种自然的应用,千万不要因为模式而去设计模式,否则会适得其反。 现在的程序员热中于掌握多种编程语言,或者讲究语言的过分技巧化,而往往忽略了编程语言的规范化。不规范的语言应用给程序的可理解性、可维护性以及可测试性带来了大的伤害,进而损害了产品的质量。某公司曾对中国程序员和印度程序员做过一个测验,这个测验要求参加者对一组数进行排序。测试结果发现,印度程序员设计的程序使用的算法并不是最优,但却是最不容易出错的,并且几个程序员写出来的代码如出一辙。而几个中国程序员写出的代码,有的非常漂亮,很精练,效率很高;有的却很冗杂,还有错误。如果大家是在做研究性的项目或纯粹兴趣性的项目,那么充分发挥自己的编程天才也无可厚非。然而,对于一个软件公司,产品最终是要交给用户的,需要遵循的是一个软件产品的开发工程。因此这类软件的开发需要遵循一定的编程规范,毕竟开发的软件不是自己用,还需要和别人的集成,还需要给以后版本重用和维护。 测试的技术将在第五节进行阐述。总之流程很关键,技术也很重要,我的观点是:鱼和熊掌,两者都不能放。 四、全面质量管理 自从 Deming 的全面质量管理( TQM )原则在日本工业界获得了巨大成功之后,这个原则迅速被传播到了世界各个地方,同样,全面质量管理原则也被应用到了软件开发当中。如前面提到的,软件开发也是一个工程性的工作,因此必须提高整个工程的质量。产业界的大量研究( TRW 、 Nippon Electric 和 Mitre Corp. 以及其它一些公司)表明设计活动引入的错误占软件过程中出现所有错误(和最终的缺陷)数量的 50 %到 65 %。根据 IBM 的研究表明,假定在分析阶段发现的错误其改正成本为 1 个单位的话,那么在测试之前(设计编码阶段)发现一个错误的修改成本约为 6.5 个货币单位,在测试时(集成测试,系统测试和验收测试)发现一个错误的修改成本约为 15 个货币单位,而在发布之后(已经交到用户手上)发现一个错误的修改成本约为 60 到 100 个货币单位。同样该比例也适用用于发现一个错误需要的时间。我们可以看下面两条曲线图: 图3 缺陷代价曲线 为了提高产品质量,缩短产品开发进度,节约产品开发成本,必须尽早的进行产品质量控制。全面质量控制要求在过程的每个阶段每个步骤上都要进行严格的验证和确认活动。 什么是验证? 验证 就是要用数据证明我们是不是在正确的制造产品。注意这里强调的是过程的正确行【 12 】。 什么是确认? 确认 就是要用数据证明我们是不是制造了正确的产品。注意这里强调的是结果的正确性。 IEEE 给出的验证和确认过程可以用下图来表示。验证和确认是一个广泛的概念,感兴趣的读者可以参考 IEEE Std 1012-1998 。
图4 验证和确认模型 五、关注测试 软件测试是软件质量控制中的关键活动。业界的统计数据表明,测试的成本大约占软件开发总成本的 50 %左右。 软件测试的目的是要发现软件中的错误。一个好的测试是发现至今没有被发现的错误。传统的软件测试专注于动态测试范畴,如:单元测试,集成测试和系统测试。而测试工程的发展已经进入到了全流程的测试,包括开发过程前期的静态测试。 一般我们可以把测试分为白盒测试和黑盒测试。 白盒测试 :顾名思义,白盒测试应当是透明的。的确,该类测试是根据程序代码的内部逻辑结构来设计测试用例进行测试。那么什么是测试用例? 一个 测试用例 就是一个文档,描述输入、动作、或者时间和一个期望的结果,其目的是确定应用程序的某个特性是否正常的工作。 黑盒测试 :看了白盒测试的解释,我想你很快就能猜出黑盒测试是不考虑程序内部结构情况的。事实上也是这样。黑盒测试是根据规格说明书进行的测试。 规格说明书 记录了用户的需求。比如用户希望在编辑器中增加查找功能,那么我们把该需求写入规格说明书,根据该项要求,直接调用应用程序的该项功能进行测试,而不管其内部是用什么算法实现的。 白盒和黑盒这两类测试是从完全不同的出发点,并且是两个完全对立点,反映了事物的两个极端,两种方法各有侧重,不能替代。但是在现代测试理念中,这两种测试往往不是决然分开的,一般在白盒测试中交叉使用黑盒测试的方法,在黑盒测试中交叉使用白盒测试的方法。 常见的白盒测试是单元测试。 单元测试 是测试中最小单位的测试。简而言之,就是拿一个函数出来,加上驱动模块,桩模块,让它能够运行起来,然后设计一些用例测试其内部的控制点(如:条件判断点,循环点,选择分支点等)。 驱动模块 是模拟调用被测函数的函数。 桩函数 是模拟当前测试函数所调用的函数。 常见的黑盒测试包括:集成测试,系统测试。 集成测试 是在单元测试的基础上,将所有模块按照设计要求(如根据结构图)组装成为子系统或系统,进行集成测试。实践表明,一些模块虽然能够单独地工作,但并不能保证连接起来也能正常的工作。程序在某些局部反映不出来的问题,在全局上很可能暴露出来,影响功能的实现。 系统测试 的目的在于通过与系统的需求定义作比较,发现软件与系统定义不符合或与之矛盾的地方。系统测试的测试用例应根据需求分析说明书来设计,并在实际使用环境下来运行。系统测试的内容极其广泛,包括功能测试、协议测试、性能测试、压力测试、容量测试等等。有关测试方面的概念可以参考本人已出版的《软件测试技术概论》。 软件测试是产品最终交付到用户之前的最后一道防线,有着举足轻重的地位。然而,做好软件测试却是不容易的,一方面你需要同时掌握软件开发的技能和软件测试方面的技能;另一方面产品必须给予测试充分的独立性和资源保证。 六、成功的铁三角 在一个软件企业中,如果能够良性的发展,必须关注组织,流程和人三者之间的关系。组织是流程成功实施的保障,好的组织结构能够有效的促进流程的实施;流程对于产品的成功有着关键的作用,一个适合于组织特点和产品特点的流程能够极大的提高产品开发的效率和产品质量,反之则会拖延产品开发进度,并且质量也无法得到保证;对企业来说,人是最宝贵的财富,它们是技术的载体。对于一个软件公司来说,无论是开发人员还是测试人员,都非常关心其今后的发展通道,如果有一条清晰的技术发展线为其指明今后的职业发展方向的话,这可以大大激励员工的士气和工作积极性。另外技术发展的方向应该与现在的开发流程和规范相结合,这样有利于专业技能的提高。 总之,组织,流程和人这三者是一个企业成功的铁三角,理想的情况下它们彼此促进,糟糕的情况下它们彼此制约。 七、国际上流行的质量标准 最早进入国内的质量标准是 ISO 系列。在软件方面主要使用 ISO9000 系列标准。 ISO9000 是一个非常完整的标准,并且定义了供应商设计和交付一个有质量产品的能力所需要的所有元素。 ISO9002 涵盖了对供应商控制设计和开发活动所认为重要的质量标准。 ISO9003 用于证明供应商在检视和测试期间检测和控制产品不一致性的能力。 ISO9004 描述和 ISO9001 、 ISO9002 和 ISO9003 相关的质量标准,并提供了一个完整的质量查检表。 软件能力成熟度模型是目前国内软件企业中非常受欢迎的一个质量标准。并且该标准已经成为业界一个事实上的标准。 CMM 为软件组织提供了一个指导性的管理框架。在这个框架的指导下: ?? 软件组织可以对其软件开发、维护过程获得控制。 ?? 软件组织可以推进其软件工程更为科学、推进软件过程管理更为卓越。 ?? CMM 通过确定当前软件过程管理的成熟度,通过标识软件的质量和过程改进中关键的、要害的问题,可以指导软件组织选择正确的软件过程改进策略。 ?? CMM 将其焦点,聚焦在一系列具体的软件过程活动上,并以侵略方式( Aggressively )达到这些活动。一个软件组织就可以稳定地、持续地改进其整个软件组织过程,使得其软件过程管理能力取得持续地、持久地不断争长提高。 在 CMM 中,把软件工厂分为五个等级:初始级、可重复级、已定义级、管理级和优化级。其中: 初始级 :软件过程是未加定义的随意过程,项目的执行是随意甚至是混乱的。也许,有些企业制定了一些软件工程规范,但若这些规范未能覆盖基本的关键过程要求,且执行没有政策、资源等方面的保证时,那么它仍然被视为初始级。 可重复级 :人们根据多年的经验和教训,总结出软件开发的首要问题不是技术问题而是管理问题。因此,第二级的焦点集中在软件管理过程上。一个可管理的过程则是一个可重复的过程,可重复的过程才能逐渐改进和成熟。可重复级的管理过程包括了需求管理、项目管理、质量管理、配置管理和子合同管理五个方面;其中项目管理过程又分为计划过程和跟踪与监控过程。通过实施这些过程,从管理角度可以看到一个按计划执行的且阶段可控的软件开发过程。 已定义级: 要求制定企业范围的工程化标准,并将这些标准集成到企业软件开发标准过程中去。所有开发的项目需根据这个标准过程裁剪出与项目适宜的过程,并且按照过程执行。过程的裁剪不是随意的,在使用前必须经过企业有关人员的批准。 管理级 :所有过程需建立相应的度量方式,所有产品的质量(包括工作产品和提交给用户的最终产品)需要有明确的度量指标。这些度量应是详尽的,且可用于理解和控制软件过程和产品。量化控制将使软件开发真正成为一种工业生产活动。 优化级: 的目标是达到一个持续改善的境界。所谓持续改善是指可以根据过程执行的反馈信息来改善下一步的执行过程,即优化执行步骤。如果企业达到了第五级,就表明该企业能够根据实际的项目性质、技术等因素,不断调整软件生产过程以求达到最佳。 美国国防部规定,重要性级别高的软件应该由质量级别高的企业承担。不同等级的软件公司提交的软件,其软件质量也相差很大,国外的一份统计资料如下: 表 1 、 CMM 级别与软件质量关系表格 每千行软件的缺陷数目
软件过程成熟度等级
软件准时提交的百分比
每人每月生产的程序行数
软件需要返工的百分比
平均软件失效时间(近似)
大于 10
初始级
<=50
Z
>=45
2 到 60 分钟
小于 10
可重复级
90
1.5Z
20
1-160 小时
小于 1
已定义级
99
2.5Z
10
不确定
小于 0.1
管理级
降低开发时间到 1/2
5 Z
5
不确定
小于 0.01
优化级
降低开发时间到 1/4
10Z
<=2
近似完全可靠
对于很多已经推行或者准备推行 CMM 的公司来说, CMM 的起步是很难的,因此 Humphrey 又提出了 PSP ( Person Software Process )和 TSP ( Team Software Process )【 2 】【 3 】。 CMM 是过程改善的第一步,它提供了评价组织的能力、识别优先改善需求和追踪改善进展的管理方式【 1 】。企业只有开始 CMM 改善后,才能接受需要规划的事实,认识到质量的重要性,才能注重对员工经常进行培训,合理分配项目人员,并且建立起有效的项目小组。然而,它实现的成功与否与组织内部有关人员的积极参加和创造性活动密不可分。 PSP 能够指导软件工程师如何保证自己的工作质量,估计和规划自身的工作,度量和追踪个人的表现,管理自身的软件过程和产品质量。经过 PSP 学习和实践的正规训练,软件工程师们能够在他们参与的项目工作之中充分运用 PSP ,从而有助于 CMM 目标的实现。 TSP 结合了 CMM 的管理方法和 PSP 的工程技能,通过告诉软件工程师如何将个体过程结合进小组软件过程,并将后者与组织进而整个管理系统相联系;通过告诉管理层如何支持和授权项目小组,坚持高质量的工作,并且依据数据进行项目的管理,向组织展示如何应用 CMM 的原则和 PSP 的技能去生产高质量的产品。 软件的生产过程及其它的许多子过程、软件的开发者和用户、以及系统的使用中存在着巨大的变化和不同,要使一个软件过程对软件生产的改善真正有所帮助,其框架应是由 CMM 、 TSP 和 PSP 组成的一个完整体系,即从组织、群组和个人三个层次进行良好的软件工程和管理实践的指导和支持。总而言之,单纯实施 CMM ,永远不能真正做到能力成熟度的升级,只有将实施 CMM 与实施 PSP 和 TSP 有机地结合起来,才能发挥最大的效力。 八、如何起步? 质量改进需要花费成本,因此改进的途径需要视不同公司的规模、业务、财务状况、人员技术水平等多方面综合进行考虑。一般建议中型以上的较大的软件公司实施 CMM 体系。而对于一些小型的软件公司可以采取比较实际的,相对成本较少,且容易操作的方面进行,这些方面大致如下: ?? 实施简洁的开发过程体系,根据不同业务特点可以选择瀑布模型,迭代模型等,并在这些模型上进行适当的变化以适应于短平快的产品开发特点。 ?? 提高需求分析和设计方面的技术,例如:原型法技术,分析模式,设计模式,面向对象设计, UML 等; ?? 加强文档化工作。文档是经验的保留,对于一个企业要想获得长期的发展,必须加强文档化工作; ?? 加强编程规范工作; ?? 进行适当的测试工作,建议进行单元测试和系统测试; ?? 实施配置管理工作,加强版本控制; ?? 开展走读、评审和检视活动,尤其要加强代码走读,建议进行每日交叉走读活动; ?? 进行简单的度量分析获得;建议实施 PSP 活动;
如何提高软件的质量?
产品的质量是企业生存和发展的根本,也事关创业者的切身利益,应该引起足够的重视。
要提高产品的质量,应该从整个生产流程出发,从相关的环节着手,把握好每一个环节,不能够存留任何一个空挡。
每一个产品的生产都有其一定的产品要求,要想达到其质量要求,必须按照其技术要求进行生产、包装、销售。
以种植业为例,如果该创业者计划生产无公害农产品,那他就要按照无公害农产品的要求,从产地要求、品种选择、栽培技术、土壤肥料、病虫防治各个方面,都按照无公害生产的技术要求落实。主要从进料检验、生产过程、出厂检验、售后服务等方面去控制,从而确保产品的整体质量。
由于产品要进入市场才能够获得回报,生产者还要在产品的整理、包装、运输上采取措施,使之达到相应的质量要求。
对于不合格的产品,千万不要放入其出售的规范产品中,也就是不能够掺假。
在软件开发过程中常见的控制软件质量的方法有哪些
以软件过程管理为核心,软件过程管理围绕软件过程改进的5个方面展开描述,循序渐进地提出软件过程改进模型,为软件开发组织提高管理能力提供了引路的"灯塔"。本书首先描述了软件过程管理框架及其在软件过程评估中的作用,阐述了开始有效过程改进的步骤;
其次确定了软件过程管理所需要的活动;接着又提出相关概念,确定开发过程和管理及控制过程所需要的技术和管理;随后介绍了对软件过程进行量化控制的方法;最后引导人们如何防患于未然,将工作重心从解决问题转移到预防问题。
如何提高软件测试质量?
制定合适的测试过程规范;
制定合理的测试计划;
设计合适的测试方案;
编写的测试用例覆盖到所有的需求;
对测试执行过程进行监控;
使用工具管理测试发现的缺陷;
对缺陷进行统计分析,指导过程改进。
。。。。
在CMM4的两个关键过程领域中,软件质量管理以什么为中心,制定过程管理以什么为中心
CMM是指“能力成熟度模型”,其英文全称为Capability Maturity Model for Software,英文缩写为SW-CMM,简称CMM。它是对于软件组织在定义、实施、度量、控制和改善其软件过程的实践中各个发展阶段的描述。CMM的核心是把软件开发视为一个过程,并根据这一原则对软件开发和维护进行过程监控和研究,以使其更加科学化、标准化、使企业能够更好地实现商业目标。
CMM是是一种用于评价软件承包能力并帮助其改善软件质量的方法,侧重于软件开发过程的管理及工程能力的提高与评估。CMM分为五个等级:一级为初始级,二级为可重复级,三级为已定义级,四级为已管理级,五级为优化级。
CMM是由美国卡内基梅隆大学软件工程研究所1987年研制成功的,是目前国际上最流行最实用的软件生产过程标准和软件企业成熟度等级认证标准。目前,我国已有软件企业通过了CMM标准认证 。
SW-CMM(Capability Maturity Model For Software 软件生产能力成熟度模型,以下简称"CMM"),是87年由美国卡内基梅隆大学软件工程研究所(CMU SEI)研究出的一种一种用于评价软件承包商能力并帮助改善软件质量的方法,其目的是帮助软件企业对软件工程过程进行管理和改进,增强开发与改进能力,从而能按时地、不超预算地开发出高质量的软件。
其所依据的想法是:只要集中精力持续努力去建立有效的软件工程过程的基础结构,不断进行管理的实践和过程的改进,就可以克服软件生产中的困难。CMM它是目前国际上最流行、最实用的一种软件生产过程标准,已经得到了众多国家以及国际软件产业界的认可,成为当今企业从事规模软件生产不可缺少的一项内容。
CMM目前通用流行的版本是1.1(Version1.1)。《按照软件工程研究所(SEI)的原来计划,CMM的改进版版本2.0(V2.0)是要在1997年的11月完成的。但是,美国国防部办公室要求软件工程研究所(SEI)延迟发放公布CMM版本2.0,直至他们完成另一个更为紧迫的项目-CMMI。
CMMI(Capability Maturity Model Integration能力成熟度模型集成),是美国国防部的一个设想。他们希望把所有现存的与将被发展出来的各种能力成熟度模型,集成到一个框架中去。这个框架用于解决两个问题:第一,软件获取办法的改革;第二,从集成产品与过程发展的角度出发,建立一种包含健全的系统开发原则的过程改进。
CMM为软件企业的过程能力提供了一个阶梯式的改进框架,它基于过去所有软件工程过程改进的成果,吸取了以往软件工程的经验教训,提供了一个基于过程改进的框架;它指明了一个软件组织在软件开发方面需要管理哪些主要工作、这些工作之间的关系、以及以怎样的先后次序,一步一步的做好这些工作而使软件组织走向成熟。
一、CMM的诞生
信息时代,软件质量的重要性越来越为人们所认识。软件是产品、是装备、是工具,其质量使得顾客满意,是产品市场开拓、事业得以发展的关键。而软件工程领域在1992年至1997年取得了前所未有的进展,其成果超过软件工程领域过去15年来的成就总和。
软件管理工程引起广泛注意源于20世纪70年代中期。当时美国国防部曾立题专门研究软件项目做不好的原因,发现70%的项目是因为管理不善而引起,而并不是因为技术实力不够,进而得出一个结论,即管理是影响软件研发项目全局的因素,而技术只影响局部。到了20世纪90年代中期,软件管理工程不善的问题仍然存在,大约只有10%的项目能够在预定的费用和进度下交付。软件项目失败的主要原因有:需求定义不明确;缺乏一个好的软件开发过程;没有一个统一领导的产品研发小组;子合同管理不严格;没有经常注意改善软件过程;对软件构架很不重视;软件界面定义不善且缺乏合适的控制;软件升级暴露了硬件的缺点;关心创新而不关心费用和风险;军用标准太少且不够完善等等。在关系到软件项目成功与否的众多因素中,软件度量、工作量估计、项目规划、进展控制、需求变化和风险管理等都是与工程管理直接相关的因素。由此可见,软件管理工程的意义至关重要。
软件管理工程和其它工程管理相比有其特殊性。首先,软件是知识产品,进度和质量都难以度量,生产效率也难以保证。其次,软件系统复杂程度也是超乎想象的。因为软件复杂和难以度量,软件管理工程的发展还很不成熟。
软件管理工程的发展,在经历了从70年代开始以结构化分析与设计、结构化评审、结构化程序设计以及结构化测试为特征的结构化生产时代,到90年代中期,以CMM模型的成熟模型和日益为市场接受为标志,已经进入以过程成熟模型CMM、个体软件过程PSP和群组软件过程TSP为标志的以过程为中心的时代,而软件发展第三个时代,及软件工业化生产时代,从90年代中期软件过程技术的成熟和面向对象技术、构件技术的发展为基础,已经渐露端倪,估计到2005年,可以实现真正的软件工业化生产,这个趋势应该引起软件企业界和有关部门的高度重视,及早采取措施,跟上世界软件发展的脚步。软件生产转向以改善软件过程为中心,是世界各国软件产业或迟或早都要走的道路。
软件过程改善是当前软件管理工程的核心问题。50多年来计算事业的发展使人们认识到要高效率、高质量和低成本地开发软件,必须改善软件生产过程。软件管理工程走过了一条从70年代开始以结构化分析与设计、结构化评审、结构化程序设计以及结构化测试到90年代中期以过程成熟模型CMM、个体软件过程PSP和群组软件过程TSP为标志的以过程为中心向着软件过程技术的成熟和面向对象技术、构件技术的发展为基础的真正软件工业化生产的道路。软件生产转向以改善软件过程为中心,是世界各国软件产业或迟或早都要走的道路。软件工业已经或正在经历着"软件过程的成熟化",并向"软件的工业化"渐进过渡。规范的软件过程是软件工业化的必要条件。
软件过程研究的是如何将人员、技术和工具等组织起来,通过有效的管理手段,提高软件生产的效率,保证软件产品的质量。由此诞生了软件过程的三个流派:CMU-SEI的CMM/PSP/TSP;ISO 9000质量标准体系;ISO/IEC 15504(SPICE)。
CMM/PSP/TSP即软件能力成熟度模型/ 个体软件过程/群组软件过程,是1987年美国 Carnegie Mellon 大学软件工程研究所(CMU/SEI)以W.S.Humphrey为首的研究组发表的研究成果"承制方软件工程能力的评估方法";SO 9000质量标准体系是在70年代由欧洲首先采用的,其后在美国和世界其他地区也迅速地发展起来。目前,欧洲联合会积极促进软件质量的制度化,提出了如下ISO9000软件标准系列:ISO9001、ISO9000-3、ISO9004-2、ISO9004-4、ISO9002;ISO/IEC 15504(SPICE)是1991年国际标准化组织采纳了一项动议,开展调查研究,按照CMU-SEI的基本思路,产生的技术报告ISO/IEC 15504--信息技术软件过程评估
目前,学术界和工业界公认美国 Carnegie Mellon 大学软件工程研究所(CMU/SEI) 以W.S.Humphrey为首主持研究与开发的软件能力成熟度模型CMM是当前最好的软件过程,已成为业界事实上的软件过程的工业标准。
二、CMM的发展
1987年美国 Carnegie Mellon 大学软件工程研究所(CMU/SEI)以W.S.Humphrey为首的研究组发表了CMM/PSP/TSP 技术,为软件管理工程开辟了一条新的途经。
CMM框架用5个不断进化的层次来评定软件生产的历史与现状:其中初始层是混沌的过程,可重复层是经过训练的软件过程,定义层是标准一致的软件过程,管理层是可预测的软件过程,优化层是能持续改善的软件过程。任何单位所实施的软件过程,都可能在某一方面比较成熟,在另一方面不够成熟,但总体上必然属于这5个层次中的某一个层次。而在某个层次内部,也有成熟程度的区别。在CMM框架的不同层次中,需要解决带有不同层次特征的软件过程问题。因此,一个软件开发单位首先需要了解自己正处于哪一个层次,然后才能够对症下药地针对该层次的特殊要求解决相关问题,这样才能收到事半功倍的软件过程改善效果。任何软件开发单位在致力于软件过程改善时,只能由所处的层次向紧邻的上一层次进化。而且在由某一成熟层次向上一更成熟层次进化时,在原有层次中的那些已经具备的能力还必须得到保持与发扬。
软件产品质量在很大程度上取决于构筑软件时所使用的软件开发和维护过程的质量。软件过程是人员密集和设计密集的作业过程:若缺乏有素训练,就难以建立起支持实现成功是软件过程的基础,改进工作亦将难以取得成效。CMM描述的这个框架正是勾列出从无定规的混沌过程向训练有素的成熟过程演进的途径。
CMM包括两部分"软件能力成熟度模型"和"能力成熟度模型的关键惯例"。"软件能力成熟度模型"主要是描述此模型的结构,并且给出该模型的基本构件的定义。"能力成熟度模型的关键惯例"详细描述了每个"关键过程方面"涉及的"关键惯例"。这里"关键过程方面"是指一组相关联的活动;每个软件能力成熟度等级包含若干个对该成熟度等级至关重要的过程方面,它们的实施对达到该成熟度等级的目标起到保证作用。这些过程域就称为该成熟度等级的关键过程域,反之有非关键过程域是指对达到相应软件成熟度等级的目标不起关键作用。归纳为:互相关联的若干软件实践活动和有关基础设施的一个集合。而"关键惯例"是指使关键过程方面得以有效实现和制度化的作用最大的基础设施和活动,对关键过程的实践起关键作用的方针、规程、措施、活动以及相关基础设施的建立。关键实践一般只描述"做什么"而不强制规定"如何做"。各个关键惯例按每个关键过程方面的5个"公共特性"(对执行该过程的承诺,执行该过程的能力,该过程中要执行的活动,对该过程执行情况的度量和分析,及证实所执行的活动符合该过程)归类,逐一详细描述。当作到了某个关键过程的的全部关键惯例就认为实现了该关键过程,实现了某成熟度级及其以低级所含的全部关键过程就认为达到到了了该级。
上面提到了CMM把软件开发组织的能力成熟度分为5个的等级。除了第1级外,其他每一级由几个关键过程方面组成。每一个关键过程方面都由上述5种公共特性予以表征。CMM给每个关键过程了一些具体目标。按每个公共特性归类的关键惯例是按该关键过程的具体目标选择和确定的。如果恰当地处理了某个关键过程涉及的全部关键惯例,这个关键过程的各项目标就达到了,也就表明该关键过程实现了。这种成熟度分级的优点在于,这些级别明确而清楚地反映了过程改进活动的轻重缓急和先后顺序。
管理流程改善
流程再造由美国的Michael Hammer 和Jame Champy提出,在20世纪90年代达到了全盛的一种管理思想。流程设置再造是一种企业活动,内容为从根本重新而彻底地去分析与设计企业程序,并管理相关的企业变革,以追求绩效,并使企业达到戏剧性的成长。企业再造的重点在于选定对企业经营极为重要的几项企业程序加以重新规划,以求其提高营运之效果。目的在为了对于成本、品质、对外服务和时效上达到重大改进。
以运营模式变革为中心的流程再造步骤设计
上述几种阶段模式说已经从不同侧面比较完善和详尽地设计和描述了流程再造的步骤,悉数做到,企业的流程再造应该胜率不低了。但是,如果依靠运营模式的变革来驱动流程再造,步骤需要进行一些调整。笔者在导师黄卫伟教授指导下,运用这种思路,在某企业进行了流程再造的尝试,从短期运行情况看,效果不错。根据在该企业试点的体会,笔者将以运营模式变革为中心的流程再造步骤归纳为五段二十步,可以比较清晰而具体地描述出该企业流程再造的历程。
第一阶段,预备阶段。任务是搭建团队,锁定目标。
第一步,建立组织。在企业管理高层建立以企业掌舵人牵头的流程再造工作推进机构,并给予充分授权,直接向企业最高管理层负责,并建立定期进度报告和追加授权制度。
第二步,设定标杆。通过对现存及潜在竞争对手的全面分析,给企业选定一个或几个比自己强大而具有可追赶性的成长性优势企业,作为标杆企业。
第三步,识别目标。在高度市场化的今天,客户需求呈现出多元化和个性化特征,任何一家企业,哪怕位居世界500强之首,也不可能独占市场,不可能满足所有的客户需求。企业只能尽力追求目标客户群的最大化,但是,总是有限的。要生存,企业就必须清楚地知道自己需要向哪些客户服务,才能获取经济和社会效益的最大化。所以,要参照标杆企业,重新识别目标市场,对企业客户源进行分析,分析的重点包括:现有客户群的忠诚度、流失客户的特征及流失原因、潜在客户的成长性及共性特征、客户的需求、满足客户需求的可能性,为客户区分重要度。只有找准最重要最有价值的客户群,企业战略才放矢之的。
第二阶段,自检阶段。任务是系统诊断,判定症结。
第一步,自检战略导向。对比检查针对各类客户各层次需求的满意率和满足率,根据差距检查战略导向存在的问题,并对企业战略导向进行调校。
第二步,自检生意模式。依据调校后的企业战略导向推动生意模式转型。按照美国学者玛格丽塔的观点,生意模式不是固定不变的,一个成功的生意模式与现存的生意模式相比,代表的是一种“更好的方法”,应该随着环境的变化和自身竞争能力的发展,进行适应性调整,有时这种调整甚至可能是革命性的重构。黄卫伟教授认为,如果企业能力与客户价值之间不对称,就会出现能力—价值困境,表现为能力超越客户价值,或者能力达不到客户价值要求。解决能力超越客户价值的困境,需要改变现行的生意实现模式,帮助价值链上的相关企业建立营利模式。随着市场的演变和需求的多样化,企业耐以成长和生存的生意模式,已经无法再帮助企业产生利润,维持增长。这时,企业要生存和发展,就必须尽快改善或抛弃陈旧的生意模式,迎合市场和客户的需求,推动生意模式转型。
第三步,自检运营模式。运营模式是生意模式的具体体现,也是推进并最终实现生意模式调整或者重构的关键。要依据生意模式转型的方向和特征,对现有运营模式进行彻底地适应性诊断,确定其症结所在。
第三阶段:设计阶段。任务是营造环境,设计方案。
第一步,转换思维模式。流程再造要顺利推进,必须在发起之初,就尽早消除组织对变革的抗拒。可以公布前一阶段自检诊断结果,组织对流程再造可能形成阻力的人员和主要参与人员到标杆企业参观,全员示警,进行危机教育,采用组织大讨论、征文、演讲、研讨、笔会等有效方式,自上而下,进行思想渗透,转换职工心智模式,增强职工承受力,推动企业文化变革,逐步形成新的核心价值观,营造创新氛围,建设创新文化,消除组织抗拒能量聚合的机会。统一企业职工的思想认识,打消顾虑,认同企业新的愿景。在组织中形成强大的支持变革的场效应力。
第二步,设计运营模式。在创新文化包围下,进行全员发动,自下而上,引导员工发挥积极性和原创精神。集中群众的智慧和高层的判断力,全员参与,全员设计,根据新的适应客户和市场需求的生意模式,为企业选定新的与生意模式相配套的运营模式。
第三步,诊断现有流程。比照新选定的运营模式,聘请外部专家参与,以内部流程再造推进团队为主,鼓励全体员工全面介入,诊断企业现有流程,进行流程效率和效能评估,判定症结所在,确定冗余流程和边缘地带。
第四步,设计再造方案。组织内外部专家,在系统诊断的基础上,参照标杆企业流程再造的经验做法,以新的运营模式为中心重新设计企业流程和推进流程再造的实施方案。
第四阶段,推行阶段。任务是以点带面,强力推行。
第一步,局部试点。选定试点单位,进行局部试点,对实施方案和新流程进行试验性验证。考虑到流程再造的高风险性,局部试点一般不选择核心流程,通常选定辅助流程,在见效比较快、职工基础好、管理者认识到位、对核心流程不致于形成致命影响的流程段进行试验。为了更全面验证实施方案的科学性和适应性,可以选择同时多点试验,或者进行长效试验、多轮反复试验。要通过试验,取得比较完整、可信度高的原始验证数据和相关资料。
第二步,完善方案。根据试点采集的信息分析情况,以及对方案预期目标的验证情况,对设计方案进行完善修订,对预期目标进行调校,确定方案实施顺序和重点。因为对主流程的再造,尤其是对核心流程的再造牵涉面比较广,实施需要一定的过渡和调适,在此期间,企业往往需要被迫停产或减产,出现任何意外,都可能给企业带来巨大风险。所以,在正式方案拟制时,通常应该设计应急预案,提高企业流程再造的抗风险能力。
第三步,交流沟通。在流程再造推进过程中,必须建立沟通渠道。流程再造方案涉及到所有组织机构和全体员工的利益和权力调整,方案出台前应广泛而充分地与全体员工交流沟通,取得大多数人的理解和支持。一线员工虽然没有太多的决策权,但是他们的热情、情绪和群体价值取向,却完全可能影响和左右一个部门甚至一个组织的决策,取得他们的支持,可以有效减弱管理层中利益受损人员、部门发动集群抗拒的可能性。在方案转入实施以前,还要对全员进行分层培训和宣传教育,使上上下下都明白为什么再造,怎样再造,自己需要做什么。
第四步,权力模式变革。实施阶段,首要的是撤障,对原有的组织结构进行迅速变革,对管理人员进行迅速调整,对权力重新进行分配,为流程再造打好组织基础。
第五步,新旧流程切换。流程再造虽然要稳妥推进,不能冒失,但一旦条件成熟,需要全面推进时,又必须快刀斩乱麻,果断地完成新旧流程的同步切换,废旧立新。如果过渡期设得过长,新旧流程就容易打架,矛盾交织,难以排解。
第五阶段,调校阶段。任务是完善规范,持续改进。
第一步,流程调校。在新流程运行过程中,要不间断地对其与新的运营模式之间的适应性进行调校,通过短期的模式,要彼此适应。流程调校阶段最重要的一项任务就是邀请重要客户和主要的利益相关人参与对新流程的评估,并根据评估结果,参与对新流程的改进完善设计。不但可以增强流程对重要客户和主要利益相关人期望值的适应性,可以更全面及时地理解他们的需求变化,从而提高新流程的适应性。而且更主要地是可以通过交流,提高新流程在客户中的认知度和影响力,使客户得到心理满足。
第二步,信息化跟进。很多人认为,应该先上信息化手段,再推进流程再造。退一步讲,至少也应该信息化与流程再造同步进行,互相支撑。笔者认为,信息化不宜早行,过早推行信息化,可能将过时流程中的一些做法通过现代化信息化的手段固化下来。因为在流程没有再造以前实施信息化,只能是对现有流程进行信息化描述,现有流程的一些不足也可能通过信息化包装被隐藏起来,给后来的流程再造带来很大的不便,影响流程再造的效果。何况,在流程重新调整、优化后,信息化需要做大量的配套调整工作。如果在流程再造以后,针对精简优化后的流程,及时跟进信息化建设,将有效地发挥新流程的功效。
第三步,评估体系跟进。流程再造以后,新流程的启动惯性和员工的兴奋感、自豪感可能带动流程正常运行一段时间。但是,从长远讲,流程的正常运行必须靠薪酬拉动。在流程再造以后,如果绩效评估体系没有做相应的调整,薪酬不与流程绩效挂钩,新流程就无法维持运行。在全面实施流程再造以后,要重新设计以流程绩效、对整体流程贡献率大小以及流程协调度为主要考核重点的新的绩效评估体系,并根据新的绩效评估体系,在新流程运行惯性消除以前,及时出台新的薪酬制度,实现对流程的有效拉动。
第四步,规范流程。新的流程出台后,要进行有计划的推广,让价值链相关企业、客户、利益相关人知晓、关心,及时给予评定。经过一段时间的循环运行和反复修正完善,逐步成熟和稳定,被企业内外各方面广泛认可以后,要以正式流程管理文件、图表等企业标准的形式对其规范化,也就是说,将新的流程相对固化下来,作为一段时间内的标准。
第五步,流程随诊。客户需求在不断变化,市场格局在不断调整,企业也需要不断调整自己的生意模式、运营模式,与此同时,要对流程随时进行诊断,查找问题,提供改进意见,供决策参考。
第六步,持续改进。流程再造并不是一劳永逸的,而是一个循环往复,逐级递进的过程。企业要根据诊断情况,对流程反复完善,不断改进。
如何实现质量管理体系的持续改进
改进是指为改善产品的特征及特性和或提高用于设计、生产和交付产品的过程的有效性和效率所开展的活动;持续改进是增强满足要求的能力的循环活动。持续改进的对象是质量管理体系。制定改进目标和寻求改进机会的过程是一个持续过程。该过程使用审核发现和审核结论、数据分析、管理评审、或其他方法,其结果导致纠正措施或预防措施。
一、持续改进的目的
持续改进质量管理体系的目的是为了提高组织质量管理体系的有效性和效率,实现质量方针和质量目标,增加顾客和其他相关方满意的机会。企业要根据环境的变化调整企业的质量方针和质量目标,建立持续改进的机制。最高管理者应对持续改进做出承诺,全体员工要积极参与持续改进的活动。
二、持续改进的现状:
三鹿事件、毒胶囊事件让我们不难想到这些企业没有抓质量吗?它一定少不了质量管理系统,同时,还会有各种经质量部门认证的“合格”后颁发的一系列证书。那么,在质量体系运行中是否有效运行?难道没有持续改进吗?……
目前许多企业多数没有建立持续改进的机制,他们对持续改进的认识仍停留在表层,遇事处事,当出现不合格产品产生退货时,质量管理部门没有对产品缺陷进行分析,售后服务也没有对服务过程进行反馈,整个质量管理体系孤立运行。因此,对不符合问题原因的识别很关键,作为持续改进过程的输入,它的准确与否,直接影响到持续改进的效果。在企业的质量管理体系中,识别不符合的原因活动有多种,通常采用的一致改进的方法是:基于企业的质量方针、质量目标,通过内部审核和管理评审评价企业的质量管理体系存在的不合格,当然也可以通过数据分析方法,提供质量管理体系、过程、产品的各种有价值的信息,最终导致采取纠正措施、预防措施而达到持续改进的目的。在企业范围内理解并掌握这种一致的改进的方法,可以快捷有效地实施持续改进活动,取得预期的效果。
企业在持续改进过程中存在的问题:
1.持续改进的主动性不够
企业为满足“审核要求”而采取的一些纠正措施或预防措施,多数情况只停留在问题的表层面上,局限在针对审核中已出现的问题,就事论事地解决问题。认为自己已达到了很好的水平,不是主动地“出击”找自身存在的问题,而是等着别人来查找问题,企业还能谈持续改进吗?
2.领导重视不够
领导是一个组织方针和目标的制定者,是任务分工的策划者和资源的分配者,领导的承诺和积极参与,对建立并保持一个有效的质量体系并使相关方获益是必不可少的。有些企业领导并没有意识到质量体系对企业质量管理水平的重要意义,只是因顾客的要求而进行质量体系认证,其心态仅停留在为了拿到一张证书,那么,企业肯定会陷入两套体系的困境中。
3.体系文件的适宜性差
部分企业的体系文件操作性不强,作业文件更新滞后。有的企业无视设备更新、人员变化和顾客提出的新要求,认为作业文件可有可无,原来的作业文件不能够及时更新,仍按惯例操作,我行我素,出现问题,悔之莫及。
4.员工培训实践效果差
培训实践效果分三方面,一是为了完成年度员工培训计划,编制的培训内容不全面,缺乏针对性,流于形式,走过场,对企业的发展毫无促进效果,二是培训照本宣科,无实战效果,训而无用,不能将所学用于实践中,培训后,依然是“原来该怎么干现在还是怎么干”三是培训对象脱层,不重视,如参加标准培训的管理层人员不参加,认为那是操作人员的事情,到实际生产中出现管理与操作不一致,面对问题说不清。
5.内审员素质需进一步提高
企业在审核中,审核员对审核的内容只是看到一些表面的东西,就认为企业的体系运行符合要求,不能够继续往下查;在现场审核,缺乏观察和思考,走马观花,往往只看到表面,看不到实质,找不出问题的证据,最终不能发现问题所在。由于缺乏耐心和细致,为完成任务,勉强开具的不符合,既没有说服力又没有指导意义,由于审核水准下降,导致受审核方心生懈怠、厌烦情绪。
6.执行力度低,各种监督检查流于形式
企业每年实施的内审活动、产品质量审核、以及工序质量审核等质量检查活动中暴露出来的问题越来越多,有些企业由于内审人员水平有限再加上人情关系等方方面面的原因,每次内审只找一些容易整改的问题开出几项不合格报告来应付各级领导和外审,而实际存在的问题很多,有些问题也很严重。另一方面还存在下发的不符合项只是针对该问题整改,不注意全面的检查,举一反三,导致于下一次来审核,又发现重复问题发生。因此,整改后续的检查、监督力度不够,对纠正、预防措施这一项改进工具不能充分发挥作用。
三、企业质量管理体系中有效运行“持续改进”的对策
如何让持续改进在企业质量管理体系中有效运行,提升质量管理水平,是摆在所有已获证企业面前的一个既现实又迫切的问题。质量管理是企业各项管理的内容之一,持续改进总体业绩应当是企业的一个永恒目标。如何持续改进体系运行的有效性应当把握好以下几点:
1.正确认识持续改进工作
持续改进的积极意义不是发现问题后被动地采取措施解决问题,而是从追求卓越的角度,如何使企业在现有的基础上进一步提高和完善,如何做得更好。有效的持续改进活动首先是主动的,有目的的改进活动、涉及到单一、局部或区域性、整体性等不同层面的改进,且能为企业拓展更大的升值空间。持续改进是一种先进的企业管理理念,是企业管理的一种境界,
持续改进工作的好坏体现了企业管理的优劣程度。从管理的基本原理和逻辑结构看。持续改进是企业正常管理必不可少的一部分,如果没有持续改进,就等于切断了企业管理通向更高层次的通道,其管理将会在固有水平上循环。最终导致体系僵化或失效而被市场淘汰。面对日益复杂的竞争市场,对于一个企业而言,企业的管理和技术必须与时俱进。在原有的管理和技术平台上以渐进的方式通过持续改进而逐步发展、积累到一定阶段或程度,把持续改进管理工作不断推进新的高度。因此,决不应该把自身的管理和产品维持在原有水平上,必须全力推动持续改进工作,使企业的管理和产品满足市场变化的需要。
一个企业要不断地追求卓越,关键不在于本身存在多少问题。而在于是否有识别、分析和解决问题的能力,这就意味着企业必须随时寻找自身的弱点和弱项,采取措施、持续改进。一个企业无论存在什么问题,只要持续地实施改进,企业与过去相比就会更强。一个优秀的企业不会放过任何一个能促使企业进步的改进需求和机会,因为失去一次持续改进的机会,就会失去一次提高和完善企业管理的机会。
2.改变观念,充分发挥领导作用
世界著名的质量管理学家费根堡姆博士指出:“公司领导是质量成功的关键”。有力的质量管理的领导对质量管理体系的持续改进是十分重要的,当今的竞争趋势已经不是单靠个人在质量上的努力所能决定的,而是要有一种环境,在公司内建立一种框架,使每个员工都积极投入质量改进活动中去。因而,公司的质量领导的作用倍加重要。领导不但要积极参与质量体系建设,规定各部门、各级各类人员的职责,制定质量方针和目标,为体系的运行提供所需的人力、物力资源。领导者的模范带头作用,设定具有挑战性的目标,鼓舞、激励和承认员工的贡献,教育、培训并指导员工,在工作方式上做到透明、务实、以身作则,为企业持续改进创造一个宽松、和谐、有序的工作环境。
3.重视体系文件的适宜性
质量管理体系经过一段时间的运行,由于内部管理的变化或外部环境的变化,使最初编制的一些支持性的管理文件的某些要求已不适宜,特别是加强第三层次的作业文件的建立和完善。随着社会经济技术的不断发展,企业也在不断发展,无论是从引进新设备、人才、及新方法的探索,则企业的三层次文件也要与时俱进,根据实际,广泛征求意见,逐步修改完善质量管理体系文件,优化每项质量活动的流程,不符合实际的操作逐一取消,使其在符合标准的前提下更具有可操作性,更利于质量控制,不仅保证了文件的适宜性和充分性,也能够提高全员自我改进、自我完善的意识。
4.创新培训方法,提高员工质量意识
首先是从实际出发,科学编制培训内容,采用多种新颖别致的培训方式,结合听、查、看、问,互动的方式引起员工的学习兴趣,利用图解、分析与讨论的方式,与学员实现沟通交流,加深了理解,实施培训有考核,真正达到培训目的,提高培训质量。其次是培训要有针对性,要注重培训效果和培训质量,做到有的放矢,区分不同层次定好培训计划和培训讲义,管理层培训些什么,操作层培训什么。应有一定的区别和针对性,才能提高培训质量。
5.提高内审员队伍的内审水平
众所周知。一批高素质的内审员队伍是企业的宝贵财富。随着时代的发展、标准的进步、企业自身管理水平的不断提高,
最初被认为是合格的内审员如果不追求自身素质的持续提高,那么,他就很难满足时代发展和企业持续改进的要求。在内审过程中,内审员不仅仅是执行检察任务,不只是能找出问题的所在,更主要的是要如何指导这个问题的解决办法,教会遇到问题应该怎么做等。因此,依靠外界培训、自主学习、积极参与实践交流等途径来持续提高内审员的素质是成功内审的坚实基础。
6.提升质量管理体系运行中的执行力
执行力是一种能力,其内涵广泛,包罗各种学科、方法、思想的概括,执行力的关键在于透过企业文化影响企业所有员工的行为。在≤一分钟提高执行力≥书中写到:没有执行力,就没有企业成长;构建执行力,从成功决策开始;导向执行力,制定合理的企业流程;贯彻执行力,要从领导者做起;推动执行力,发挥“激励”的效果;提升执行力,要拿起沟通的武器;促进执行力,倡导团队力量。企业在质量管理体系中就应该做到推动持续改进的执行力度,针对审核发现的问题,要彻底整改,加大纠正、预防措施的监督力度,检查整改后的持续性和有效性,杜绝问题的重复发生及纠正、预防措施的整改不到位。
7.坚持开展群众性QC小组活动
在推行质量管理体系中,形成发现问题、分析问题、改进问题的有效机制,进一步推进质量管理QC小组活动,促进全员、全过程、全企业的参与,倡导QC小组活动与技术创新、管理创新相结合。应用统计方法分析问题、发现问题和解决问题。云锡股份冶炼分公司2005年,针对63焊锡的一次浇铸合格率低度问题开展QC活动,通过生产过程中搅渣温度不够,搅渣时间不足等主要原因,制定了详细的对策措施,
并认真按计划实施,提高了63焊锡的一次浇铸合格率;2006年锡锭产品的外包装原来是用10#铁丝进行捆扎,捆扎劳动强度大,成本高,运输途中若被雨水淋湿导致生锈,影响产品的外观质量,因此,冶炼分公司“三人行QC小组”,针对锡锭包装从材料的选取和捆扎方式上进行改进,摸索,对塑钢带进行了粘接强度试验,采用全塑钢带打捆,并在捆扎方法上进行了一系列的改进,改善了产品包装、外观质量,提高了用户满意度。2008年锡锭浇铸从人工手动浇铸改为机械自动浇铸;工艺上新建了氧气站、煤气站。2009年澳斯麦特炉、烟化炉、沸腾炉运行了富氧熔炼焙烧;氧化锅、合锡锅、离心锅由原来烧煤升温改为煤气燃烧等新技术应用,大大提高了产品产量。在环保方面,也实现了节能减排。因此,坚持开展QC小组活动是企业持续改进的保障。
综上所述,持续改进是质量管理的精髓,是为了向本企业及其顾客提供增值效益、在整个企业范围内所采取的提高活动过程的效果和效率的措施,改进是一个持续的、永无止境的过程,戴明博士提出了PDCA循环的改进模式,朱兰博士将改进过程定义为螺旋式上升的过程,只有通过持续改进才能实现质量管理体系的运行持续有效。
转载请注明出处51数据库 » 简述软件过程管理和改进在提高软件质量中的 如何加强软件需求管理提高软件质量