5月18、19日两天,我受公司委派参加安徽省信息中心举办的软件质量管理与认证培训班,感觉一般但收获很大。这次培训让我明确了许多概念,澄清了许多误区,对比公司软件部门开发的现状又有新的感受。我把这些写出来,权当作本次学习的总结。
2 软件质量管理
2-1 软件质量之含义:
软件质量是软件产品对一组固有特性满足要求的程度。这个要求是明示的、通常隐含的必须履行的需求和期望。由此而来,软件需求是衡量软件质量的基础,软件开发的质量保证活动必须是以需求为中心,强调在开发过程中强行遵守标准规范以达到控制质量的目的。 软件中通常有一些不作明文规定的隐含需求,要尽量以文件的形式规定下来,这也是质量管理八大原则的以顾客为关注焦点的原则(下面会详述)。
2-2 质量管理八项原则
1:以顾客为关注焦点
2:领导作用
3:全员参与
4:过程方法
5:持续改进
6:管理的系统方法
7:基于事实的决策方法
8:与供方互利的关系
各个原则的详细叙述在讲议的第五页,这里不在浪费打印纸。首要原则是以顾客为关注焦点,要求充分了解客户当前和未来的需求,满足并争取超越客户的期望。强调需求是质量保证的基础,也就是说搞清楚客户要我们干什么。
2和3是要求最高领导必须重视质量管理,要发动所有员工学习和参与质量管理,这两条强调质量管理中人对质量活动是最重要的,要充分调动员工的热情,要求他们对质量活动的强制性给予理解和支持,并充分授权。
4到7是对人和其他资源的管理和决策。对人的管理,它基本要求分工明确,职责分明,目标清晰,充分沟通,自我评估和不断更新改进,更重要的是它强调法制化管理。
8是对于合作伙伴和分包方来说的。
2-3 质量管理体系
质量管理体系就是把八项原则具体化,文件化。也就是说你按照质量管理体系的要求建立了你的管理架构并有效运行,那么你的企业质量活动就在自觉的贯彻落实质量管理八项原则,产品质量就有一定程度的保证。目前软件行业流行的是ISO9001和美国SEI CMM质量管理体系标准,还有TL9000,TickIT,我国的国家标准是等同采用ISO标准。
各种质量管理体系都强调在过程方法上满足PDCA模式,强调建立质量方针和目标,强调最高管理者在体系中的价值,并强调所有活动都建立在文件(文档)之上。
2-4 质量管理体系认证
通过权威第三方证明你的质量体系是符合标准的。它的产生是由于以前各个国家的国家标准质量体系要求不一样,因此要求出口方的质量体系必须符合本国国标才能对其产品质量给予认可,由此造成贸易壁垒,国际标准化组织也因此诞生,它授权给参加多边认可协议的国家,让该国根据ISO标准自行认证本国企业的质量体系,其它参加方必须认可该国的认证。由此消除因标准问题引起的贸易壁垒。
到了90年代,美国国防部为了评估分包方开发软件和质量控制的能力,委托卡耐基梅隆大学软件工程研究所(SEI)提出一套评估方案。1991年SEI推出能力成熟度模型(CMM)1.0版,该版本有5个类别,关于软件的SW-CMM也就成了美国国防部对软件分包方评估的标准,后来美国软件企业发现它对推动软件质量活动很有帮助,便纷纷参与CMM认证。CMM虽然不是国际标准,但越来越受到业界的关注,中国只有一家通过CMM 5级认证,是摩托罗拉软件中心。CMM标准到2003年作废,取而代之CMMI。
由于ISO通用性太高而针对性较低,一些国家又在制定针对软件设计的标准(如美国的CMM),ISO于90年代开始制定针对软件开发的标准SPICE,它和CMMI很类似,预计今年发布正式版本。
2-5 产品认证
这里澄清一个误区,质量管理体系认证不是产品认证。产品认证是国家对特殊产品的要求,如杀毒软件,防火墙要通过公安部认证等。质量管理体系认证是对企业质量管理架构在质量保证活动中的对质量保证能力的评价,非强制性的。