早在20世纪60年代中期,人们发现软件的生产出现了“问题”,主要表现在生产过程不规范,缺乏管理。其结果是软件功能薄弱、漏洞众多等问题频频出现,后来,人们在软件工程方法学中引入了工程的概念、原理、技术和方法,这种思想在一定程度上解决了软件生产过程中遇到的问题。但是直至80年代还是没有提出一套管理软件开发的通用原则,软件管理不善、质量低下的问题依旧在大范围内存在。随着软件开发的深入、各种技术的不断创新以及软件产业的形成,人们越来越意识到软件质量的重要性,因此管理学和质量管理的思想逐渐融入软件开发过程中。
序曲:软件质量的困境
2005年11月1日,日本东京证券交易所股票交易系统发生大规模系统故障,导致所有股票交易全面告停,短短2个小时造成了上千亿元的损失。经查明,故障的“元凶”是今年10月为增强系统处理能力而更新的交易程序存在缺陷。
耗费了巨额投入的信息化系统,在预想中本应是提高企业工作效率、为企业创造价值的“法宝”,但为什么转瞬变成了灾难之源?一切症结都指向了根本问题?软件质量。如果软件质量不过关,后果将不堪想象!!!因此在我们对许多软件开发者(特别是产品提供者)提供的保证进行考察时可以发现一个相似的保证模式:
有限保证
XXXX公司不为任何特定目的提供有关YYYY产品的性能、可靠性或适用性的的保证。XXXX公司不保证该软件及其文档满足你的需求。虽然XXXX公司已对该软件进行了彻底的测试,并评审了文档,但XXXX公司不提供任何有关软件及其文档无错的保证。XXXX公司不对任何意外的、直接的损坏、间接的或随后的损坏、由损伤数据带来的损坏、恢复费用、利润存食和第三方要求承担责任。软件“按现状”登记许可。购买人承担YYYY程序的应用、质量和性能的完全风险。
若在文档或含有YYYY的光盘上发现物理缺陷,XXXX公司将在购买后的180天之内无偿更换该文档或CD,只需提供购买的证明。
在这里,开发者都不声明软件没有缺陷,多数计算机硬件制造商惯常也这样声明。这种拒绝实际上反映了软件质量同其他制造产品(如汽车、洗衣机或录音机)的基本本质不同。这些不同可分类如下:
(1) 产品的复杂性:产品复杂性能够用产品许可的操作方式的数目来度量。工业产品,即便是高级的机器,也不允许由其不同的机器设置组合建立的几千钟以上的操作方式。看一下典型的软件包,人们可以发现上百万的软件操作可能性。确保正确确定大量的操作可能性,对软件产业来说是一个重大挑战。
(2) 产品的可见性:工业产品是看的见的,而软件产品不可见。工业产品中的大多数缺陷可在制造过程中检测出来。此外,通常工业产品中部件的缺失很容易看到(想象一下你的新车缺了一扇门)。然而,软件产品(不管是存放在光盘上还是在硬盘上)的缺陷是看不见的,软件包中的部件可能从一开始缺失了。
(3) 产品开发与生产过程:工业产品有可能检测到缺陷的阶段是:产品研发、指定产品计划、制造。同工业产品相比,软件产品不能在生产过程的所有三个检测缺陷。能够检测缺陷的阶段是开发阶段。 存在解决之道?
目前,我国软件业正处于高速发展的时期,许多企业已经从艰苦的创业阶段步入到快速成长期。伴随着这一进程,“成长的烦恼”开始困扰着企业。一个个曾一度被放置一边还没来得及解决的“小问题”,已经逐渐演变成妨碍企业进一步发展的“绊脚石”。我国已经入世多年,信息产业竞争更加严峻和激烈,很多企业的高层领导在这种压力下,已经感到企业管理问题业已成为影响企业发展的关键因素,但是由于外部其它因素的影响,又不可能全身心投入到企业质量管理体系的建立和完善工作中去。怎样才能切实有效地解决这些问题,促进产品质量上台阶,成为目前很多软件企业关注的焦点。
企业希望寻求一种简单易行,且一朝投入可以持之以恒的方式来进行企业的过程改进和质量保证工作。存在这样的方法吗?
曾经有企业认识到"质量"对客户以及对公司的盈利水平的意义,同时专家告诉他们,没有SPC怎么能够叫做现代质量管理呢?他们决定用世界上先进的软件度量方式来"做"质量。他的确感到得意,因为他们用昂贵的投资博得了客户的青睐与订单;可没有多久,他们的笑容消失了,因为几个月过后,积累了大量的数据,可没有人对它们感兴趣;效果没有想象的那么好,没能使他们达到所想的"质量"优势。他们开始陷入困惑。这时,ISO 9000风头渐起。他们又一次兴奋起来,决定与"国际接轨",并花高价让国外的认证公司来"保证"公司的质量。证书挂了起来,他们开始在广告中得意地宣称:我们是业内首家……,我们有了"国际质量"。但是,又没有过多久,他们开始沮丧地换掉了广告语,坐在窗前发呆:我不明白,为什么大家一下子都有了证书?具有国际认证能够"保证"具有"国际质量"吗?ISO 9000的效果怎么又让我们失望了呢!!!
CMM的渐行渐近再次让他们看到了希望、在质量问题的汪洋大海中又有了救命的稻草…………。可终的结果呢???
他们开始寻求各方面专家的咨询帮助。
专家说,SPC、Software Metrics、ISO 9000、CMM都是好东西,关键的是你的团队缺乏执行力。企业为什么普遍缺乏核心竞争力的原因是执行力太差。而造成执行力问题的三大原因(文化原因、制度原因和人员原因)中,文化原因是关键的因素。这是因为:
1、中国是一个人治社会,我们讲究“用人不疑,疑人不用”,能人第一,制度第二,而现代企业制度讲究的是“用人要疑”,制度第一,能人第二。
2、中国是一种清淡文化,我们讲究“大道无术”,缺乏量化管理传统,而现代企业管理讲究“大道有术”?量化管理。
3、中国是一种面子文化,我们讲究“以情理服人”,情在前,理在后,而现代企业是一种利益文化,讲究“以理情服人”,理在前,情在后。
真是这样的吗???其实此而言本无正确答案,取决于看问题的角度。在我们强调要依据数据说话的时候,可以适当批判“大道无术”,这个时候我们必须大谈“大道有术”。但是我们要清楚地认识到,大道无术,这种说法非常中国化。老子的“大方无隅;大器晚(一作免,似更有道理)成;大音希声;大象无形”不必说了,大道无术的说法也有一种士先器识而后文艺,从心所欲不逾矩的味道。我们当然也记得巴金喜欢说的“高的技巧是无技巧”。
这里要说明的是,在这里讲的大道无术的“术”主要是讲心术。有些身外之学的技术,如各种职业技术、军事技术、高科技术、体育技术、艺术技巧、医术特别是外科手术方面的技术也包括软件度量技术、SPC技术当然是不能无的。有人说中国文化的一大缺陷不是对于上述技术的过于重视而是过于忽略(所以有时候批判大道无术也不无道理,但是对于“重视”大道无术做到了吗???)。中国人没有统一的宗教信仰,但是有概念崇拜。人们相信有那么一种大道,掌握了了百战不殆了不战而胜了。我们谈论大道无术的时候,对这种玄秘之学还是要警惕的。
别总以为只有中国人才这样,在在有相对单一宗教信仰的西方也存在这样的概念崇拜。那是“银弹 (Silver Bullet)”--在所有恐怖民间传说的妖怪中,可怕的是人狼,因为它们可以完全出乎意料地从熟悉的面孔变成可怕的怪物。为了对付人狼,我们在寻找可以消灭它们的银弹。