专栏名称: 聊聊架构
在这里煮酒聊架构。
目录
相关文章推荐
架构师之路  ·  80后聊架构:CAP对工程架构设计究竟有什么 ... ·  6 天前  
美团技术团队  ·  【报名】MARS TALK ... ·  1 周前  
51好读  ›  专栏  ›  聊聊架构

华为是如何定义IT产品质量标准的?

聊聊架构  · 公众号  · 架构  · 2017-05-16 21:27

正文

作者|贺亚农
编辑|Gary

我们为什么需要质量标准?研发产品(下文主要讲的是 IT 硬件产品)当然要有质量标准。否则产品质量到底做到什么水平才可以上市?

然而,质量标准怎么定?却有很多的考量。因为这个标准,从来不是从测试团队的角度来考虑,也不是从开发设计团队来考虑的,而是从产品发布的经营风险来考虑的。也就是说,产品发出去了,到底能否获得用户的喜欢和认可?是否能够获得理想的市场销售结果?是否在成本和利润上能让投资人满意?这些看似是发货决策者才会关注的问题,反而是标准制定过程中,技术团队们需要牢记在心的。只有这样,各种技术指标才会更为合理。

一个典型的情况就是,如果质量标准过于严苛,导致研发成本,制造成本大幅度上升,或者上市周期大幅度延后,这样的问题是发货决策时无法接受的。但是反过来说,类似三星 Note 7 电池爆炸那样的事故,由于赶货期而降低标准发布,最终导致市场出现严重问题的情况,也是发货决策者们难以接受的。因此还是要把话说回来,质量标准制定过程,各种技术指标要充分考虑发货经营风险,也就是说技术专家们要站在比自己的位置更高的视角来考虑问题,才会取得较好的效果。

我们怎么制定质量标准?

质量标准的制定,依据不同的领域,不同的特性,其实差异很大。比如跌落试验标准,会将跌落次数,距离,跌落角度,表面材质,具体操作手法都定义的非常清楚。然而软件性能等标准,却可能是以 benchmark 软件为基础,根据跑分来制定标准;而 4G 通信性能则又需要大数据分析来支撑标准制定。因此,具体领域的标准差异很大,指标也会差异很大,没法一一详述。

但是有一些关键问题却是相同的,我们完全可以一开始就想清楚这些问题的答案,避免事倍功半,反复折腾:)

第一个问题是 这个质量标准到底代表哪些用户? 而这些用户有哪些关键价值要求? 这些价值存在哪些重要风险?

我们应该根据这些分析,建立用户价值模型,风险模型。来确定采用什么样的一些检测项目? 比如说不同年龄、不同性别的用户,会有不同诉求。再比如不同国家用户的会有不同诉求,不同的行业应用,也会有非常大的不同。因此应该考虑清楚哪些用户诉求必须坚持,哪些可以妥协。

第二个问题是 如何衡量?如何量化?如何用客观评价代表主观评价?

用户都是人,因此其评价都是个体的,主观的,心理的。这导致了评价标准不好量化,也不好标准化。甚至因人而异,无法固化。因此,主观评价是不适合作为标准的。必须拆解出一些客观标准,通过客观评测来评价质量。但是,这里主观和客观要想统一起来,是非常难的,是需要仔细斟酌。比如视频播放质量相关的标准,主观上来看就是清晰,流畅等等指标。

但是分解成客观标准,就会是每秒钟多少帧数据? 分辨率多少像素?然而,拿每秒多少帧能够评价质量来说,我们一开始研究时,根据电影每秒 24 帧就可以骗过眼睛,感觉到是连续的画面,得出也许应该是 24 帧。但是后来意识到屏幕刷新率实际上要做到每秒 60 帧,才能让人感受不到卡顿。然而,如果真的想做到人眼察觉不出来,目前看得 120 帧每秒,这在李安导演的新电影里面有所尝试。所以,这里面对于让眼睛觉得画面在动,和彻底骗过眼睛,这中间的差距是非常难测准的,因此也就很难确定标准在哪里。

我们再拿分辨率这个问题来说,分辨率和眼睛距离屏幕的距离颇有关系。iPhone 最早提出的视网膜(retina)概念,早期看起来好像非常正确,但是在之后几年业界手机大幅度刷新屏幕分辨率,包括主流 VR 体验也提到了颗粒度问题,说明了要想真的让人眼看不出分辨率问题也并非易事。而且这里还没有考虑有的人视力就是好(听说非洲的马赛族猎手视力达到 8.0)。因此标准制定要想真的用客观标准拟合主观体验,需要考虑很多的因素,做很多的实验,并在给定的场景下,给定的约束条件下,才会比较有意义。

第三个问题是 试验和数据要同时解决三个问题:可重复性,公平性。因此,实验设计必须考究。

比如说 GPS 的定位成功率、定位时长等指标,乍一看可以在固定地点随时来做试验,可重复性应该比较好。但是 GPS 的卫星在任意时刻的数量,角度,方位都是有差异的。进而,不同的天气情况,比如说雾霾,对于 GPS 信号的影响也不容小看。因此户外测试的可重复性(尤其是眼科严苛环境下)就非常值得仔细考量。而不同设备怎么摆放才能保证信号来源是公平的?也是 GPS 户外测试的一个重点。因此最初的实验设计,和最终的设计结果可能会有很大的区别。其中有很多妥协,很多无奈。

进而,这个可重复性还有个重要的解释,就是置信度,也就是说结果是否足够可信呢?。 因为,既然是测量,难免存在差异性。那么怎么保证可重复性? 一般来说需要考虑样本量,测量精确度,以及成本的平衡。这里说的样本量,就是概率论里面提到的样本量。因为不同的被测对象,可能存在个体差异;而即使是一个被测对象,多次测量也存在波动;即使能控制波动,我们的检测手段也存在测量误差,因此提高样本量,会有助于得到更精确的结果。当然,精确不仅仅靠大样本量,还靠着检测手段的高精确性,以及我们对于误差的容忍范围。最终,以合适的代价(成本),落在一个合理的置信区间里面,这个结果就是可重复的,公平的。

在这里想多说一句的是,在制定标准过程中的点点滴滴,让我感受到:我们提出的每一个测量方法,每一个数据都经过了精雕细琢,反复讨论确认,。确认它是否确实有效,确认它是否能够重复,确认他是否能够推导出合乎逻辑的结论。只有结论正确的时候,前面做的一切工作才会有意义。这不就是大科学家工作的那种态度和氛围吗?精益求精,精雕细琢,要的就是这种精神。只有在这种情况下,长期的积累时候,人和人之间就会看到差距。关于这种精神,请查看公众号历史文章“生活态度:活在当下”,可以看到更多的介绍。

第四个问题是 严酷程度。到底是以用户实际使用的感受来定标准,还是以极端情况的使用感受来评价?

我们以 4G 通话为例,当 4G 推出 2-3 年后,信号覆盖已经非常好了,似乎用户很少会遇到通话问题,那么是否可以按照用户遇到问题的概率来评价质量?从这个角度看来,用户一年下来遇到问题的概率也许只有 0.01%,看起来用户体验应该还不错?但是这个角度有问题,要反过来想。因为当用户遇到问题的时候,比如在自己家里信号不太好,而且这个手机天线正好也不太行,那么他遇到通话问题的概率就可能一下子飙升到百分之几十,甚至百分之百。此时的用户感受只能用很差来形容了。因此质量标准,应该对于到底什么时候质量会无法接受,尤其是无法比拼过标杆,要有清晰的评价。简单来说,这想法就是跑到死,通过产品最终崩溃的时刻,反推质量标准。

第五个问题是 不同特性之间如何妥协?比如说功耗和性能,几乎永远会互相冲突。散热和性能,八成也总是会打架。而缩小硬件体积和性能提升,也会有永远说不完的话题。因此标准制定过程中,需要仔细考量遇到冲突了,到底牺牲哪一边?换句话说哪个更重要? 但是参见笔者的文章“当下和未来的桥梁”,这种取舍,绝对是要先提升自己的水平/境界,以及对用户的理解,才能达到最高水平,来做出更合理的取舍的。

第六个问题是 采用绝对标准还是相对标准? 这个问题也很有意思。但是结合主观客观的话题,就会意识到,绝对的测量标准,非常有问题。第一,非常难确定到底定成什么样用户体验就好了。第二,用户体验要求经常是逐年提高的,因此绝对标准如果长期不更新,脱离了现实,反而可能会拖累产品。因此,相对的标准(也就是标杆对比)会更好一些。但是选择合适的标杆也是一个很大的坑。而且,标杆如果表现很差,是否就代表我们产品也可以表现很差呢?显然不能,因此合理的做法是,用相对标准来检验,但是用绝对标准来保底,避免最终结果差于某个门限。

第七个问题是采用静态检测还是动态检测? 对于有些特性来说,比如 4G 通信、GPS 定位等来说,静态检测是否能够替代动态检测呢?显然不可以。因为用户就是动态使用的,而且用户使用过程中动态的体验,以及问题,可能远远重要于静态体验。因此并不能替代,而是两者结合,都要做。

当然,这七个问题不一定就是全部,但是,相信想清楚了这几个问题,会更加清晰的理解制定过程中的难点和重点。

我们如何执行质量标准?

标准制定难,但是执行起来更不容易。

第一,标准要足够清晰,什么时候过,什么时候不过,都足够清晰。这样执行标准的人员,才能当起铁面无私的判官,和具体开发设计人员沟通起来,不会因为数据含混不清,而左右为难。这里有很多技巧,不能简单说清楚。但是通过表格逐条确认结果,以及结果不存在任何灰度等等,都会又些用处。

第二,公平,严酷,可重复的的评价体系,对应的往往是配套的工具和自动化体系。因为人工很难达到非常好的一致性,可重复性。在人工执行的时代,评测结果时常受到质疑,受到挑战,返工的成本也很高。因此成熟的组织会逐步使用工具,自动化来替代人工执行标准,来收集数据,来智能化的分析,来做出质量评价。而这背后的开发设计投入非常巨大,是要充分考虑的。

第三,不同的产品,比如平台首款,和衍生产品在标准执行上有什么区别? 是否衍生产品要求会更高?是否衍生产品要缩减检测工作量,只抽检一些关键指标?但是不管怎样说,永远要记得,对于用户来说,他可看不到首款和衍生产品的区别。他只看到了自己买的这一台产品。因此,质量标准要确保用户利益和产品开发成本取得平衡。

第四,用来做对比的标杆,其选择过程也是很讲究的。我们常见的坑至少有 4 个:1、我们的芯片和器件决定了,我们只能用 XX 产品作为标杆。这个坑的逻辑错误在于,我们第一不能确定标杆就会有好的销售,第二是我们上市必然比标杆晚,我们是否还可以用同样的质量标准来考虑?用户可不一定同意。第三,用户并不知道我们用的器件有什么限制? 2、XX 特性用标杆 1,YY 特性用标杆 2,ZZ 特性用标杆 3,如此来看是否每一个特性都要做到最好? 3、万年不变的标杆,连续几年都用一个。而且不管低端高端全都用这个。 4、低端产品成本低,是否就应该可以降低标杆要求?

第五,标准检测出问题,无法通过。当然设计团队会很难受,会有心理的抵触。但是一般来说,大家对于问题对于产品上市的影响还是能够理解的。只是工作压力那么大,大家通常希望的是能能够快速解决问题。不要发现问题无法解决,而无法解决才是大家难以接受的。因此,标准的应用要尽早发挥作用,举个例子来说,能用在产品设计阶段的标准,显然要好于用在开发完成之后的检测标准。进而,标准检测出的问题,最好是必然出现的,是容易定位的,是有清晰的解决思路的,这样的问题,才有助于大家快速解决。

质量标准执行遇到争议,该怎么办?

产品一代一代的开发,难免会出现变化,不论是产品规格相关的,还是应用场景相关的。因此标准难免出现与现实脱节的情况,或者解释不清的情况。那么,标准的争议出现后,还执行不执行呢?为了避免执行人员的尴尬,应该在标准出现争议后,在标准修改之前,先按照当前规定执行。并同步提交标准修改团队修改,对于影响当前产品的问题,可以由标准制定方临时仲裁在当前产品上应用。这样可以避免具体执行人员之间争议无法平息。这里值得注意的是,产品开发真正重要的不是一两个问题该改还是不该改。而是是否有一致的评价体系,能够以较低的成本来执行这个评价体系。仅仅因为一两个争议,而导致评价体系崩塌,没人遵循,是得不偿失的。

质量标准的提高

制定出完整的规范的质量标准体系,是否产品就越做越好了呢?大体如此。但是这里还有个反过来的问题。那就是团队建立了各方各面的完善的标准体系后,产品质量有了很好的保障,不会轻易出现质量问题。但是一旦市场环境变化,市场对产品质量的诉求就会发生变化,此时会出现船大难掉头,标准反而影响产品研发效率的情况。比如说在功能手机时代,产品建立的一套质量体系,在智能机时代到来后,对于智能机就会有一定程度的副作用。比如机械可靠性标准偏高,难以达标;而部分性能标准又偏低,无法衡量产品质量。此时修订标准体系,以及对应的执行体系,非常耗时耗力。更可怕的是制定标准的一批高水平人才已经不在从事这个事情了之后,再重建标准体系,是一个非常不容易的事情,需要有大决心,大智慧才能做成。

最后一点想分享的是,标准其实是个大杂烩,是多个团队互相博弈的结果,也是主观客观,可执行性等多种方面权衡的结果。因此,符合标准不代表最高水平,仅仅代表达到了某种门槛的水平。因此真正立志要做最好的产品的人,要有自己的追求。产品设计要有 Killer 特性,各个功能团队要从一开始就要为 Killer 特性的高水平交付保驾护航。与此同时,其它特性也要做到足够好,而不是一般般。

之后达到这种水平的产品,才能真正俘获用户的心,获得较好的销售系哦啊过。但是做到这一步仍然不够。要逐年提高体验,要能够和用户讲清楚每一代产品比上一代产品优化了百分之多少,这样用户就会看到产品的进步,感受到产品开发团队的用心,产生进一步的认同感。只有这样,才能真正做出长盛不衰的高水平产品。所以,立志做最好的产品,就要立志去制定属于自己的质量标准,只有下了这个决心,才真正能把产品质量做好。

综上,就是我在质量标准制定上的遇到的一些常见问题和常见想法,不知道是否对你有价值呢?有的话,不妨说出来看看?

作者介绍

贺亚农,在通信企业华为有 10 多年的工作经验,从事手机开发测试等工作,对于开发测试都有较深入的见解。本人近期写了一些产品开发测试的心得总结(在不违反公司信息安全政策原则下)。这些文档在个人朋友圈获得了较好的反馈。因此我想看看,这些总结是否有机会让更多的人看到? 对相关从业者产生更大的价值? 因此,希望能够在百忙中提出一些宝贵意见,多谢!

另外,欢迎关注我的个人微信公众号『亚农写字』。

今日荐文

点击下方图片即可阅读

微软资深工程师:聊聊合规要求对系统设计的影响


今年,架构师关注的技术点有何不同?从云计算、大数据、微服务、容器,到现在的人工智能,架构师应该怎么做?这里推荐一场会议,为你总结了 100+ 国内外技术专家现阶段的架构实践,点击“阅读原文”,看看对你有何启发。