软件质量的“奥秘”[1] 软件测试
注:下面此文中提到的质量的行政与情感色彩,只是温伯格从心理学的角度揭示和探究组织内管理改进的方式,请勿以此来片面的理解“质量”,并作为自己无法开发出高质量产品的借口。关于质量的客观定义,请参见朱少民老师的文章,建议先读朱老师的文章再读此文,以免对质量产生误解:
质量的定义总会带有政治的和情感的色彩吗?
什么是质量?似乎已经有了非常多的答案,从“质量就是零缺陷”、“质量就是满足客户需求”一直到“质量是满足客户需求的程度”,仿佛我们已经找到了答案。可是这些答案为什么总是无法解决我心中的困惑?
“满足客户需求是我们唯一的目标”作为公司的质量方针已经这么多年,可是为什么在软件开发中我们始终还只能不断的喊着“从客户的角度”的口号,而“从客户的角度”出发的思想却始终无法在开发团队中落实?
项目经理们一旦受到了进度的压力,什么质量、什么从客户角度出发就被他们毫不犹豫的扔到了九霄云外?
为什么在公司提高过程符合度的重压下,过程符合度指标急速上升,而有的团队质量却没有根本性的进步?
为什么有的产品终于实现了第一次开发达到了进度零偏差,但实际却偷偷拿着另外的版本提供给客户,并因此得到了公司的嘉奖?再后,进行审计时发现,获得嘉奖的产品其开发过程审计结果也一般般,甚至是同一个部门中比较落后的团队,其他开发团队对此更是嗤之以鼻!
虚伪的质量
最被大家认可的质量定义“质量就是满足客户需求的程度”,以前从未对此表示过怀疑,一切都如此的自然,就好像质量天经地义就应该是这样。我的思考和理解也就停留在“客户是不同的,需要区分”、“满足的程度应该如何衡量”等诸如此类上,但它却始终没能解决我心中的困惑,我也没能成功将它和我们软件开发中存在的各式各样的奇特现象联系在一起,除了在无计可施时,向着开发和测试人员喊喊“你们要从客户的角度考虑问题”的口号,就毫无办法!直到一天看到了大师温伯格的三卷套(《质量.软件.管理》),才明白这一切的根本,没有谁比温伯格更深刻的揭示了“质量”的奥秘。
而这奥秘对我来说,无异于当头棒喝,将所有的困惑打在了一起,又一个个解了开来,也能让我更冷静的看待开发中存在的种种问题,从而能够更好的处理这些看似简单却复杂的质量问题。究竟什么是质量的奥秘呢,上面的质量定义中究竟隐藏了什么让我们看不真切呢?答案竟然如此简单和虚伪:“质量就是对某个人而言的价值,它的背后是行政和情感!”。“行政和情感”意味着,质量好并不仅仅是缺陷少、功能多或者是服务好,一切在于客户的感受!
一个容易忽视的例子是:我每次去买衣服时,最害怕的是什么,是怕服务员太热情,总是一见面就拉着我介绍这介绍那,她们的介绍总是那么详细以至于我总是心里发毛,为什么?我对名牌和款式实在是所知甚少,而她们的介绍几乎总是让我感觉自己是那么无知,而这让我很自卑(以前一直没意识到),于是每当看到太过热情的服务员我几乎每次都选择了逃避,我会告诉她,我只是随便逛逛。是她们的服务不好吗?显然不是,我会说她们服务得很好,可是这对我来说却不是什么好的购物感受,我却不能说她们的服务质量很好,因为她们显然没有达到她们的目的-卖出,而我也同样没有得到我想要的-买进。一切在于客户的感受,这和以客户为中心的思想并没有什么区别,只是事情的关键在于质量的行政和情感本质,当这从软件组织向外看时,没有什么稀奇,但是一旦以它的目光看回开发组织的内部,事情就不那么简单了,它揭示了软件质量的“不确定性”之外的另一个重要特性——层次性。而如何破除内部质量层次的封闭性将是一个软件组织实现真正的“以客户为中心”的关键,否则“以客户为中心”就只能沦落为一句口号。