编者按:商业科技的复杂性可以构筑从业人员的职业地位,当然也可以在一夜之间毁掉它。
高调的商业应用光鲜外表下包含着无数需要重视的细节,其中IT细节尤为关键。没有对于技术能力的充分估计,缺乏足够的预先风险测试,没有完善的灾备方案,不考虑如何对待正常用户和恶意用户等都可能导致重大的商业灾难。
在我们这座商业科技耻辱殿堂上,除了麦当劳公司1.7亿美元的企业资源计划(ERP)项目的惨败;电力公司的软件缺陷导致加拿大和美国东北地区的大规模断电以外,还有更多案例。阅读了解这些黯淡的细节,能够帮助企业找到避免类似惨剧的出路。
贪多嚼不烂
麦当劳公司(McDonald,下称麦当劳)的这个项目规模和覆盖范围极广,以致最终变成了不可能完成的任务。2001年的时候,快餐连锁业巨头打算开展一个项目,建立一个连接总部和遍布各地餐厅的企业内部网(Intranet),以提供实时的运营信息。在这个代号为“创新”(Innovate)的项目里,公司在伊利诺伊州奥克布鲁克(Oak Brook)总部的经理能实时了解在佛罗里达州奥兰多(Orlando)特许经营店里的销售情况正在变缓,或者伦敦餐厅里的烤架温度不够热。麦当劳一直对 “创新”项目守口如瓶——该公司对本文的采访不予回应——但它的覆盖范围之广勿庸置疑。根据受麦当劳聘用负责早期策划和技术选型的顾问公司Mpower公司的白皮书资料,这个计划的目标是创立“一个逐渐深入到每一家麦当劳店铺的全球ERP应用。”换而言之,这包括超过120个国家里的3万多家餐厅。这样的工程真的易如反掌吗?
根据麦当劳提交给美国证交会的季度报告,他们在顾问和初始实施阶段花费了1.7亿美元之后才意识到这个项目实在过于庞大。麦当劳终于在2003年给美国证交会的财物报告中宣判了“创新”项目的死刑,项目被注销,管理层决定终止这个长期技术项目。
财务报表中的补充揭示了一条绝大多数有经验的IT项目经理从一开始就能给麦当劳提出的忠告:企图在上千家门店之间创建传递实时信息的全球网络,它们中有的还缺乏基础网络建设,注定会失败。财务报告显示,“尽管这个终止项目原本的目标是长期效益,但在当前环境下,并不是最好的资金使用方式,因为预期在几年内整个系统的开销将超过10亿美元。”
这场需要耗费上10亿美元、过于超前的IT项目重蹈了McDLT汉堡(20世纪80年代一种双层包装、把热食与冷食两部分分开置放汉堡)的覆辙:因为大多数人一次吃不掉那么大的汉堡。
谨慎对待错误
有时候技术灾难的影响远远不止于出问题的公司本身。美国俄亥俄州的第一能源公司(First Energy,下称第一能源)为450万客户提供电力,3年前就因为一个与电源失效有关的软件缺陷,使美国东北部和部分加拿大地区大面积陷于停电。
这次停电的原因是俄亥俄州砍伐树木切断了平衡东北电网出入电流的电线引起的连锁反应。但真正的问题在第一能源的计算机部门,它的IT经理们好像忘了一个基本操作原则:无论引入多少自动化处理或员工经验多么的丰富,应用程序都必须遵从必要的IT管理协议,如IT基础设施库(Information Technology Infrastructure Library,ITIL)的规定。
如果第一能源的软件报警系统能正确地对不稳定情况向工程人员提出报警的话,停电原本可以局限在很小范围内。
报警系统的关键在于:当你发现系统不工作的时候,一切已经太晚了。“不稳定的状况原本不会直接导致停电,但是第一能源没能及时做出响应是事故的主要原因。”北美电力可靠性协会(North America Electric Reliability Council)负责基础架构安全的经理史丹·约翰逊(Stan Johnson)总结道。
2003年8月13日下午2点左右,该公司的IT人员发现运行General Electric XA/21管理系统的服务器上的报警模块停止了工作。工作人员重启机器试图修复该问题,但服务器重启后,报警模块仍然无法正常工作。通用电气公司(GE,下称通用电气)在其后的一篇声明里表示,这是因为一个软件代码错误引起报警程序进入死循环而无法重新在线工作。而第一能源在俄亥俄工厂控制室里的操作人员没意识到这条防御线已失效,因为他们的IT架构在重启之后不会校验相关的系统是否都已恢复工作。同时,不稳定的电力状态在迅速恶化。
因为忽略了IT管理里最重要的原则,员工也不愿意与终端用户确认检查,确保他们的关键系统已能完全正常使用。IT基础设施库尤其建议IT部门建立一个受影响用户的确认列表,在重启关键性系统后,管理员必须与他们一一联系。在北美电力可靠协会关于这次停电的最后一份报告里,它指责第一能源的IT部门缺乏沟通意识。
第一能源谢绝关于此事件的采访,但约翰逊表示协会的最后一份报告里该公司已遵从了必要的建议。尤其是,协会敦促第一能源建立必要的规章,书面的管理测试、部署和备份关键硬件或软件系统准则,包括执行系统升级、补丁包管理、备份恢复和维护的方法。它还建议该公司必须建立一套系统发生故障时必须明确的交流规程。事实上,这些良好的建议适用于所有的公司。