|||
我们从信息技术系统失败中学到了什么?(151123)
闵应骅
十年前,IEEE Spectrum发表Why Software Fails谈软件项目的失败,后来又开启Risk Factor的博客,跟踪大小技术的失败。本人在2010年发表了软件开发项目失败的原因(100110),那是根据《ACM通讯》上面的文章写的。最近IEEE Spectrum网站上用历史事例图示了我们从十年的IT(信息技术)系统失败所能授予的五堂课(详见http://spectrum.ieee.org/static/lessons-from-a-decade-of-it-failures)。这里说的系统失败,包括由于技术原因的系统失效、项目管理失败、项目中途停止等各种情况。请看下图,并分别解释如下。
第一课:IT系统故障的惊人后果
几十年来,这世界已经越来越依赖大型IT系统,IT系统故障浪费金钱和时间、扰乱了人们的生活。虽然我们早就注意到这一点,但我们仍然没有学会如何防止和避免这些事故的发生。请看下面这张图。
这张图列出了10年来各地发生的IT系统故障的情况。大圈表示大故障,小圈表示小故障,大小可以按经济损失大小来分,也可以按影响时间长短分,也可以按受影响的人数来分。影响大小可以分为若干档。分类可以按地区、故障类型、组织类型、政府类型、政府部委或产业类型来分。可惜上图是截下来的,提供不了这么多链接。挑一个美国发生的大圈吧!点击大圈告诉你,2009年6月美国国防部正式结束未来战斗系统现代化项目,该系统从2003年开始,已经花掉180亿美元。英国的国家电子健康档案系统2012年叫停,已经花掉110亿英镑。2011年4月韩国NH银行计算机故障,10天3000万用户受到影响。2008年12月由于网络问题关闭了多伦多证券交易所。2008年3月伦敦希尔斯机场T5行李系统故障,10天,636个航班取消,影响14万旅客。如此等等。
纵观这些故障,我们可以看到:
l IT系统的现代化是困难的、昂贵的。
l 数字化医疗保健记录是困难的、昂贵的。
l 银行在依靠不可靠的技术。
l 即使是短暂的航行旅行故障也是昂贵的。
第二课:过分复杂化和不透明
想把多个系统合而为一,常常一个都得不到。因为维护起来非常困难。许多政府部门企图把许多传统系统的功能组合在一起,形成很难理解、实现很差的系统,限制了运行的有效性。这事说起来容易,做起来难,因为给传统系统加一个东西带来新的挑战,甚至落入陷阱。
上图显示组合多少传统系统,花了多少钱的信息,开始点为绿色,结束点为红色,正在进行用黄色。看左边的一根黑竖线,美国海军的企业资源规划项目把原来96个系统合而为一,原计划6.27亿美元,结果多花了3年,3亿美元,还不包括10亿美元更新10年前的4个程序。国防部监察长强烈批评遗漏监管千亿军事装备的关键功能。IT系统的现代化要花很多钱,时间拖长,而且常常减少功能。一个最明显的例子是美国空军远征战斗保证系统现代化项目的失败。空军审计团队注意到,这10亿美元损失主要原因是不知道想要取代的系统一共有多少,各地估计不同,有的地方说要取代175个传统系统,而有的地方说是300,该项目负责人在结束项目时说是214。心中无数,成功的机会当然很少。该文对每一个故障,都链接几十页的分析总结。
第三课:失败项目的全过程
IT项目很少有一上来就失败的,而是像滚雪球一样,问题越滚越大。成功与否不是在哪一天,而是看到:结束时间不断拖延,经费不断增加。
我们以英国FiReControl系统为例(如上图),该系统是想用网络联上46个局部控制室,达到9个目的:建造地区控制中心,用全国的计算机系统处理呼叫、调动设备、管理事故等。从2004年开始,进展不理想。又重新计划从2007年10开始,计划到2009年10月结束,花1.2亿英镑。到2007年6月发现不够,最后订2011年底完成,需2亿英镑。到2008年7月,发现关键元件失效,计划拖到2012年初,4亿英镑。到2010年12月,由于管理混乱、计划不周、关系紧张,该项目结束,经费已花掉2.5亿英镑。按他们的说法,估计要6.35亿才能完成。这样的马拉松计划政府无法继续支持。对于其他5个计划都有类似描述。
第四课:为IT系统失效逃避责任
IT系统失效,总要找原因,也许是人为因素、草率的编程、不充分的测试、不懂可信性或者不正确的假定,常常是把责任推给无生命、不会说话的技术。本网站列出10个故障的具体原因。譬如,2005年11月日本证券交易所计算机系统故障使交易所停业一天。技术上讲,其原因是一个新装的由富士通开发的交易软件只支持高额交易。每个故障都有不同的具体原因。对于每一个原因,列出简单解释,和链接的文献。点到那篇文献,你就可以去了解详情。
第五课:失败的纪念碑
上图为10年来每一次大事故列了一块墓碑。和原来对危险因素的分析一样,不外乎是不实际或者难成文化的项目目的、不科学地定义系统需求、无边的系统复杂性、设计得不好的人机界面、粗心的开发实践、很差的项目管理、恶劣的持股人政策、过激的商业压力等等。点击最近的一个吧!2014年10月新泽西州取消了一个2.27亿美元的福利事业计算机系统项目。2009年计划是1.9亿,包括与HP的8300万的合同,2014年7月完成。项目取消时估计预算到2.27亿,已付HP 1700万,要退回700万。州政府已经花了1.07亿,但拒绝给出精确数字。
我们从信息系统的失败中可以学到很多东西,尽可能做到吃一堑长一智。但是,十年前就提醒,这十年照样犯。如果把经验教训装到自己兜里,别人不知道,就更不可能成为人类共同的财富。我看这篇文章另一个最大的感受是网络媒体多么强大。如果要用一篇文章介绍这40多次大大小小的事故,恐怕要写一本几十万字的书,而且大多数读者可能没有那个耐心读完。读者所关心的也许是与自己关系最密切的事例。而这篇网络文章是立体式的,提纲挈领,多树结构,列出五堂课,每一堂又列出许多选择,看你想看哪一条。进入那一条,先列简单的解释,然后可以链接到各种详细信息。读者既可以了解面上的大概,又可以深入到一个点了解详情。这显示了立体媒体相对于平面媒体的优越性,对于这种类型的分析总结特别合适。当然,对于逻辑性非常强的科学论文,必须从头到尾仔细阅读,没看懂前面的,你就看不懂后面的,这样的论文还是需要平面媒体。读者如果有兴趣,不妨点开http://spectrum.ieee.org/static/lessons-from-a-decade-of-it-failures试试看。
Archiver|手机版|科学网 ( 京ICP备07017567号-12 )
GMT+8, 2024-11-20 11:47
Powered by ScienceNet.cn
Copyright © 2007- 中国科学报社