软件项目具有一些人狼的特性,常常看似简单明了的东西,却有可能变成一个落后进度、超出预算、存在大量缺陷的怪物。因此,我们听到了近乎绝望的寻求银弹的呼唤,寻求一种可以使软件成本像计算机硬件成本一样降低的尚方宝剑。 但是,我们看看近十年来的情况,没有银弹的踪迹。没有任何技术或管理上的进展,能够独立地许诺在生产率、可靠性或简洁性上取得数量级的提高。

  1996,Brooks发表了一篇的论文── "No Silver Bullet: Essence and Accidents of Software Engineering" 。他断言:There will be no silver bullet within ten years。

  这文章激起许多软件专家的讨论与争辩,而“No Silver Bullet” 也成为脍炙人口的名词。历经了十年,果然不幸被他言中。

  在商学院的课程中经常提到,企业的首要任务是要提高“效能”而不是提高“效率”,提高效能指的是“做正确的事”,只有在我们的路走对的前提下,提高效率(正确的做事)才有实际的意义,否则我们将越来越远离目标。

  那么我们需要怎样的道、又需要怎样的术呢?这实际上用几本书才能说清的东西,而对大多数做质量的人员甚至做了一辈子也没有弄明白的问题--那是?为什么要质量管理?转

为什么要软件质量管理?

  这是一个大多数做质量的人员甚至做了一辈子也没有弄明白的问题,其实,要弄明白这个问题,必须先要搞清楚另一个问题:你所在的组织为什么会存在?它的目的是什么?

  常规的商学院里使用的西方教材会教给学生们这样的知识:股东利益大化,而国内的教程往往强调的是企业价值大化。在股东利益大的前提下,首先要制定战略,然后确定结构,接下来是建立系统;其中计划与控制是系统运作的关键因素了。我们从中很容易地可以发现现代管理之父亨利?法约尔在19世纪调配好的管理学套餐的"配方"(过程管理),看到世界上第一个"大厨师"弗里德里克?泰勒的手法(测量、评价),也看到了质量管理大师戴明(William Edwards Deming)操作过程(PDCA--戴明环)。

  时光冉冉,涤荡尘埃。21世纪的实际情况又是怎样的呢?我们看到国外的企业早开始站在使用者的角度去改变餐食的配方,强调的不再是股东或自己的良好感觉,而是使用者与供应者的口味与感受。逐渐地,他们发现:自己所以能够驾驰着战车一路高歌猛进、所向披靡,不是因为遵循"正规的"管理原则,而是与时俱进地同客户、员工和合作伙伴商一起上路,同呼吸、共患难;如果要寻找其中的基本结构,你将发现,这类组织的大都遵循着"目的‘过程‘人员"的解决之道。

  而我们的IT企业又都在忙着什么呢?他们对"组织目的"的基本假设与实践又是什么呢?我们看到的是越来越多的企业开始认为组织的目的是要"赚钱",而且是"用小的投入获得大的利益",满足股东的需要是大的"政治"。那么无疑,你将会大限度地、甚至不择手段地去取得财务的增长--通过忽悠客户、压榨合作伙伴、控制员工,填满股东的腰包;所谓组织的"目的",在这里已经被演绎得活灵活现。当然,结果也可想而知了。那是"来亦匆匆、去亦匆匆",因为他们"根基"不牢,没有扎根在肥沃的大地里,而是在沙漠里连续上演唐?吉科得勇战风车的滑稽剧。不过,对那些"老板"来说这应该是一场悲剧!

  在这种背景下,整个组织必定是风声鹤唳、四面楚歌,因为老板们做事的基本假设,即"人之初、性本恶",所以,劳资矛盾不可能让企业展露笑容;"胡罗卜加大棒"自然成为管理的重要手段。很难说"检查员制度"的建立是不是基于此,但有一点是肯定的,将管理人员和质量人员演变成"武装警察"、实施苛刻的管理制度是这种体制的产物。

  既然这时侯老板说我办企业的目的是为了"钱",那么质量的目的自然也成了"为赚钱消除麻烦"的工具,比如,罚开发人员的款、罚质量管理人员的款、罚设计人员的款等。但它毕竟没有销售、财务和生产离"钱"的距离那样近,于是,自然地排在成本、进度、人员、合作伙伴管理…….之后,当然排为"臭老九"这样的位置还是问题不大的。

  其实不难发现,一旦把"组织的目的"定义为"赚钱",会在如何"卖产品"上绞尽脑汁,也一定会遵循数学和物理学的基本原理去经营管理,比如,产品分等级、可接受的质量水平、如何能偷工、怎样能减料、修修补补等,于是,"质量管理"变成了"数量思维",质量工作也必然成为一种"数量工作";后的结局,质量人都要成为"数学大师"。

  所以,必须明白的是:我们谈了这么多年的"质量",回过头来,却发现自己还不懂"质量";或者说,质量的大问题不在于人们不了解它,而在于人们自以为了解它。因为我们原来是在传统的质量智慧迷宫里打转转呢。

  骚动与喧嚣,冲动与激情,都是对生活的渴望;足球和篮球,车间和会所,同样是工作的演绎;仿佛"黄河之水天上来",大禹疏导乃正章。中国篮球称霸亚洲,却被飞人乔丹点中要穴:"只有篮球,没有篮球哲学";在软件质量方面,我们是不是更象中国足球,“没有足球,更没有足球哲学”?没有做到大道有术也没有做到大道无术;国际质量控制方法达到高峰的时候,一个人站出来为它把脉:"只有数量方法,没有质量哲学"--他是菲利浦?克劳士比。 克劳士比指出:"我们基本的工作哲学便是:预防为主,坚持‘第一次把事情做对‘的态度(全面质量管理的要素之一),使质量成为一种生活方式。 " 所以,质量管理是有目的、有计划地创建一种文化或"共同的语言",从而帮助人们把日常工作每次都做对,与员工、客户和供应商的关系都获得成功。因此,作为"一种理念和哲学上的训练和纪律",质量管理能够"把所有这些人带入一种人们能够欣赏和运用的舒畅文化","使自己置身于‘诚信‘的现实世界的阳光下"。

  曾经有一首歌唱道:大海航行靠舵手。因问:舵手航行靠什么?其必曰:工作哲学--一种以客户为中心、结果为导向、数据与事实为基础的预防哲学,一种"第一次把事情做对"坚定信念;一种指导日常业务获得成功、所有的关系获得成功的工作哲学,一种"有用的和可信赖的"的工作伦理。数据与事实从何而来呢?来源于软件度量技术。
  软件度量技术?大道有术

  判断和衡量代码质量一直是开发过程中令人苦恼的问题,在同样完成功能的情况下,如何判别一种写法比另一种写法好呢?在代码重构的过程中,如何确定代码质量是在不断的改进当中呢?引入一种设计模式以后,代码真的变的比以前好了吗?