1 软件全面质量管理的提出
1.1 软件全面质量管理的定义
全面质量管理(TQM)由于适应科技、经济、社会的发展趋势,得到了迅速发展,在实践运用中取得了丰硕成果。TQM强调系统、集成、统一和全员、全面、全过程的观点。其核心思想是,企业的一切活动都围绕着质量来进行,同时强调最佳经济和客户满意的约束条件。
①结合信息系统产品开发的特点,本文给出如下关于软件全面质量管理的概念。
软件全面质量管理是在使企业利润最大化的水平上,并充分满足用户明确或隐含要求的条件下,进行软件的规划、分析、设计、实施和维护活动,把研发团队的质量控制和质量设计活动构成为一体的一种有效管理体系。
1.2 软件全面质量管理的目标
软件全面质量管理主要有三个目标,一个终极目标(扩大市场占有率)和两个辅助目标(提高客户满意度、降低软件开发成本)。无论企业采取什么样的竞争战略,其根本的目的就是为了扩大市场占有率,从而获得企业的超额利润。同样,软件公司也是如此。就软件企业的软件质量管理而言,根据本文提出的软件全面质量管理理念,可以从提高客户满意度、忠诚度和降低软件开发成本两个维度来达成企业的终极目标。
两个辅助目标的实现应贯穿于软件质量管理的全过程。
2 软件全面质量管理的“三部曲”
2.1 事前质量管理
事前质量管理是指对系统规划和分析阶段的质量管理,此阶段的质量管理有两方面的问题应该引起注意。一是要透彻理解用户需求。用户需求既包含明确需求和隐含需求,隐含需求需要需求分析人员努力挖掘。透彻理解用户需求的关键是清晰明了的沟通。只有在有效沟通的前提下,才能开发出让客户满意的高品质的信息系统产品。二是要确定软件的关键质量属性,并明确度量质量属性的方法。关键质量属性的确定需要用户、需求分析人员、技术人员等多方的有效沟通。
在决定了哪些属性对于客户和管理层是重要的之后,接下来,需要定义这些属性的度量方式。
2.2 事中质量管理
事中质量管理是指对系统设计和系统实施阶段的质量管理。设计、开发过程中有效的质量管理,可以引人注目地降低信息系统开发中期的成本以及后期的维护成本。产品质量是开发过程质量的直接结果。开发过程中的缺陷与客户报告的缺陷之间的直接关系具有高度的正相关性,因而软件维护成本是受开发过程的质量直接控制的。事中质量管理要求树立这样的观念:在设计、开发过程中有效地防止工作成果产生缺陷,将高质量内建于设计、开发过程之中。此阶段的质量管理过程中,可以通过两条途径来提高信息系统的质量:一是软件过程改进。其主要措施是不断提高技术水平和不断提高规范化水平。二是工作成果刚刚产生马上进行质量检验。其主要措施是进行技术评审、软件测试和过程检查。
2.3 事后质量管理
事后质量管理是指对系统运行与维护阶段的质量管理。此阶段质量管理的重点是对信息系统产品的质量检查、验收及评定。交付使用的管理信息系统需要在使用中不断完善,不断提高产品质量和服务质量。
事后质量管理是一项高成本的管理活动。据统计,在系统整个生命周期中,2/3 以上的经费用在维护上。②事后质量管理的重要手段是质量验收。系统质量验收需要根据质量计划中的范围划分指标要求和合同中的质量条款,遵循相关的质量检验评定标准,对系统的质量进行质量认可评定和办理验收手续。
3 高效开发团队与软件全面质量管理
实证研究已经表明,高效的团队与高质量产品是有正相关关系的。③人是一个团队的核心,一切的工作都是需要由人来完成的,所以要想在软件质量上有新的突破,就必须对软件开发团队中的人进行管理和建设。本文希望在阐述了软件全面质量管理思想的基础上,谈谈基于软件软件全面质量管理的团队建设,尤其是对其中人的开发和管理。
第一,积极创造良好的学习环境。企业高层及项目经理可以从两个方面来创造良好的学习环境。一是建立鼓励员工学习的机制,二是建立保证员工学习的系统。我们应该记住:所有的培训和学习都能创造价值。
第二,积极开展质量教育工作。软件全面质量管理强调用人的质量保证工作质量,用工作质量来保证软件质量。可见,人的素质是有效进行软件质量管理的根本保证。通过质量教育,增强软件项目参与者的质量意识,提高其思想觉悟和文化、科学、技术水平,才有可能高效、优质地完成项目。
第三,明确团队成员的责任。团队中必须形成两种责任:个人责任和团队责任。团队必须为实现它的目标负责,而每一个成员也必须为他所担当的工作负责。团队必须成功,所有的团队成员也必须为团队的成功做出具体的贡献,并且做彼此相当的真实工作。只有在团队成员清楚地明白各自责任的前提下,才能使软件开发顺利进行,做到有责可依,违责必究,为提高软件质量提供保证。
第四,积极做好团队标准化工作。制定一套有效的软件开发团队标准化准则,能够有效地提高软件质量。软件全面质量管理是全过程的管理。这个质量的形成过程,就是标准的制定、实施、验证、修订的过程。只有认真制定和贯彻管理标准和质量标准,才能有效地保证软件质量标准的执行,从而推动软件质量管理的开展和最终提供优质的软件产品。
第五,积极完善团队绩效管理。如果没有完善的团队绩效管理制度,团队成员将没有足够的动力在系统开发过程中不断创新和变革,努力解决系统中存在的质量问题。在某些情况下,团队成员还可能出现怠工现象,故意制造问题,拖延系统开发周期,使团队不能按计划完成任务,又进一步增加了企业的开发成本。