什么是软件质量管理的底层逻辑?
当一个机会来临的时候,我们常常研究如何用一套策略比别人更快的抓住机会,如何比别人跑得快去抢占市场。
但是,最终我们还是要靠产品的品质取胜。我还是乐意再用一次雷军的一张slide,从而进一步说明有必要讨论:什么是质量管理的底层逻辑。
说起质量,大家似乎都比较熟悉,但要让你说清楚质量,你不一定能说清楚质量,因为不是简单的好与坏。
随着社会生产力的进步和人们认识水平的不断深化,人们对质量概念的认识也在不断地更新和发展。可以简单地介绍一下质量认知的演化:质量1.0——符合性质量的概念:在上个世纪,传统的质量概念基本是指产品性能是否符合技术规范,也就是将产品的质量特性与技术规范相比较,以“符合”现行标准的程度作为衡量依据,“符合”的程度反映了产品质量的一致性。如果质量特性处于规范值的容差范围内,即为合格产品或质量高的产品;超出容差范围,即为不合格产品或次品,这就是所谓的“门柱法”(Goalpost),亦即符合性质量控制。
质量2.0——适用性质量的概念:但对于高科技和大型复杂的产品,符合性质量控制已不能满足质量管理的要求,于是世界著名的美国质量管理大师朱兰(Joseph M. Juran)提出了产品的质量就是适用性(Fitness for Use)的观点。所谓适用性就是产品在使用过程中满足客户要求的程度。让客户满意,不仅满足标准、规范的要求,而且满足客户的其他要求,包括隐含要求。而且,质量从“符合性”发展到“适用性”,使人们对质量认识逐渐把客户的需求放在首位。
质量3.0——广义质量的概念:朱兰博士对质量的定义逐渐演变为国际标准化的定义。国际标准化组织总结质量的不同概念加以归纳提炼,并逐渐形成人们公认的名词术语,既反映了要符合标准的要求,也反映了要满足客户的需要,综合了符合性和适用性的含义。ISO9000系列国际标准((2000版)中关于质量的定义:质量是一组固有特性满足要求(明示的、通常隐含的或必须履行的需求或期望)的程度。ISO 9000系列标准强调质量:
以客户为关注焦点,以增强客户满意为目的,确保客户的要求得到确定并予以满足;
提供满足客户和适用的法律法规要求的产品;
理解并满足现有及潜在客户和最终使用者的当前和未来的需求和期望,以及理解和考虑其他相关方的当前和未来的需求和期望;
持续改进。
价值就是低廉的价格。一些客户将价值等同于低廉的价格,表明在其价值感受中所要付出的货币是最重要的。
价值就是客户想从产品中所获取的东西。与关注付出的金钱不同,一些客户将把从服务或产品中所得到的利益看作最重要的价值因素。这实际上和经济学中对效用的定义是一样的,是对从消费产品中所获得满意程度的主观衡量。
价值就是客户付钱买回的质量。有的客户将价值概念理解为“付出的金钱”与获得的“质量”之间的权衡。
价值就是客户的全部付出所能得到的全部。一些客户描述价值时考虑的既有其付出的因素(时间、金钱、努力),还有其得到的利益。
如果想进一步了解什么是质量,可以看看这些文章:
— 2 —
什么是“质量管理”?
理解了什么是质量,下面就需要了解什么是“质量管理”。在讲什么是质量管理前,先讲一个耳熟能详的故事:
春秋战国时期,有位神医被尊为“医祖”,他就是“扁鹊”。一次,魏文王问扁鹊说:“你们家兄弟三人,都精于医术,到底哪一位最好呢?”扁鹊答:“长兄最好,二哥次之,我最差。”文王又问:“那么为什么你最出名呢?”扁鹊答:“长兄治病,是治病于病情发作之前,由于一般人不知道他事先能铲除病因,所以他的名气无法传出去;二哥治病,是治病于病情初起时,一般人以为他只能治轻微的小病,所以他的名气只及本乡里;而我是治病于病情严重之时,一般人都看到我在经脉上穿针管放血,在皮肤上敷药等大手术,所以以为我的医术高明,名气因此响遍全国。”
要理解质量管理,我们需要和质量控制、质量保证一起来讨论,因为质量控制、质量保证是质量管理的基础,人们开始关注软件质量管理时,首先想到质量检查、质量控制,然后逐步意识到预防问题比事后发现问题更重要,从而形成质量管理的三个层次:
质量控制 ( Quality Control,QC) 是科学地测量过程状态的基本的方法。就象汽车表盘上的仪器,可以了解行驶中的转速、速度、油量等。 质量保证 (Quality Assurance,QA) 则是过程和程序的参考与指南的集合。ISO 9000是其中的一种,就像汽车中的用户手册。 质量管理 (Quality Management,QM) 才是操作的哲学,教你如何驾车,建立质量文化和管理思想。
为了更容易理解质量工作层次时,可以从另一个方面简单地阐述质量管理的四个层次为:
检查,通过检验保证产品的质量,符合规格的产品为合格品,不符合规格的产品为次品,次品不能出售。这个层次的特点是独立的质量工作,质量是质量部门的事,是检验员的事。检验产品只是判断产品质量,不检验工艺流程、设计、服务等,不能提高产品质量。这个层次是初期阶段,相当于“软件测试——早期的软件质量控制”; 保证,质量目标通过研发、设计和制造部门来实现,开始定义质量目标、质量计划,保证开发流程合理性、流畅性和稳定性。但度量工作很少,需求和设计质量还不明确。 预防,以预防为主,以过程管理为重,把质量的保证工作重点放在过程管理上,从产品需求分析、设计开始,就引入预防思想,面向客户特征,大大降低低质量的成本,相当于成熟的“软件质量保证”; 完美,以客户为中心,全员参与,追求卓越,相当于“全面质量管理”、“零缺陷质量管理”。
还可以参考这些文章,更好地理解软件质量管理。
质量管理的底层逻辑
根据上面今天对“质量”、“质量管理”的认知,我们知道,质量因客户而存在,质量就是客户的满意度,质量由客户判定,客户对产品越满意,意味着产品质量越好。质量管理就是围绕着客户去做工作,不断提升客户的满意度。
所以,从这个角度理解质量管理的底层逻辑就是:质量管理就是不断加深对客户的认知,识别客户、分析客户行为、刻画客户和洞察客户。
在“世界上优秀的公司是如何进行质量管理的”系列报道之三:坚持客户至上,亚马逊始终如一 一文中讲到一个Amazon的一个实践,在任何一个会议室中,总留一把红色的空椅子给客户,客户没来,但大家总想着客户就在身边,就在参与会议中。
即使对客户有很好的认知,你可能还做不出客户想要的产品,这时就需要构建能力来实现高质量的交付。从这个角度讲,质量管理的底层逻辑就是:质量管理就是构建交付高质量的能力,包括研发人员的技术能力、质量保障的流程、基础设施(流水线)能力等。
之前写了一篇文章:除了质量三问,如何应对质量管理5大灵魂拷问?这五大灵魂拷问,其答案是不是代表着五大质量管理的底层逻辑?
质量究竟有哪些价值? 质量的价值如何度量? 如何明确质量目标? 质量指标和业务指标如何衔接? 究竟如何能搞好质量管理?
例如,最后一个拷问的答案是:
从这里也可以看出,质量管理的底层逻辑就是用系统工程的方法来内建质量、预防缺陷、跟踪质量和解决质量问题。这也就是我们为什么我们编写《数字化时代软件质量工程白皮书》。