mistwan.github.io

economist,经济学人,经济学人中英文翻译

Follow me on GitHub

Schumpeter

熊彼特

When bits bite

食人小比特

Why companies struggle with recalcitrant IT

企业为何难以应付难搞的IT

IT IS SUPPOSED to be the “Tesla killer”. Volkswagen’s new ID.3 is the firm’s first mass-produced all-electric car—and the first step in the German carmaker’s attempts to reinvent itself for an electrified world. That makes it perhaps the most important model since the original Golf, launched in 1976. The ID.3 is also late. Mechanically, the car is hunky-dory. But some software widgets that are a big selling point these days—rumoured to include smartphone connectivity and augmented-reality parking assistance—may be missing at first, only to be added later. Originally set for this summer, the launch has been pushed back until at least September.

人们预期它是“特斯拉杀手”。全新ID.3是大众首款量产纯电动汽车,也是这家德国汽车制造商试图在电气化世界中重塑自我的第一步。因此,它或许是继1976年首次推出高尔夫之后大众最重要的车型。ID.3同样推迟了上市。在机械层面,这款车无可挑剔。但一些现如今算是大卖点的软件功能——据传包括智能手机连接和增强现实停车辅助——可能一开始并不会有,日后才会添加进去。ID.3原定于今年夏天发布,现在已至少推迟到9月份。

VW is not the only big company struggling to make its computers work. Last year British banks were hauled over the coals by regulators for online outages and botched IT upgrades that left millions of customers unable to make or receive payments. Some problems are much more serious. Boeing’s 737 MAX aircraft were grounded in 2019 after two fatal crashes caused partly by a software flaw. Investigators have since found lesser bugs. Airlines are, for instance, now advised to turn the plane off and on again every 51 days, to stop its computers displaying false data in mid-flight. A similar problem found in 2017 in some aeroplanes made by Airbus, Boeing’s European rival, prompted the European Union Aviation Safety Agency to require that such aircraft be rebooted at least every 149 hours.

大众并不是唯一一家难以让自己的电脑顺畅运转起来的大公司。去年,英国的银行因网络中断和IT升级一团糟导致数百万客户无法支付或接收款项,受到监管机构的严厉指责。有些问题的后果要严重得多。波音737 MAX飞机此前因两起致命事故于2019年停飞,事故的部分原因是软件缺陷。自那以后,调查人员发现漏洞减少了。例如,航空公司现在被建议每隔50天重启一次飞机,以防止计算机在飞行中途显示错误的数据。2017年,波音的欧洲竞争对手空客制造的部分飞机上也发现了类似的问题,这促使欧盟航空安全局要求此类飞机至少每149个小时重启一次。

Blame for companies’IT woes often ends up in the boardroom. Sometimes that is fair; Dennis Muilenberg was rightly forced to resign as Boeing’s CEO after the tragic 737 max disasters. But not always. For software is hard—and hard to keep up with. And the employees expected to produce it are often the products of a discipline that is in many ways oddly premodern. When software is “eating the world”—Silicon Valley speak for a situation where most firms are to a greater or lesser extent software companies—that matters.

对企业IT弊病的指责最终往往会落到董事会头上。有时这很公道:737 MAX的惨痛灾难发生后,丹尼斯·米伦伯格(Dennis Muilenberg)理所应当地被迫辞去了波音CEO一职。但有时这也有失公允,因为软件很难做,要跟上软件发展的步伐也很难。而培养软件开发人员的学科在许多方面往往又莫名地很“前现代”。在软件正在“蚕食世界”的当下——正如硅谷所示,大多数公司或多或少都是软件公司——这是个紧要的问题。

Start with the computer code itself. Programming requires a mix of hyper-literalness and creativity. Tiny errors, like a misplaced punctuation mark, can completely change how a system behaves. An industry rule of thumb is that, depending on how carefully they work, programmers make between 0.5 and 50 errors in every 1,000 lines of code they write. Because cars and aircraft contain tens of millions of lines, the chances of an error-free system are in effect zero. Even when bugs do not lead to catastrophe, they put a constant drag on a firm’s productivity. A survey commissioned by Stripe, a digital-payments processor, suggested the average developer spends 21 hours a week fixing old or bad code.

先来看计算机代码本身。编程需要将极度严谨和创造性相结合。细微的错误(比如一个放错位置的标点符号)也可能会完全改变一个系统的行为。业内有一个经验法则:根据程序员工作仔细程度的不同,他们每写1000行代码会犯0.5到50个错误。由于汽车和飞机包含上千万行代码,一个无错误系统存在的可能性实际为零。即便错误不会导致灾难,也会持续拖累企业的生产率。处理数字支付的公司Stripe委托开展的一项调查显示,开发人员平均每周要花21个小时修补过时或蹩脚的代码。

The inherent difficulty of programming is made worse by the shortcomings of software engineering as a profession. These are laid out in a book, “The Problem With Software: Why Smart Engineers Write Bad Code”. The author, Adam Barr, spent 20 years as a developer for Microsoft, a software giant. Many coders, he notes, are at least partly self-taught. That leads to bad habits, which software-engineering courses fail to correct. There is too little communication between academia and industry, and no real agreement on what to teach or what habits to instil. The result, argues Mr Barr, is a field in which folklore and fads too often take the place of professional standards.

软件工程这个职业的弊病更是让编程固有的麻烦雪上加霜。这些都在《软件困局:为什么聪明的程序员会写出糟糕的代码》(The Problem With Software: Why Smart Engineers Write Bad Code)一书中得到了阐释。作者亚当·巴尔(Adam Barr)在软件巨头微软做了20年的开发员。他指出,许多程序员至少在一定程度上是自学的。这导致他们养成了各种坏习惯,而软件工程课程又未能纠正他们。学术界和业界交流太少,在应该教什么或培养什么习惯上也没达成真正的共识。巴尔认为,结果就是在这个领域里专业标准总是被坊间习俗和一时的风潮取代。

To illustrate the field’s shaky foundations, Mr Barr points to the practice, popular with technology firms like Google or Apple, of giving job candidates a programming problem to solve on a whiteboard. Few other fields behave that way, because they assume that, by dint of having graduated, applicants have already achieved a basic level of competence. Doctors do not expect anatomy quizzes before being hired. Mechanical engineers are not required to jot down Newton’s laws of motion to prove their bona fides.

巴尔以一种做法为例来说明这个领域根基不稳。这种操作在谷歌或苹果这样的科技公司中很流行,就是抛出一个编程方面的问题,让应聘者在白板上解决。其他领域极少如此行事,因为它们认为,求职者既然能毕业,说明已经达到了基本的能力水平。医生在受聘前不用接受解剖学测验,机械工程师也无需用写下牛顿运动定律来证明自己货真价实。

All those problems are compounded by software engineering’s breathless rate of change. Even when a system works, it rapidly becomes obsolete. The woes of British banks are largely the result of trying to maintain such “legacy” systems, written by long-departed programmers (often outsourced) in half-forgotten computer languages to satisfy criteria no one can quite remember. Coders under pressure to add nifty new features often cut corners, storing up problems for the (ever less distant) future.

所有这些问题又因为软件工程惊人的变化速度而更加棘手。即使一个系统奏效,也会迅速过时。英国银行的灾祸在很大程度上就是试图维持这种“遗留”系统的运转所致。这些系统是早已离开的程序员(通常是外包的)用几乎被遗忘的计算机语言编写的,满足的也是已经没人记得清的标准。迫于压力要添加实用新功能的程序员常常会图省事而走捷径,这就为未来埋下了一颗又一颗雷,危险日益逼近。

The result, says one expert with decades of experience, is that shiny new IT systems can rapidly devolve into rickety, half-understood contraptions held together with gaffer tape and a prayer. Eventually the costs become too great to ignore, and companies must upgrade their systems. But that is the moment of maximum danger, for the new software must do everything that the half-understood old one does, and more. It is, to repeat a common but apposite analogy, like rebuilding an aircraft in flight.

一位有着几十年经验的专家说,其结果就是簇新的IT系统可能会飞速退化为摇摇欲坠、让人半懂不懂的奇怪装置,只能修修补补,祈祷它别垮掉。最终成本会高到不容忽视的地步,企业因而必须升级自己的系统。但这就到了最危险的时刻,因为新软件必须具备那些让人似懂非懂的旧软件的一切功能,还要做更多。借用一个常见但恰当的类比,这就像一架飞机正在飞行,却得重新装配它。

A bug’s life

VW is doing its best to iron out the kinks with the ID.3’s snazzy features. The firm wants to bring most software development back in-house, and has spent €7bn ($8bn) on a shiny new “digital unit”. That is probably a good idea. However, as Mr Barr argues, the structural problems with writing software mean that spending money on it does not, by itself, guarantee success. One great advantage possessed by startups like Tesla or Monzo, a newish online bank in Britain, is that their programmers are handed a blank sheet of paper. With no legacy systems to maintain, and fewer old bugs to root out, their software is more robust and developers can spend more time on features that customers want.

“虫虫”危机

大众正在竭尽全力理顺ID.3各种新潮功能的技术问题。该公司希望把大部分软件开发工作都转回公司内部,并已投入70亿欧元(80亿美元)成立了一个崭新的“数字部门”。这很可能是个好主意。然而正如巴尔所言,由于软件编写方面的结构性问题,在软件上砸钱这件事本身并不能保证成功。像特斯拉或英国新兴网络银行Monzo这样的创业公司具备一个巨大的优势,就是它们交给程序员的是一张白纸。没有遗留系统要维护,需根除的旧缺陷也更少,它们的软件因而更强健,开发人员也就能花更多时间琢磨客户想要的功能。

If that is cold comfort for older companies that have no easy way of starting afresh, computing greybeards offer reassurance—after a fashion. The startups’ advantages will, they predict, prove temporary. Bugs will creep in. Bodge jobs will go unfixed. Developers will leave, taking knowledge with them. Today’s feisty usurpers will become tomorrow’s clumsy incumbents, held back by their antiquated, unreliable IT—and ripe for disruption in turn. ■

如果这让那些无法轻易重头来过的老企业感到心灰意冷,那么它们倒是能从计算领域的老手那里勉强得到些宽慰。这些人预测,创业公司的优势将被证明是暂时的。漏洞会慢慢冒头。粗制滥造的活计将修无可修。开发者会离职,把知识也带走。今天争强好胜的篡位者将成为明天笨手笨脚的在位者,受制于过时而又不可靠的IT——到那时,便又是颠覆的好时机。