物理中的质量是指含有物质的多少,无论位置、状态、形状的改变,一个物体的质量不会改变,他是物质的物理属性。

  生活中的质量一组固有特性满足要求的程度。显然,我认为我们常说的软件质量应该属于第二种。

  我们现在做软件时,对项目经理的一个要求是要保证软件的质量,但是这个质量说起来容易,但实施起来不那么容易了,原因很简单,这个质量说起来是个有点虚无缥缈的,想我们买衣服时,一看觉得质量不好,但又说不出来咋不好,卖衣服的也说这个价位质量已经是好的,实际上大家都不知道质量是个什么东西,只不过用来讨价还价的接口罢了。

  我们也经常听到我们的领导常说,尤其是对项目经理说,一定要保证产品的质量,但什么是质量,谁也不一定能拿出过标准。

  我当了几年的项目经理,听多多的也是质量、效率。

  我自己对质量有如下感触:

  1、软件Bug少不代表质量高。

  2、测试人员无法保证软件的质量。

  3、质量是双方一定价格下的一个妥协(这个像我说的买卖衣服一样)。

  4、好的质量是不断修复(或者说重构)出来的。 这点我要强掉一下,我们有些人认为一开始可以产生或者定义出来高质量的软件,我觉得是不可能的,像我们种庄稼一样,我们把庄稼种在地里,我们还需要除草,如果天旱了,我们得灌溉,但如果风调雨水,我们灌溉是浪费。因为我们无法预知一整年是不是会大旱,我们如何一开始定义做哪些工作来保证质量。

  我保证质量的好的方法,是不断的与客户交互,让客户来进行反馈,我们来进行适当(注意是适当,我们只是从客户那里拿信息,不是要求)的修正。

  谈到这里,好像和项目经理没有多大关系,实际上这里重要的工作,主要的工作是项目经理要完成如下关键的几点:

  1、在客户的要求和项目的报价之间找一个平衡,来定义产品的特性和细节,这点常常是需要和客户协商,注意是和客户协商,我们常常受到开发人员的干扰。

  2、把握项目的“度”,既不要让开发人员过度开发导致时间过长,什么性能,什么XX思想,客户在乎吗,但也不要和客户差的太远。

  3、把卖产品提升到卖服务来思考。

  总之,软件的质量是提高客户的满意度。有没有bug不重要,系统快不快等都不重要。因为有的客户要求是快速占领市场,占有用户等,我们开发人员都知道Firefox好用,但市场占有率还是比不上IE,再好的通讯软件,在中国想和QQ拼也很难。等一个bug都没有,系统也会轻轻的走,恰如它轻轻的来。