软件项目管理中质量控制模型

发表于:2009-08-13来源:作者:点击数: 标签:项目管理模型质量控制软件
软件 项目管理 中质量控制模型 软件 测试 近年来中国的软件业蓬勃发展,颇有星星之火可以燎原之势。然而在众多企业不断引进新技术的同时,软件业的管理理念却相对滞后,类似手工作坊模式的生产模式依旧,“软件工厂”成了可望而不可及的目标。针对于此,企业

   软件项目管理中质量控制模型   软件测试

        近年来中国的软件业蓬勃发展,颇有星星之火可以燎原之势。然而在众多企业不断引进新技术的同时,软件业的管理理念却相对滞后,类似手工作坊模式的生产模式依旧,“软件工厂”成了可望而不可及的目标。针对于此,企业对高级软件项目经理人求贤若渴,试图改进其内部落后的管理模式。在一些成功的软件项目调查中显示,有效的软件质量管理在项目中起了至关重要的作用,甚至对企业管理、企业文化也产生了深远的影响。

  一、质量概念中的两大要素

  著名美国质量管理专家Philip B.Crosby于1961年提出了“零缺陷”的概念,并被称之“质量革命”。1979年他出版了《Quality is e》一书,阐述了他的新的质量管理思想,并认为“质量就是符合需求”。经过近几十年软件开发思想的积累,关于质量的概念不断深入,Crosby的质量定义用更为精确与更具实际操作性的方式表示就是:质量是相对于某个(某些)人而言的价值。此定义明确提出了质量的相对性,也明确了质量不能脱离人而抽象存在的性质。这些进步对于我们正视软件开发中实际发生的质量问题是非常重要的。

  质量的相对性可以解释为一个用户认为某个软件产品质量完全过关,而另一个用户则可能认为质量并不完全过关。有关质量的定义会带有人的情感的因素,因为它是通过一系列人的决策,才能确定到底需要听取哪些人的意见以及这些意见中哪些是相对重要的。然而大多数人却并没有察觉到质量中的非理性因素,同时软件开发者也希望对于质量管理是可以绝对理性的,这也是质量管理往往流于形式而无实际效果的原因。在质量管理中运用理性进行判断与决策正是本文所要讨论的目的。

  在质量概念中还有一个要素是值得注意的,那就是质量的经济性。根据Crosby的质量定义,“符合需求”的代价是指第一次把事情做对所花费的成本,总是最经济的。而“不符合要求”的代价是必须进行补救使企业产生额外的支出,包括时间、金钱和精力,由此产生了质量损失,成本相应增加。

  因此,质量经济学被软件开发管理者提了出来。

  于是时间、成本与质量在项目管理中常常相提并论。那么如何在时间、成本、质量这三个方面找到均可以满意的模式,并恪守这种模式,持续地进行管理工作呢?这也就是质量管理的最终目标。

  二、软件质量管理和软件过程能力成熟度模型

  软件质量管理是管理者在对软件质量进行一系列度量之后做出的各种决策,促使软件产品在时间、成本内符合标准。软件质量度量是软件度量的一个子集合,其在于产品、过程和项目的质量。

  Crosby根据产品的质量,对大多数组织生产过程进行研究,第一次提出了成熟度进程阶段的思想。Radice等人将Crosby关于质量规划的层次阶段划分方法进行了推广,运用到软件项目开发中,针对软件组织的开发过程,建立了一个成熟度模型,包括过程成熟度(CMM)的五个层次。虽然此模型是针对软件过程的,但实际上却应用于软件产业的质量过程和质量管理标准。

  (1)初始层次。该层次特征:无序的;成本费用、进度及质量均不可度量、无质量管理。

  (2)可重复验证的层次。该层次特征:机械性有序的;对成本费用、进度及质量开始进行控制、非正式的质量管理。

  (3)经过定义的层次。该层次特征:可定性的;对成本费用、进度及质量进行有意识的控制、非正式的质量管理朝正式的质量管理进化。

  (4)得到管理的层次。该层次特征:可定量的;对成本费喟、进度、质量有了合理的统计控制;正式而有效的质量管理。

  (5)经过优化的层次。该层次特征:可稳定、持续发展的;对于软件生产自动化和持续改进奠定了良好的基础;成熟的质量管理。

  每一个成熟度等级都为过程继续改进提供了一个基石。每一个等级包含一组过程目标,当目标得到满足时,能使软件过程的一些重要组成部分相对稳定下来。每达到成熟度框架的一个等级,就建立起了软件过程的一个不同的组成部分,以保证软件组织的过程能力的持续增长。虽然这五个层次是由前向后依次进化的,但也不等于说处于第一层次的软件组织一无是处,而达到最高层次的则可以高枕无忧。真正的意义在于我们如何在实际的软件项目管理中认识自己所处的形式,通过建立质量管理模型,向上一个层次的模式进行转化,而即使是已达到第四或第五层次的组织,也应不时地建立管理模型以预测之后可能会遇到的问题。因为CMM五层阶梯进化并非只是单向的,逆向也是经常发生的,所以建立与控制当前形式下的模型是各个软件组织向高一层次进化或是保持优势的方法之一。

原文转自:http://www.ltesting.net