1. 为什么谈质量
如果你是一个木匠,你需要留意质量,但也许并不需要质量管理。把专注放在在每一刀的刻画上,每一刻都不妥协,这样就有质量保证。
但如果你的工作需要经过复杂、多人、长时间的团队协作才有最终产出,那么没有质量管理就意味着协作无序,执行难题,交付惨剧。
2. 什么是质量
追求极致不叫质量。��
什么是质量?符合要求。
完美并非质量。每个人的认识水平不同,何况鸡蛋里总能挑出骨头,永远有更好。
如果开始前就清晰地定义清楚了,目标做是做到60分,那么60分就是最好的质量。不要认为60分的产品不是产品,有的产品不是拿来用的,它们是工具:沟通工具,学习工具。
没有要求,就谈不了质量。
3. 质量的和成本
罗振宇在《长谈》里说过一个不错的回答:「脱离成本谈质量就是耍流氓」。
管理者可能潜意识里都觉得自己的产品是要做到质量100分,所以不自觉责问团队,为什么有这个那个错误。这时,我们也许就是在脱离成本追求质量。
质量不是在真空中产生的,在是时间和资源的制约下。对于团队来说,时间和资源往往是被限定的——那么,质量区间也随之就固定了。
这个「实际的质量区间」和管理者心里想要的那个区间,有�多大的重合度,取决于管理者对于质量和团队的了解。
4. 质量不好谁的锅?
质量问题不意味着质量人员的问题。产品的生产者往往最能对质量负责。在多团队协作的项目中,这可能是多个职能团队。
此外,质量不好也可能是管理者没有明确清楚他们的质量要求,具体是什么样的。
当然,从第3点可知,质量不好还可能是管理者能给到团队的成本根本不够。
5. 质量工作的核心
两个字:预防。
6. 「质量思维」和「测试思维」有什么不同?
测试思维是:找出问题,解决问题。这是面向当下的思维模式。
质量思维是:找出问题,分析原因,找到避免这类问题发生的办法。然后顺手把这个问题解决了。这是面向未来的思维模式。
测试者把问题当 麻烦 。一旦找到后,就想尽快干掉它。越快消失越好。
质量员把问题当 线索 。一旦找到后,就会顺藤摸瓜找到相关人,和他一起回到事故现成看看当时为什么造成了纰漏,再想办法避免这类问题未来再发生。
照此即可判断一个测试人员的好坏。合格的质量人站在生产人员的对面,而好的质量人站在生产人员的身边。
7. 质量管理的关键动作
「记录」。
有记录才有清单。在软件开发中,这个清单叫做测试用例。
测试用例的编写除了靠经验,靠对业务的理解,很重要也很容易的一个来源是:过去的错误。再一次:错误是线索。
问题-原因-改进方案-核查清单,都记录在册。这是回顾和改进的起点。
8. 质量部门的责任
质量部门应该担任衡量及报告工作结果是否符合要求、要求采取改进行动、鼓励防止缺陷、教导质量改进的职责,并且要成为整个组织的核心。 —— 《质量免费》
9. 测试人员的心态
很多公司里,测试人员的处境很微妙。就像球场上的后卫,赢了球大多想不起他们,出了问题却最先被暴露。这导致他们在很多时候感觉需要通过其他的方式证明自己的能力和价值。比如在出现问题的时候,他们会要求自己不但能找到问题,还能够解决问题。
这让测试人员既是质量的守护者,又是问题的辩护者。
那种想要积极地参与公司的业务生产的欲望是很难抗拒的,但一点点的参与就足以破坏质量人员最宝贵的客观性。
10. 软件开发里的测试工作
软件开发里有一个概念叫TDD,即测试驱动开发(Test-Driven Development)。在开发之前先把测试标准说清楚,让开发人员提前知道他们的代码会怎样被检测,就能预防一部分开发过程中的疏漏。
而传统的软件开发流程中,测试工作是被安排在整个项目的最后。测试开始,说明开发已经结束,质量已经定型了。测试工作是在被动情况下展开的。TDD让测试工作主动介入。
在Google,开发人员自己做测试。他们这样说:
「当你把开发过程和测试放到一起,就像在搅拌机里混合搅拌,直到不能区分彼此的时候,就得到了质量。」