电子信息技术的迅猛发展大大推动了全球经济的增长。与此同时,计算机软件在电子信息技术中的地位日益重要,软件产业作为一个朝阳产业对各国经济的贡献越来越大。在美国,软件产业成为继汽车、电子工业后的第三大支柱产业。90年代后期,美国软件产业以每年12.5%的速度递增着。1998至1999年度,印度的软件销售额已达到40亿美元。我国在1999年的软件销售额也上升到176亿元人民币。此外,软件技术对一个国家的安全和社会稳定也是至关重要的。在信息时代的今天,存储在庞大计算机系统中的天文数字般的信息一旦受到“病毒”感染或“黑客”攻击,就有可能造成难以估量的损失。为此,各国都在积极制定有利于软件产业发展的政策和措施,从宏观上为软件企业的发展营造良好的社会环境。但另一方面,软件企业发展的真正动力应该来自企业内部,软件企业只有加强质量管理,积极创新,才有可能在激烈的竞争中立于不败之地。ISO标准和过程改进技术对加强软件企业的质量管理工作可以起到显著的推动作用。
ISO标准与软件企业的质量管理体系
自从1987年公布ISO 9000族标准以来,ISO 9000族标准已经成为全球最有影响的质量管理和质量保证标准。ISO 9000族标准的制订和实施反映了市场经济条件下供需双方在进行交易活动中的要求。供方只要按ISO
9000族标准组织产品的开发和生产,并通过权威机构的认证,在产品质量方面就会赢得顾客的充分信任。另一方面,顾客在市场上选购产品时,更愿意选择通过质量认证的企业所生产的产品,从而减少一部分多余的或力不从心的繁琐的质量检验活动。
ISO 9000族标准建立在“所有工作都是通过过程来完成的”这样一个认识基础之上。每一个过程都由诸如原材料、设备、组织和人员等作为输入,输出的是过程的结果,如半成品、成品和计算机软件产品等。质量管理是通过对组织内各种过程进行管理来实现的。一个组织的各种职能和各层次管理的一贯目标应该致力于不断地进行质量改进,以满足顾客和社会的需要。
在ISO 9000族标准中,与软件企业关系最密切的是《ISO 9001 质量体系-设计、开发、生产、安装和服务的质量保证模式》和《ISO
9000-3 质量管理和质量保证标准第三部分:ISO 9001在计算机软件开发、供应、安装和维护中的指南》。
ISO 9001标准从20个方面全面定义了质量体系要素,规定了质量体系的要求,如果产品开发、生产者或供应方达到了这些要求,就表明具备了质量保障能力。
尽管ISO 9001标准全面明确地定义了质量管理工作的各个方面,包括了软件开发活动的全过程,但是ISO 9001主要是针对制造业制订的,没能详尽地描述软件企业的质量管理工作。因此,ISO专门制订了ISO
9000-3作为ISO 9001标准的实施指南。
ISO 9000-3作为软件企业实施ISO 9001的指南,对其中的20个质量要素作了进一步的解释与说明。其主要思想是:软件的开发和维护有着一系列的任务。这些任务的顺利完成需要各级管理层和开发人员的共同配合和一致协调。其中高级管理层应该根据其在过去工作中积累的经验来制订总体策略,下一层的管理者负责制订用来实现总体策略的实施计划,并管理他们所制订计划的执行。开发人员在计划时间内、以尽可能低的费用开发出满足功能要求的软件的前提是准确地理解用户需求。
需要指出的是,ISO 9000-3对软件企业的软件开发和维护活动起到的是指导性的作用,不带有强制性,而具有建议性。一个软件企业在贯彻和执行ISO
9000-3的过程中,应该根据企业自身的基础和现状,有针对性地开展软件质量管理和质量保障活动。软件企业影响软件质量的全部因素在软件生命周期内始终处于被监控的状态,实现持续不断的质量改进。
此外,ISO/IEC于1995年制订了《信息技术-软件生存周期过程》(ISO/IEC 12207:1995),全面系统地描述了软件生存周期过程,是ISO
9000-3实施指南的进一步扩展。
软件过程技术及其发展
随着软件工程的深入发展,人们逐渐认识到:提高软件生产率和软件质量的瓶颈在于软件开发和维护过程中的支持和管理问题,意识到关键的是“软件过程”
从1984年开始在计算机界掀起了“软件过程运动”,针对软件过程进行了一系列的研究和讨论,进而诞生了软件过程技术。
过程就是软件生存周期所涉及的一系列相关过程。过程就是活动的集合,活动又是任务的集合,任务是把输入转换为输出的操作。
软件过程技术的基本思想是:软件开发和维护过程的质量对软件产品的质量和软件生产率影响很大。软件过程技术的目标就是通过工程化、标准化和形式化的方法管理软件的开发过程,从而改变目前基于手工的软件生产方式,实现大规模的软件生产。
目前,软件过程技术的研究大致可分为以下三个方面:①软件过程建模语言。提出各种适合于定义和描述软件过程的方法和手段。②软件过程支持。研究在以过程为核心的软件工程环境的设计和实现中所涉及的各种技术问题,如体系结构、实施机制、工具集成、过程可视化、一致性维护、并发控制和事务管理等。③软件过程改进。研究如何对软件开发机构现有的软件过程进行评估和改进。
由美国卡内基?梅隆大学软件工程研究所(SEI)开发的软件过程持续改进模型-能力成熟度模型CMM(Capability Maturity
Model)是软件过程改进技术的代表。
CMM描述了一个有效的软件过程中的关键要素,讨论了不成熟的软件机构发展成为有规律的、成熟的软件机构的改进过程。CMM涉及对软件开发和维护活动进行规划、软件过程工程化和对软件过程进行管理的实践活动。通过这些实践活动,能够提高软件机构满足成本、进度、功能和质量要求的能力。
所有软件都是经过一些过程而产生出来的。但这些过程往往是混乱和不一致的,从而导致缺乏可预见性和可重复性,缺乏改进的基础。为此,在软件开发期间需要连贯的、明确的过程,从而使这些过程能够被连续地执行,并被监督和演化。
CMM对于想要控制软件开发和维护过程,以及希望在机构内部形成良好的开发次序和环境的组织,是有很大帮助的。
改进软件过程期望达到下面几个目标:
1.提高软件项目的效率。有效地运用项目所拥有的各种资源,包括人员和时间,以达到提高生产率的目的。
2.提高软件项目的可预见性。根据以往的项目经验和数据,尽可能准确地估计开发软件所需的成本和时间,并使这些估计更具鲁棒性,即项目环境和目标的微小变动不会使这些估计无效。
3.提高软件产品的质量,以更高的准确度和可靠性达到预期的目标。
有关专家通过观察发现:遵循系统的和可重复的演化过程的软件企业,与过程是专设的、混乱的软件企业相比,可以保证类似以往成功项目的可重复性,具有更高的软件生产率,开发出来的软件也具有更高的质量。
国外软件企业管理经验介绍
几十年来,美国一直保持着软件霸主的地位。从80年代中期开始,一些大的计算机厂商开始认识到必须改进开发软件产品的过程以提高软件产品的质量和及时交付使用的能力,并组织专门力量进行了这方面的研究工作。IBM的Santa
Teresa实验室依据Malcolm Baldrige国家质量奖标准和ISO 9000系列标准对软件开发工作涉及的各个方面进行了评价和改进,把软件质量成熟性水平分成意识、应付、管理和综合4个阶段,形成了一套包括领导、技术和过程方法三足鼎立的质量管理策略。微软的哲理是追求高度的灵活性,其目标是既要达到自由,又要有严格性。在组织产品开发时,有许多并行的小组(每组3至8人),这些并行小组自由地开发产品的功能特性。在扩大产品的同时引入新技术、新概念。强调各小组的工作要同步稳定地进行。
TickIT是由英国贸工部(DTI)发起的、旨在推动IT产业通过ISO 9000质量认证的一项活动。TickIT活动迎合了英国IT产业的需要,并对全球的IT产业产生了深远的影响。通过ISO
9000质量认证的企业在管理方面往往有了很大的改善,提高了生产效率和产品质量,而且在市场竞争中常常占有优势。顾客也更愿意选择通过ISO
9000认证的软件企业作为合作伙伴。
近十几年来,印度的软件业也保持着高速发展的势头。按照世界银行对软件出口国能力的调查评估认为,印度软件出口的规模、质量和成本的综合指数居世界第一位。
印度的软件产业之所以能够在国际市场上占有一席之地,不仅在于它的价格低廉和一定的语言优势,更重要的是印度的软件机构以ISO 9000和SEI
CMM为基础,建立了自己的软件项目管理和质量保障体系,并融入所有软件的开发和维护过程之中,不断地改进和完善软件过程。这就大大增强了其软件产品按时按质交货的能力及在国际市场上的竞争力。目前,印度有近百家软件公司通过了ISO
9000或CMM二级质量认证,以至于比尔?盖茨惊呼:“除美国外,下一个软件大国既不是欧洲国家,也不在日本,而在印度。”
由此可见,对软件开发活动进行规范化管理和采用软件过程改进技术,是软件企业尤其是不成熟的软件企业加强质量管理的有效途径。
我国软件企业的管理现状及其分析
据统计,目前国内从事软件开发的企业有数千家,除100多家外资合资企业外,绝大多数企业的规模在50人左右,少数达200人,规模达到1000人企业的只有两三家。无论是从产业规模、企业实力、技术水平,还是从创新能力、市场竞争力和产品的市场占有率来看,都还远远落后于国外同行,我国的相当一部分软件企业处于不成熟阶段,质量管理制度和队伍不健全,质量管理工作滞后,主要表现在以下几个方面:
1.软件过程一般在项目进行中由参与软件开发的人员临时确定。有时即使确定了,可实际上在开发过程中并不严格执行。
2.软件机构是反应型的,缺乏风险分析经验,对软件开发过程中可能遇到的困难准备不足,管理人员往往花费大量的精力去应付突发事件。
3.软件项目的进度和经费预算由于估计得不切实际,所以被常常突破。在交付时间急迫的情况下,往往不得不削减软件的功能,降低软件的质量。
4.软件的质量难以预测。质量保证活动,如质量评审、测试等,常被削弱或被取消。
经过分析发现,造成这种局面的原因主要有以下几点:
1.企业质量意识淡薄,重技术轻管理的思想根深蒂固。企业负责人和技术骨干往往只重视技术,认为只要工具使用得熟练,精通程序设计语言,就能开发出顾客满意的软件。
2.企业战略目标有偏差。企业上层领导对质量、功能、进度和成本之间的相互制约关系缺乏正确的认识,企业往往将经济效益放在突出的地位,当经济效益与软件产品质量发生冲突时,往往是牺牲质量。
3.企业规模制约着质量管理活动的开展。由于规模小,加之质量意识淡薄和战略目标有偏差,企业难以或不愿组织专门力量开展质量管理活动,造成质量管理队伍不健全。许多企业只有测试人员,而无专门的质量保障机构,也没有负责质量管理的部门。
4.员工知识结构单一。在软件企业中,往往是软件开发技术人员缺乏质量管理常识,而质量管理人员对软件开发技术又不熟悉,进而造成软件开发技术人员和质量管理人员之间难以沟通,阻碍了开发工作的顺利进行。
5.软件开发队伍不稳定。企业常常是在签定项目合同之后再在人才市场上招募技术人员组织开发队伍,然而临时招聘来的技术人员往往既对项目环境缺乏了解又难以安心工作,甚至在项目进行过程中途就离开开发队伍,无法保证软件质量。
加强我国软件企业质量管理的途径
我们认为,目前我国软件企业遇到的最大困难既不来自国家有关的产业政策,也不来自市场的竞争,而是来自企业内部管理的不完善和不协调,有相当一部分软件企业的质量管理环节薄弱。因此,软件企业的当务之急应该是苦练内功,通过加强质量管理工作、吸取国外先进管理技术和经验来规范企业内部行为,通过提高软件产品质量来增强市场竞争力。具体途径有:
1.在有条件、员工在100人以上、管理问题较突出的软件企业开展ISO 9000质量体系的建立与实施工作。软件企业在实施ISO
9000标准、建立质量体系时,不能机械地照抄,认真研究和分析软件开发过程的规律和特点,找出现有质量体系需要完善和加强的环节;以ISO
9000标准作为尺度加以衡量,进而找到完善和加强质量管理工作的途径;建立有企业特色的、适用性和有效性强的质量体系。
2.借鉴CMM思想,结合企业实际情况,开展过程改进活动。对照CMM的五个成熟等级,我国绝大多数的软件企业处于2级以下,应主要针对项目计划、需求管理、配置管理、质量保证和项目跟踪及监督5个关键过程领域加强质量管理工作。
3.企业领导在质量管理工作中应发挥积极的引导作用。朱兰8020原则强调,产品质量问题有80%出于管理层,而只有20%的问题起源于员工。日本质量管理专家石川馨认为,QC小组的作用充其量只能解决10%的品质问题,而90%的问题需要由管理层来解决。质量管理工作是自上而下的,尤其在我国软件企业质量管理工作的基础比较薄弱,这样,企业领导就成为其中最关键的因素。需要特别指出的是,企业最高领导对质量管理工作的推动作用是下级各级负责人不可比拟的,也是下级负责人不可代替的。
4.在质量管理活动中,正确理解人的因素的重要性。质量管理的实践充分证明,提高产品质量的根本途径在于不断提高企业全体员工的素质,充分调动和发挥人的积极性和创造性。石川馨认为:“质量管理始于教育,终于教育”。组织培训是提高员工质量意识和素质的重要手段。在软件企业内部,要营造鼓励员工积极参与质量管理活动的氛围,尤其要为软件开发人员创造机会和条件,使他们的一部分工作用在改进软件过程的工作上。最后一定要保持开发队伍的稳定,以保证软件项目开发活动的可持续性。
结束语
在经济全球化的今天,要高质量、高效率地开发出复杂的大型软件系统,已不再是个体或小分队的软件企业所能完成的任务,工程化、工业化和标准化生产已经成为国际软件业通行的趋势。另一方面,面对市场竞争日益激烈的新形势,机遇和挑战同在,希望与困难并存。以质量求效益、求发展,是中国软件企业生存与发展的必由之路。古语云:“不谋全局不足谋一域,不谋万世不足谋一时”。广州誉杰咨询衷心希望,中国的软件企业能牢固树立“质量第一”的长远观点,将加强质量管理作为当前工作的重中之重,并结合企业的实际情况,建立自己的质量管理体系,这样才能保证企业的可持续发展。
|