软件质量通常被理解为合乎规格说明,满足客户需求,以及在文档和代码中尽量少的缺陷(Defect)等等,这些都是比较“经典”的定义。“六西格码质量”(Six-sigma Quality,译者注:是一种质量标准及相应的质量管理方法)为缺陷密度(Defect Density)和/或失效率(Frequency of Failure)设定了一个很高的标准,但是,它没有涉及质量的其他方面,比如交货期、可用性、特性集和性能价格比等等。无论我们是作为生产者还是消费者,我们都希望产品的质量在所有这些方面都是尽量高的,但事实上,我们总要在其中做出权衡和选择。
我们在需求阶段就考虑,对于客户哪些质量特性是重要的,并把它们列举出来(比如,交互性、正确性、易学性等)。然后,我们找来一些关键的客户代表,请他们对这些质量特性打分。这样,我们就可以掌握哪些质量特性是最主要的,哪些是次要的,从而就可以有的放矢,为这些质量特性而优化设计。
我听说的更有意思的一种软件质量定义是“客户回来了,但不是为了退货”(the customer comes back, but the product does not)。和你的下属以及客户一起定义合适的质量目标,一旦定义了,则要不遗余力的为达成这些目标而努力。你也要以身作则,以高标准要求自己。记住这句话:“非完美不争取,非卓越不满足”(Strive for perfection; settle for excellence)。
表彰进步