软件质量的“奥秘”[2] 软件测试
质量的层次性
传统的质量体系中,质量的层次一般指的是由质量方针、质量手册/组织手册、流程、方法/工具/指导书/标准等构成的经典的质量金字塔模型中的分层等级,不过这个金字塔模型主要表达的是质量管理系统本身的构成,却无法表达和解释出质量系统之所以能够运作并对产品产生影响的原因和系统原理。这里,并不想讨论质量管理系统本身,而是希望能够解释和理解开发高质量的软件产品本后的某些驱动因素,而正是这些因素对一个软件组织能否真正达成“以客户为中心”的目标起着重要的作用。
那么,这里所希望表达的质量的层次性究竟指的是什么呢?前文提到,所有质量的定义背后都隐藏着“行政和情感”的因素,当沿着这种目光向一个开发组织的内部看去,情况就会变得非常有趣。从情感的角度看,任何一个稳定的团队都是由一群拥有某种潜在共同价值观的人们所组成的,这种价值观影响并促成了一个团队独特的质量观,并且在一个团队中,总有某些权威人士的潜在质量观深刻的影响着整个团队的质量观,通常这些人士都是团队的Leader或是技术的权威;从组织的角度看,任何组织都有一定的组织结构,稍微复杂一点的组织,其组成结构都具有一定的层次。正是这种人与人之间的等级关系和组织结构的层次关系,使人们的质量观也构成了某种层次,这种质量的层次性并不是产品本身所体现和具有的客观存在的质量属性,而是由上述两个原因所产生的一种附加属性(或特征)。
这种附加的质量层次性,有两个显著的特点:
◆ 团队leader(或团队内的某些权威,后面为了简单起见,都只说团队Leader)对一个团队的潜在质量观起着重要的作用;
◆ 所处环境和地位的影响,对处于不同层次的团队或人员的真实质量观有着决定性的作用,尤其是那些涉及到他们生存和发展的因素。这里最经典而有力的证据就是人们常说的一句话:“屁股决定思想”!(指的是人在什么位置说什么话)
第一个特点,这里没有什么特别需要说明的。关于第二个特点,则不但揭示了不同软件开发方法论选择不同道路的原因以及其背后成功的核心因素,也有助于理解组织结构变革背后的原因和考虑因素。
在早期,典型的软件产品开发组织结构,是以研发团队为核心开发新的软件产品(现在也还有,如新的概念性的产品,这里只是为了说明方面,不用过分计较),并向客户进行推销,如下图所示: