【IT168 技术文章】
想要理解敏捷软件开发为什么好,需要从软件质量讲起。那么软件的质量是什么?这个问题有很多中答案,我们不妨想看看传统质量理论对于质量是如何理解的。教科书上说,在20世纪质量管理的发展历程经历了质量检验、统计质量控制和全面质量管理三个阶段。其中,质量理念也在不断的演变。据说有这么几个阶段:
符合性质量
20世纪40年代,符合性质量概念以符合现行标准的程度作为衡量依据,“符合标准”就是合格的产品质量,符合的程度反映了产品质量的水平。比如说我做一个杯子,没什么特别的要求,也不是我神经质的艺术作品,就是普普通通的一个杯子,那么需要高矮长短,大小胖瘦,等等一干质量属性,我做好了可以拿着质量标准来对比,一眼就可以看出那里出了什么问题。通过是否符合这些标准判断产品具有相应的质量。
那么软件的质量理是不是符合性质量呢?我个人觉得不属于。虽然我们一样可以拿出各种各样的标准,比如故障率,比如bug数等等。但是这些标注都满足确不一定是好的软件,比如我写一个helloworld,虽然他可以没有bug。但是却发挥不了任何的作用。这样的软件就属于“高质量”的废品。正如赵辛梅评价方鸿渐,“你不讨厌,但是毫无用处。”,显然毫无用处的软件不会是真正高质量的软件。
适用性质量
20世纪60年代,适用性质量概念以适合顾客需要的程度作为衡量的依据,从使用的角度定义产品质量,认为质量就是产品的“适用性”。是“产品在使用时能够成功满足用户需要的程度”。质量涉及设计开发、制造、销售、服务等过程,形成了广义的质量概念。适用性质量的例子也很多,比如我买了一件 Givenchy西服(我还真买了一件),但是一时又没有特别正是的场合(目前还真没有什么正式的场合),于是我一天四顿牛排(其实只有一顿),于是就吃胖了,这件华丽的Givenchy就穿不上了。那么这件衣服从符合性质量来说,是优质品,但是从适用性质量来说,却不是一个高质量的产品——因为我穿不上。还有一句话,叫甲之熊掌乙之砒霜。也是适用性质量的标准体现。
那么软件的质量是不是适用性质量呢?我个人觉得,软件的质量至少是适用性质量。软件,尤其是定制软件/企业软件,就是量体裁衣。软件的基本质量就是要在用户使用的过程中发挥价值,支撑客户的业务发展。
书上说,从“符合性”到“适用性”,反映了人们在对质量的认识过程中,已经开始把顾客需求放在首要位置。但是它没说怎么才能做到把客户需求放到首要位置。我看光靠文档是堆不出来的,光考说说也是不行的。这个后面讲,戴明同学比我讲得好。
满意性质量
20 世纪80年代,质量管理进入到TQM阶段,将质量定义为“一组固有特性满足要求的程度”。它不仅包括符合标准的要求,而且以顾客及其他相关方满意为衡量依据,体现“以顾客为关注焦点”的原则。这个的最典型的例子是麦当劳,他所有的店铺从风格到食物都保持在同一水平,使你无论在那里,都可以得到一定的购物体验。也就构成了对麦当劳的满意性质量的验证。这个软件上也是有例子的,内举不必亲,ThoughtWorks大多数项目都可以达到“满意性质量”,呵呵谁让俺们是consultant涅。
我隐约觉得满意性质量应该是一个过程的质量,而不仅仅是软件的质量,但是目前没有好的想法,暂且按下不表。