最近,有件事闹得挺大——轰动全球的丰田汽车召回门!
这件事还没完,目前正在处理和发酵中,而有关的报道、分析和评论已经铺天盖地了。我想,它带给大多数专业人士的,首先可能是震惊和震撼,因为众所周知,丰田及其生产、经验和管理模式(如 TPS, Toyota Production System; Toyota Way; Lean, 精益制造 等等)曾经是全球汽车制造行业中最著名的典范之一,怎么就出事了呢?
大家都在反思。我相信,有关这件事的方方面面不久就会被写入各类 MBA、EMBA ... 教材,作为质量管理、危机管理、风险管理 ... 的经典案例。
过去 40 年来,软件业一直在向建筑、制造、机械等实体工程行业学习。所以,当我刚听说这次的丰田汽车召回事件后,马上又联想到了软件。如果这件事发生在我们软件行业会怎么样?
软件业的福利
这就相当于你的系统卖出去了 800 万套,现在系统的一个关键部件(Component)出了问题(随机性的 Fatal Error)需要更换,怎么办?
对,我猜你会说,这对我们软件业来说,太简单了,小 case!通过已事先安装在客户处的客户端软件自动下载、安装和更新 patch,大不了还可以让用户自己到网站上下载。用不了半个小时,在家就可以全部搞定。
可是,这对丰田及其客户们来说,麻烦就大了。
的确,过去几十年来,IT/软件用户们已经习惯了软件的 Bugs,现实世界中没有零缺陷的软件!定期或不定期的安装补丁或年度发布、维修升级包等等,这是 routine,而且由于技术进步,现在已经完全可以做到静默自动化,无需用户过问。
而汽车用户去更换一个实体的零部件,要麻烦得多。
为什么软件行业的开发商和用户们可以享受到实体行业所没有的福利?根本的原因,就在于一个是实体,一个是虚拟。Every software is virtual。想到这里,我不仅为自己从事的是软件业感到些许庆幸。
软件架构模式 - Automatic Update
目前,大家所用的许多主流软件都已经具备了自动更新功能,有些可不需要关闭当前程序的运行,直接下载、替换组件。2000 年之前好像还没有这样的功能,应该是这几年发展起来的。
自动更新(Automatic Update)其实是一种架构模式,被许多软件公司所广泛采用的成熟技术。关键是,你在设计开发产品或系统的时候,就要预先作出这样的设计。如果没有事先提供这样的机制,等到几万个点部署完毕,再来考虑系统维护就惨了。自动更新也可以说是一种软件产品和系统的基础设施。
当然,如果做到完全不需要更新客户端的软件,0 Update,那是最理想的,成本也最小。例如,从计算机早期阶段就开始有的主机带哑终端模式。这点也可以解释,为什么近 15 年来 Web 模式会超过传统的 C/S 模式,变得如此流行。
质量神话的破灭
作为享誉天下的 TPS、Lean Manufacturing 的发源地,丰田,怎么会出如此严重的质量问题呢?这让很多人感到不可思议。
这说明了什么?
我的体会是,再完美无缺的优秀理论和方法,也需要一个个个体——人——来执行、操作和实践,而只要是人,都可能犯错误。同样一套理论和方法,换了一些人来执行,或者同样的人在不同的情况下,结果也可能有显著差别。
而软件玩得就是概念。我们 IT/软件行业从来都不缺各种优秀的理论和方法,比如 ISO 9001, CMM, CMMI, TQM, 6sigma, ITIL, Agile, PMBOK, SWEBOK, Lean, SPICE, PRINCE, ISO 20000, IPD ... 各个体系,各个版本,各个门派,可谓眼花缭乱,数不胜数。
究竟要掌握多少种理论和方法,挂满多少奖牌和证书,我们才能成为世界冠军呢?
丰田依靠丰田文化、TPS 和 Lean 终于超越通用,成为世界最赚钱的汽车企业,可惜还不到一年,就被扯了下来。
自 2001 年兴起的敏捷运动,给了我们一个很好的启示:重视人,而不是术!
所以,不要迷信任何理论和方法,提升人的素质和能力才更重要。
构件与重用
...
(未完待续)
对这次丰田事件您怎么看,它对 IT/软件业有哪些启示?欢迎发表评论和看法。