<!-- /* Font Definitions */ @font-face {font-family:"MS 明朝"; mso-font-charset:78; mso-generic-font-family:auto; mso-font-pitch:variable; mso-font-signature:-536870145 1791491579 18 0 131231 0;} @font-face {font-family:宋体; mso-font-charset:80; mso-generic-font-family:auto; mso-font-pitch:variable; mso-font-signature:3 135135232 16 0 262145 0;} @font-face {font-family:宋体; mso-font-charset:80; mso-generic-font-family:auto; mso-font-pitch:variable; mso-font-signature:3 135135232 16 0 262145 0;} @font-face {font-family:Cambria; panose-1:2 4 5 3 5 4 6 3 2 4; mso-font-charset:0; mso-generic-font-family:auto; mso-font-pitch:variable; mso-font-signature:-536870145 1073743103 0 0 415 0;} @font-face {font-family:"Heiti TC Light"; panose-1:2 0 0 0 0 0 0 0 0 0; mso-font-charset:81; mso-generic-font-family:auto; mso-font-pitch:variable; mso-font-signature:-2147483601 134742090 16 0 1048576 0;} @font-face {font-family:华文宋体; mso-font-charset:80; mso-generic-font-family:auto; mso-font-pitch:variable; mso-font-signature:647 135200768 16 0 262303 0;} @font-face {font-family:"ヒラギノ角ゴ ProN W3"; mso-font-charset:78; mso-generic-font-family:auto; mso-font-pitch:variable; mso-font-signature:-536870145 2059927551 18 0 131085 0;} /* Style Definitions */ p.MsoNormal, li.MsoNormal, div.MsoNormal {mso-style-unhide:no; mso-style-qformat:yes; mso-style-parent:""; margin:0in; margin-bottom:.0001pt; mso-pagination:widow-orphan; font-size:12.0pt; font-family:Cambria; mso-ascii-font-family:Cambria; mso-ascii-theme-font:minor-latin; mso-fareast-font-family:"MS 明朝"; mso-fareast-theme-font:minor-fareast; mso-hansi-font-family:Cambria; mso-hansi-theme-font:minor-latin; mso-bidi-font-family:"Times New Roman"; mso-bidi-theme-font:minor-bidi;} .MsoChpDefault {mso-style-type:export-only; mso-default-props:yes; font-family:Cambria; mso-ascii-font-family:Cambria; mso-ascii-theme-font:minor-latin; mso-fareast-font-family:"MS 明朝"; mso-fareast-theme-font:minor-fareast; mso-hansi-font-family:Cambria; mso-hansi-theme-font:minor-latin; mso-bidi-font-family:"Times New Roman"; mso-bidi-theme-font:minor-bidi;} @page WordSection1 {size:8.5in 11.0in; margin:1.0in 1.25in 1.0in 1.25in; mso-header-margin:.5in; mso-footer-margin:.5in; mso-paper-source:0;} div.WordSection1 {page:WordSection1;} -->
和业界同行们交流的一个好处就是会有很多新的启发,让你去思考一些问题,或者把之前想过的一些零碎的东西拿出来再考虑一下,不同的人会带给你新的信息和观点。长期在一个稳定的环境里面做事情,大家的看法和观念难免会有些同质化,而这当然也是受限于大家的经验。所以最近有机会的话就会和同行们多交流,这篇文字很大程度就来源于和Jeff 的交流。他做 QA 十多年了,非常的资深,做过 QA, QM和 director,难得的是他一直保持着旺盛的学习的热情,当然这是交流后我的另一个收获。
标题用了or,这里探讨的不是一个唯一的方向或者结论,实际上我也给不出来,所以更多的是一些开放的思考。
1. 精细还是创新?
这个对比看起来有点奇怪,但是还真有点关系。
Jeff曾在某日资的软件公司工作过,他和我分享了日本人对软件质量的重视,用他的话说有时候是不计成本,这成本包括严格的 process,非常大量的测试,以及请昂贵的咨询等等。我们公司很多接触日本客户的同事也有类似的感受,他们不仅仅关注结果,而且关注过程,修好了一个 bug,你可能还要准备详细的文档讲解过程,甚至改动了一个看似无关紧要的东西也要说清楚。
过程是很重要的,这是一个核心的观念。所以有很多非常完善的流程以及大量的文档用来控制质量,必须严格的遵守。
这样做当然有很大的好处,那就是做出来的东西质量很高,我相信这方面大家可以举出很多的例子。
凡事有利有弊,另一个方面,大家发现在业界( IT)来看,日本人的创新,特别是比较有革新性的创新还是比较少,或者说相对美国来说比较少。直到现在,无论是在技术还是在新的产品和业务方面,美国还是在执牛耳。
我在想这个和上述的观念是不是有一些关系。如果 process太严格,并且每个人都严格遵守,会不会阻碍创新?一个产品不做到非常高的质量就不发布是不是也会让新的东西无法快速发展?这个有点像人的 personality,一个循规蹈矩的人可以认真的做好很多事情,但是可能不是一个伟大的创新者。一个内向严谨的人和一个活泼不安分的人哪一个更好? 恐怕很难说清楚,我们很难说哪一种个性好,当然个人可能会有偏好,另一方面,对于不同的角色和岗位可能也会有不同的要求。
好吧,你讲了半天,这个和测试有多大关系呢?
这里涉及到另一个看法,那就是我们觉得测试的价值和重要性直接依赖于对产品质量的要求和重视程度,进而对测试的投入也是不一样的。
2. Perfect or Good Enough
这是一个大家经常谈到的话题,但是本质上,我觉得这是一个伪命题,因为没有 perfect。 Perfect至少有两大致命的问题,一个是在不同的使用场景或者在不同的用户来看,有完全不同的认识,所以你做任何一种都对也都错,就好比手机是直板还是翻盖好?第二个问题是你无法直到是不是完美了,很多时候我们会高估或者低估我们的产品,甚至我们自己。好吧,既然大家都这么用这个词,也就先沿用吧。
和上面说到的日本人和美国人都不同,中国两种都不是,至少现在,但是我们希望我们两种都有。不知道是不是因为受了 agile的快速 deliver功能特性的想法或者是类似 Google的 always beta的做法的影响,大家开始提 good enough的观念。
不过我发现这种观念也有些问题。嗯,总是有很多问题,所以不要太担心。
第一个问题是很多的时候我们觉得 good enough,但是可能实际上很不 enough,甚至对用户来讲不 qualify。比如一周 crash一次,好像还好,但是可能用户难以接受,进而留下东西很烂的印象。所以是否值得为这个 crash投入开发和测试,并推迟一周发布?
第二个问题是这种观念可能会传递一个错误的信号,让大家放弃对卓越的追求,这像是一种暗示。当你在努力,抓耳挠腮、熬夜加班,到处查资料的时候,突然耳边响起一个声音,“我们对产品的要求是 good enough”,然后你可能回想,“算了吧,费这么大劲,到时候还嫌我麻烦。”,当然你也可以坚持你的信念。
上面的状况都可能会发生,但是实际中那种更合适,确实很难讲,因为这个取决于很多方面,比如你的目标,一个业界的主打产品还是一个新产品的原型?但是有一点,我们应该心里清楚不同的武器的长处和短处,进而在遇到不同的状况做出清楚(至少自己认为)的选择,而不是盲目的跟着潮流去追求某一种。