某些时候你的确可以欺骗所有的人,你甚至可以永远欺骗某些人,但是,你不可能永远欺骗所有的人.----亚伯拉罕 林肯
引用了美国大总统林肯的话
,呵呵,在一定程度上可以解释一下软件质量到底是怎么样一种情况吧.
质量是相对的---引自<<质量,软件,管理>>
如何去评测软件的质量?
这一直是软件业界的一个非常神秘(最少我觉得神秘)的话题.
说说我自己的想法吧
如果是项目的话,需要考虑的相对来说会少一些,一般情况来说,质量就是符合需求.但是为什么软件的质量是这么的难呢?一个问题,软件的不可见性决定的软件质量的难测量性.最少在一个软件开发出来之前,它是不可见的,而一般情况下,质量的测量是建立在可见性和可观察性基础上的.另外,更主要的一个原因是人,人是有独立思想的,所以这也决定了在对软件质量测量上面的主观性.比如需求A,从没有任何主观因素影响和任何人的经验的影响下,客观的需求是A,而客户观察需求A之后,配合自己的主观因素及以前的经验,使需求A在客户的脑袋中形成的印象变成了需求A+客户的主观因素+客户以前的经验-需求A的没有被客户理解的部分,这样(需求A+客户的主观因素+客户以前的经验-需求A的没有被客户理解的部分)就形成了客户的需求,我们可以称为A++-,如此,客户表达出来的需求A++-已经和客户的需求A有了细微的差别.此时,需求分析人员去和客户沟通,这个时候客户表达出来的需求并不一定是客户脑袋中的印象A++-,因为每个人的表达能力有差别,所以,在这一步,需求又产生了一些微小的变化,也许这个变化小到我们没有办法注意的程度,此时我们不妨称为*A++-,到此,也就是说,客户实际表达的是需求*A++-,需求分析人员与客户沟通后,(沟通是有成本的),假如需求分析人员丢失了一部分客户的需求,此时,需求分析人员所观察到的应该是需求*A++--,而观察到的需求*A++--经过需求分析人员的主观因素和以往经验,综合后,可能会产生如此变化,不管是+还是-,我们可以把这个时候需求分析人员脑袋中的需求称为*(*A++-),不同的需求人员的表达能力又不一样,所以需求分析人员表达出来的需求B(*(*A++1)),此时,再由设计人员(或者直接由开发兼设计人员)再进一步去理解这个需求B(*(*A++-)),又会产生一系列变化,虽然可能每一小步的非常细微的对需求的变化我们察觉不到,但到最后却会发生千差万别.就像很有名的一个软件笑话上讲的:"客户想要的是A,表达给需求分析人员后变成了B,到设计人员时变成了C,到开发人员时变成了D,最后生产出来的是E,而原本客户想要的却是A.".
引用<<咨询的奥秘>>中的一句话:细微的不可察觉的变化+细微的不可察觉的变化+细微的不可察觉的变化+省略号=非常明显的变化(也许已经面目全非).
这也就说明了软件的质量的可测量性是非常难把握,也许表达起来简单的:质量,就是符合需求.
也就是说一下自己的见解吧,可能软件业界并没有上面我所想的那么严重
,毕竟虽然软件有很多失败,但也有很多成功.<<人月神话>>中形容的巨大的焦油坑,但总归还是有爬出来的英雄
,现在可能是需要软件工程化,产业化的时代,但就算是这个时代,我觉得我们还是需要英雄人物来领军
最后,给大家一个笑话吧,可以用来在特定的时间内根本没有可能完成的任务的一个托词吧.
借用女同胞来,并没有任何一丁点的轻视或其它不好的成分在里面
"十个女人只有可能在十个月后生出十个孩子,而不可能把十个女人集合在一起在一个月内生出一个孩子"
呵呵,先到这里吧..
点根烟!~
好像跑题了!~