你不必非得在派对上才能看到这种现象,但我经常在那些重视聪明才智和机敏、却不那么看重实际知识或严谨思维的社交圈子的派对上注意到一件奇怪的事。人们常常讨论一些标准的时髦话题(我最近在多个派对上听到的有:如何打造一个能与谷歌搜索竞争的搜索引擎,以及如何解决高交通建设成本的问题),然后解释为什么现在从事该领域的人做得不对,接着说明他们会怎么做。我偶尔也会遇到符合这种模式的有趣对话(对方是该领域有深厚专业知识、多年来一直致力于改变该领域的人),但更常见的情况是,某个对某个领域只有鸡尾酒会级别了解的人,会提出他们关于如何改进该领域的想法。

在那些肤浅的伪技术讨论主导的派对上,问人们为什么认为自己的解决方案能解决该领域的重要问题,已经成了我的一个爱好。在我有一定了解的领域,当我追问细节时,我发现人们通常不知道要解决他们试图应对的问题需要先解决哪些子问题,这使得他们的解决方案毫无希望(https://danluu.com/sounds-easy/)。在多次经历这种情况后,我的看法是,这通常的根源在于,许多对某个话题只有肤浅了解的人,会假设这个话题的复杂程度和他们所了解的一样,而没有意识到只了解一点皮毛意味着他们错过了该话题的全部复杂性。

由于我经常参加有程序员的派对,这意味着我常听到程序员复述他们对另一个领域的鸡尾酒会级别理解(上面的搜索引擎例子也不例外)。如果你想在网上找类似的评论样本,经常可以在程序员讨论“传统”工程领域时看到。我喜欢的一个例子是希尔·韦恩的这条推特讨论串,他讨论了不了解传统工程的程序员常常对传统工程是什么样有错误的想法,许多回复来自对传统工程知之甚少甚至一无所知的程序员,他们带着自己的误解回复希尔。当希尔完成他的跨界项目时,他采访了既在传统工程领域工作过也在软件领域工作过的人,结果收到了更多这样的评论。即使人们被警告说对某个领域的幼稚看法很可能是错误的,许多人还是忍不住,会立刻回复他们对一个基本不了解的领域的看法。

总之,在跨界项目中,希尔比较了实际在多个领域工作过的人的看法与流行程序员对传统工程的看法。希尔给出的众多例子之一是,当人们谈论桥梁建设时,他指出程序员会说诸如

真正的工程师世界的可预测性令人羡慕。但我们的世界总是处于变化之中,物理定律每周都在改变。如果我们不能迅速适应意外情况,那么唯一可预见的事件就是我们自己的毁灭。

以及

没有人会在桥梁施工中途考虑移动起点或终点。

但希勒尔采访了一位土木工程师,他说他们确实不得不移动一座桥!当然,土木工程师移动桥梁的频率远不及程序员应对软件变更的频率,但如果你与真正在职的土木工程师交流,会发现许多土木工程师经常在项目开工后处理需求变更,这与程序员在工作中面临的情况并无本质区别。那些在两个领域都工作过的人,或者至少与另一个领域的人交流过的人,往往认为两个领域工程师所面临的挑战都很复杂;而那些仅凭鸡尾酒会上的浅薄理解就妄下论断的人,则常常声称自己不在的那个领域很简单,不像自己的领域那样困难。

我经常听到程序员说,编程就像“在飞机飞行时建造飞机”,言下之意是编程比设计和建造飞机更难,因为设计和建造飞机的人可以在飞机起飞前完成工作1。但当然,设计飞机的人同样可以轻松地说:“天哪,如果我能建造出具有四个九可用性的飞机,而且我的飞机每周可以坠毁一分钟、导致所有乘客死亡,那我的工作就太容易了。”当然,不同类型项目和不同领域的约束条件使得不同的事情变得困难,但人们似乎往往难以看到其他领域所拥有而自己领域所没有的约束。人们可能会认为,理解自己领域比外人天真想象的要复杂,这有助于他们理解其他领域也可能存在隐藏的复杂性,但实际情况似乎并非如此。

如果我们看看希勒尔引用的那句话的其余部分(来自Stack Exchange问题的最佳及被采纳答案),作者继续说道:

当你事先确切知道需要预测什么,而不是进行猜测并应对不断的变化时,做出准确的预测要容易得多。

绝大多数桥梁都使用极其成熟可靠的材料、架构和技术。一位古罗马工程师如果穿越两千年到未来,大致也能认出现代建筑工地上在做什么。当然会有差异,但你仍然在建造用于承重的拱门,仍然在使用许多相同的材料等等。而另一方面,大多数正在构建的软件……

这是人们在讨论鸡尾酒会式观点时常犯的典型错误。当那些十年没写过代码、对项目现状一无所知的高管,要求对正在进行的项目进行不合理变更时,程序员们确实会合理抱怨——但这与政客们从未做过土木工程师却要求大型土木工程项目变更的情况相比,其实并无本质区别,甚至更可能合理。平均而言,编程项目可能比土木工程项目面临更频繁或更大幅度的变更,但我猜测,领域内部的差异至少与领域间的差异一样大。

当然,只有那些从未在物理世界从事过严肃工程工作的人,才会说出这样的话:“真正工程师世界的可预测性令人羡慕。但我们的世界总在变化,物理定律每周都在改变”,并认为物理定律的(相对)固定性意味着物理工作是可预测的。当我担任硬件工程师时,项目中很大一部分精力和复杂性都用于应对物理不确定性,土木工程也不例外——如果说有区别,土木工程师在大型项目中应对物理不确定性的工具甚至更差,导致不确定性程度更高,且预防因不确定性导致的延误的能力更弱。

如果我们观察罗马工程甚至300年前的工程与现代工程的差异,一个主要来源是我们对物理世界不确定性的理解大大加深。过去,结构在建成后不久,在没有异常条件或刺激的情况下失效(例如建筑倒塌,或因铁轨建造不当导致的火车事故)并不罕见。如今,这类事件在美国或加拿大已极为罕见,一旦发生便会成为重大新闻。这种理解也让我们能够在过去被认为难以甚至不可能建造中等规模结构的区域,建造出巨型建筑。

例如,如果你观察温哥华地区三角洲(Delta、Richmond,以及延伸至霍普方向的大片土地)上的大型建筑项目,就会发现,直到相对较近的时期,我们才掌握了在这种地基上可靠建造大型结构(如较高建筑物)所需的知识——而这正是现代土木工程中罗马工程师无法理解的众多领域之一。这些知识大多来自岩土工程,它是土木工程的一个子领域(也有人认为它本身就是一个独立领域,或地质工程的一个子领域),涉及地基、土力学、岩石力学、地质学、水文学等方方面面。岩土工程的一个基本理念是,你可以运用力学来推理分析土壤。首次将力学应用于土壤(岩土工程的基础部分)的记录可追溯到1773年,而现代意义上的岩土工程通常被认为始于1925年。尽管罗马工程师完成了许多令人惊叹的工程,但他们所依赖的心智模型无法理解现代土木工程的诸多内容

自然,这些知识若要改变我们能建造的东西,就必须改变我们建造的方式。如果我们观察一个利用现代知识在温哥华可压缩三角洲土壤上施工的工地,从实际时间来看,它看起来就像是在工地上堆了一堆沙子(预压)。虽然罗马工程师知道沙子是什么,但他们无法理解如何确定所需沙子的量以及需要放置多久(在某些情况下,罗马人会使用桩基或筏基,而今天我们会用预压;但在许多情况下,他们对预压如今解决的问题束手无策)。

岩土工程及其产生的这堆沙子(预压)只是数十个子领域之一。在现代大型土木工程项目中,你需要掌握这些领域的专业知识,而罗马工程师需要大量学习才能真正理解。

回到我在社交场合听到的解决方案,常见的一类是关于如何解决高昂的建筑成本和缓慢的施工进度。人们会抛出一些时髦的观点,解释为什么成本如此之高、项目为何超期等等。有时,这些评论与参与项目的实际工程师的说法相似,但更多时候,原因大相径庭。当原因相同时,它们似乎只是巧合地正确,因为这些人并不理解权衡工程取舍所需的知识体系2

当然,就像鸡尾酒会上的理论家一样,该领域的土木工程师也认为现代建筑存在浪费,但他们提出的理由往往与我在派对上听到的截然不同3。人们很容易因为不了解问题、假设问题人为简单化,然后针对想象出的问题提出解决方案,从而想出鸡尾酒会式的解决办法。但要理解大型建筑项目所需的数十个相互作用的工程子领域之间的权衡,并就这些权衡应该如何调整、以及如何激励工程师和政策制定者改变权衡方向展开真正相关的讨论,则要困难得多。

一项被广泛引用的研究探讨了人们对事物运作方式持有极其简化和错误模型的普遍现象,即丽贝卡·劳森关于人们对自行车工作原理理解的研究,其中指出:

近期研究表明,人们往往高估自己解释事物运作方式的能力。罗森布利特和凯尔(2002)发现,人们高估了自己对复杂现象的理解。这种解释深度的错觉并不仅仅是普遍过度自信所致;它特指对因果复杂系统的理解,例如人工制品(弩、缝纫机、微芯片)和自然现象(潮汐、彩虹),相对于其他知识领域,如事实(首都名称)、程序(烤蛋糕)或叙事(电影情节)。

以及

如果非专家无法解释齿轮的工作原理或自行车前叉角度的关键性,这并不令人意外。事实上,即使是物理学家也对看似简单的问题存在分歧,比如自行车为何能保持稳定(琼斯,1970;基什内尔,1980)以及如何转向(法扬斯,2000)。本结果令人震惊的是,如此多的人对自行车如何运作几乎一无所知。

在该研究的“实验2”中,参与者被要求画出一辆能正常工作的自行车,并重点表现使其运作的机制(而非让图画美观),结果94名参与者中有60人至少犯了一个严重错误,导致图画甚至不像一辆能工作的自行车。如果我们看一个大型现实土木工程项目,一个相关的子领域,比如岩土工程,其复杂性比自行车高出多个数量级,而且可以相当肯定地猜测,大约百分之零的普通人(或罗马工程师)能粗略勾勒出相关的活动部件。

举一个非土木工程的例子,杰米·布兰登引用了吉姆·曼齐的《失控》中的这段摘录,这是对我在派对上经常听到的一个“巧妙”说法的反驳:

选择悖论是一个广为流传的寓言故事,源自一项实验:超市货架上摆放更多种类的果酱,反而导致购买量下降。给出的解释是,选择会带来压力,因此面对过多果酱种类时,一些人干脆直接离开,空手而归。这个实验在新闻和媒体中被反复引用,通常伴随着“科学家发现选择对你有害”之类的描述。但如果你走进一家大型超市,会看到大约1200万种果酱。难道他们没听说过果酱实验吗?吉姆·曼齐在《失控》(链接)中写道:

首先,请注意所有推论都建立在总共35罐果酱的购买量上。其次,如果果酱实验的结果有效,并且具有作为经济或社会政策基础所需的普遍适用性,那么这意味着许多商店可以削减75%的产品,从而使销售额增长900%。这将是一个相当惊人的结果,也表明测量可能存在问题。

……原实验的研究人员本身对普遍性的明确主张十分谨慎,并且大量精力已投入到寻找“选择过载”持续发生的具体条件上。但通俗化者将基于一家商店、两个周六、一次优惠券加陈列促销的结论,层层放大:先是推断该商店果酱产品选择的影响,再推广到全美所有杂货店的果酱产品选择,进而延伸到所有零售产品在任何商店中的选择影响,最终得出关于选择对社会益处的相当宏大的论断。然而,正如我们所看到的,在不同情境下对这类主张进行50次实验测试,给这种断言泼了一大盆冷水。

作为一个实际商业案例,即使简化因果机制以形成有用的预测规则,也不太可能像“将QwikMart门店更名为FastMart会导致销售额上升”这样简单,而更可能类似于“将位于高收入街区、交通繁忙道路上的QwikMart门店更名为FastMart,且门店因粉刷关闭不超过两天,会导致销售额上升”。在开始测试前,我们极不可能知晓所有潜在的隐藏条件,并设计执行一次测试就发现这种充满条件限制的规则。

此外,这些因果关系本身也经常变化。例如,我们在测试中发现某项特定促销活动相比无促销能带来净利润增长,但到了第二年,当大量变化发生——竞争对手推出了创新促销、整体经济恶化、消费者流量从商场部分转向商业街等等——这条规则就不再成立。延续之前的比喻,我们是在黑暗的房间里摸索前行,不断撞到家具上,而看不见的小精灵却一直在移动这些家具。因此,仅仅进行实验、发现因果关系并假设其广泛适用是不够的。我们必须进行测试,然后衡量从这些测试中得出的规则在实际实施中的实际预测能力。

到目前为止,我们讨论的例子都是那些没有某领域背景的人,却试图解释该领域如何运作或应当如何运作。但还有一种错误,即人们退后一步,对自己所在的领域进行脱离细节的高层次审视,并错误地认为事情很简单。例如,当年我在Centaur工作时,我们尚未推出双核芯片,一位即将毕业的顶尖学府计算机体系结构博士生问我:“你们为什么不直接把两个核心钉在一起,像英特尔和AMD那样做出双核芯片?这简直是唾手可得的胜利。”

那时,我们已致力于将单核处理器转向多核处理器超过一年。要让单核芯片具备多核甚至多处理器能力并保持良好性能,需要为缓存和内存层级(芯片逻辑最复杂的部分)增加大量额外复杂度。粗略估计,我认为将单核芯片改造为多处理器芯片,至少会使生产出可工作芯片所需的测试/验证工作量翻倍(芯片设计的大部分精力都花在测试/验证上)。更广泛地说,计算机架构师的能力取决于他们对决策所影响权衡的理解深度。优秀的架构师对必须交互的底层领域有深刻理解。计算机架构师做出错误决策的常见原因,是对低于计算机架构一两个层次的领域仅有“鸡尾酒会式”的浅薄认知。业界多次出现的错误决策案例是:在职计算机架构师决定为芯片添加SMT,认为这基本是“免费午餐”——只需多花几个百分点的面积,就能获得约20%的性能提升。据我所知,多次尝试都因可预见的原因彻底失败,因为架构师未能考虑添加SMT带来的复杂性和验证成本。添加SMT比添加第二个核心复杂得多,因为逻辑必须贯穿所有模块,且同样原因会导致芯片验证复杂度激增。英特尔在P4中引入SMT时,第一代产品并未启用该功能,因为单代产品中验证过于复杂,且存在致命性阻断错误。经过一代架构数年的排错时间,他们修复了SMT实现并在下一代芯片中推出。当迁移至Core架构并再次添加SMT时,同样的情况重演。在职计算机架构师理应知道英特尔已两次遭遇此问题,这证明验证SMT实现极其困难,然而仍有多次案例显示,有人仅凭对SMT复杂性的“鸡尾酒会式”理解,就建议将其加入设计,而该设计根本没有足够的验证预算来生产可正常工作的SMT芯片。

当然,这并非计算机体系结构独有的现象。我以双核处理器为例,只是因为它恰好是我当前最关注的案例,但我能随口举出数十个类似的例子,而且我确信只要花几天时间思考,就能写出数百个。从业者仍需格外谨慎,避免形成一种错误且过度抽象的认知,从而忽略细节,并因此得出荒谬的推论或结论。当外行人解释事物应如何运作时,他们的解释通常比那些遗漏了关键因素的业内人士更糟糕,而且他们往往提出不切实际的想法

结合罗马工程和CPU的例子,从1核到2核(以及更普遍地从1到2,比如从1个数据中心到2个数据中心,或从单体架构到分布式系统),每个从业者都应理解其难度,即便有人不这么认为。与此相关的是,如果有人展示一款4 THz处理器,其性能是4 GHz处理器的1000倍,任何从业者都应意识到这是他们完全无法理解的外星技术。只有对该领域一无所知的外行人才会合理认为:“这不过是一个时钟频率快1000倍的处理器;能制造4 GHz处理器的工程师基本能理解这款性能高1000倍的4 THz处理器的工作原理。”我们距离通过将芯片速度提升1000倍来实现性能1000倍增长的目标还差得很远,这样做需要许多基础技术的突破,并且很可能需要创建全新的领域,其中包含的工程知识比当今世界存在的还要多。同样,只有外行人才能看着罗马工程和现代土木工程,认为“罗马人建造东西,我们建造的东西只是更大、更多样;罗马工程师应该能理解我们今天如何建造,因为东西只是更大而已”。仅岩土工程一个领域所包含的工程知识,就超过了罗马时代所有工程领域知识的总和,而它只是为了建造我们今天这样的结构而必须发明的新领域之一

当然,我不指望随机程序员理解岩土工程,但我希望那些将编程与土木工程进行比较的人,至少对土木工程有一些了解,而不是仅仅假设该领域存在的知识量大致等于他们对该领域的了解——当他们对该领域几乎一无所知时。

虽然我似乎比大多数人更努力避免陷入“因为不理解就认为某事简单”的陷阱,但我仍然时常中招。我想到的最佳预防方法虽然聊胜于无,却并不可靠。

其中一部分努力是,我尝试培养觉察“那种未真正理解却一带而过的感觉”。我认为这类似于(或许本质上就是)过去二十年间流行的一种做法:关注情绪在身体中的感受,通过身体感觉来理解情绪状态——比如某块肌肉特定程度的紧绷感,就是我在生气的明确信号。

当我对某事物只有模糊的宏观认知、在脑海中一带而过时,身体会产生一种特殊感觉。若不留神很容易忽略,而且我怀疑当大脑中产生这种感觉的无意识部分甚至不知道自己正在敷衍时,这种感觉也可能被错过。虽然觉察这种感觉本身并不可靠,但我认为所有其他用于检验自身推理的自省方法本质上都依赖相同机制(例如,当我推理某个主题时,若用检查清单来确认是否敷衍了事,过程中某些环节仍会依赖感觉或直觉)。我确实会复盘那些错过这种感觉的案例,试图弄清发生了什么——正是通过这种方式,我才初步意识到自己与这类错误相关的特定感觉(我回想过去这类错误的前因后果,发现通常伴随某种感觉),但这永远无法做到完美,甚至难以达到良好水平

另一个方法是进行我所谓的“检查输入大脑的信息”。高中时我就发现,自己说出的“明显错误”中,相当大比例源于让错误信息进入大脑。当时和现在,我都没有廉价可靠的方法为信息标注可信度,因此我发现最简便的方式就是在接收信息时直接核实或丢弃。

我还会尝试获取反馈,但这并不可靠,在一般情况下也难以实现——因为获取反馈的速度远慢于思维速度,若将普通思维降速至反馈速度,产生的想法将少得可怜^4

尽管与某些领域不同,这里没有一套机械、系统化的步骤可以传授来解决问题,但我确实认为这是可以通过练习和改进的,而且有些领域会教授类似技能(通常是隐性的)。例如,在讨论高级或研究生级别教材的先修要求时,常见到书中写道:“自成体系。无需先修课程,只需具备数学成熟度。”这是一种简略说法,意思是:“本书不要求你掌握任何高中生未接触过的特定数学知识,但你需要克服几乎所有未经训练的人在理解和解读数学陈述时都会有的模糊思维。”拥有数学学位的人脑海中会储存大量显性知识,比如柯西-施瓦茨不等式波尔查诺-魏尔斯特拉斯定理,但理解这本书的关键并非这些显性知识,而是思考数学的一般方式。

尽管在其他领域没有与“数学成熟度”完全对应的术语——例如,人们通常不会在系统设计面试中提及“系统设计成熟度”——但类似的技能确实存在,只是没有命名。同样,对于思考自己并非训练有素专家的领域,比如非土木工程师思考某个建筑项目为何花费如此成本、耗时如此之久,也需要一种普遍的思维成熟度5

感谢 Reforge - 工程项目Flatirons Development主要赞助商级别赞助本文,使其成为可能。

同时,感谢 Pam Wolf、Ben Kuhn、Yossi Kreinin、Fabian Giesen、Laurence Tratt、Danny Lynch、Justin Blank、A. Cody Schuffelen、Michael Camilleri 和匿名人士提供的评论/更正讨论。

附录:相关讨论

一位匿名博客读者给出了自己与“鸡尾酒会式观点”斗争的案例:

您最近的一篇文章再次让我深有共鸣——尽管我从事低温物理学研究已近十年,最近却发现自己对制冷几乎一无所知。虽然我了解冷却的大致原理,也知道稀释制冷机的基本运作方式,但我从未真正理解将物体维持在毫开尔文(mK)温度所面临的巨大挑战。我是团队中唯一的物理学家,其他成员都是机械工程师。我们发现,在毫开尔文温度下,每纳瓦的耗散都至关重要,表面接触、材料选择等每一个细节也都如此。

确实,我们可以说毫开尔文温度下的热传输物理学已被充分理解,并能用定律描述此类系统中热量随温度变化的传递规律。这些定律通常写作 P = aT^n。我们知道不同传输类型对应不同的指数 n,而这些指数是众所周知的。当然,正如你所料,拥有“热”量子比特与拥有处于稀释制冷机基温(30 mK)的量子比特之间的差异,完全取决于我们特定系统中预因子 a 的具体数值。这个参数可以估算,通常误差在10倍以内,有时可达2倍以内。但真正要确保量子比特保持低温,我们必须测量这些预因子。紧固件类型(4-40螺丝 vs M4螺栓)、紧固件数量、材料选择(金?铜?)以及几何结构,都对系统的实际性能起着巨大作用。哦,还有一点,当金属从正常态转变为超导态时,指数 n 会发生剧烈变化。有趣吧!

我们花了一年多时间仔细建模低温系统,在此过程中发现了拥有15-20年低温测量经验的人所持有的重大误解。我们发现了某些材料选择和设计决策——如果事先进行任何实际热建模来验证这些设计,它们本会被视为荒谬之举。

有趣的是,如果我们只想复现学术实验室的结果(这些实验室大多偏好更简单的实验设计),这些做法基本没问题;但当我们离开学术界,为自身目的进行设计时,就行不通了。

P.S. 量子计算领域似乎也存在一种观念:控制100个量子比特(IBM已达到127个)与控制1000个或100万个量子比特没有太大区别。我曾以为这只是公关废话,负责规模化的公司人员完全清楚这有多难;但根据我自己的经历和阅读您的文章后,我有点担心他们中的大多数人并未真正意识到我们面临的艰巨挑战。

这封长信只是想表达:我对自己拥有博士学位且表面上是专家的领域,竟持有鸡尾酒会式的肤浅见解——因此您的文章对我来说非常及时。我喜欢用您的文章作为跳板,思考如何变得更好,这非常困难。很难定义什么是好物理学家或好物理学家该做什么,但我确信,更努力地识别并应对自身知识的局限,似乎是件好事。

关于清晰思维的更广泛、更高层次的讨论,可参考朱莉娅·加莱夫的《侦察兵思维》:

当你想到判断力出色的人时,脑海中会浮现哪些特质?也许是聪明、机智、勇气或耐心。这些都是令人钦佩的美德,但有一个特质应位居榜首,却如此被忽视,甚至没有正式的名称。

所以我给它取了一个名字。我称之为侦察兵思维:看清事物本来面目而非你希望其成为的样子的动机。

侦察兵思维让你能够认识到自己何时出错,寻找自己的盲点,检验假设并改变方向。它促使你诚实地问自己诸如“那次争论中是我的错吗?”或“这个风险值得吗?”或“如果对方政党的人做了同样的事,我会如何反应?”等问题。正如已故物理学家理查德·费曼所说:“首要原则是你不能欺骗自己——而你自己是最容易被欺骗的人。”

作为提升思维的工具,这本书有多个章节提供了可尝试的具体检查方法,这使其比本文更具可操作性(或至少更容易操作),而本文仅建议你弄清楚自己在忽略某些东西时的感受。但我认为书中的想法并不能替代本文,因为书中建议的自我检查并未直接针对本文讨论的问题。

在某一章中,加莱夫建议拥抱困惑(例如,如果某些看似矛盾的信息引发困惑感),我同意这一点。我想补充的是,还有许多其他有用的感受,但并没有合适的名称。在评估想法时,除了已提到的“忽略重要细节的感觉”,我试图注意的还有“某种方法如果坚持很可能有回报的感觉”、“某种方法非常棘手/危险的感觉”、“存在关键信息缺失的感觉”、“某些事情确实不对劲的感觉”,以及其他类似但无恰当名称的感受。

关于电影《不要抬头》如何宣扬世界很简单、我们可以轻易找到鸡尾酒会式解决方案的讨论,请参阅斯科特·亚历山大的这篇文章

此外,约翰·萨尔瓦蒂尔指出,现实拥有惊人的细节量


  1. 另一个我常听到的说法是,与传统工程师不同,程序员做的事情是前所未有的 [返回]
  2. 关于施工延误的讨论同样忽略了岩土工程方面的延误原因。如上所述,我以岩土工程为例来说明许多延误的原因,只是因为我恰好熟悉这个子领域,并非因为它是最重要的因素,但它确实是延误的主要原因之一,并且在许多类型的项目中,它是延误的最大原因。

回到我们那个罗马工程师最多只能表面理解的例子:在建造之前往地面上堆土的原因,是因为温哥华大部分地区的地质条件不适合建造大型结构。地面松软,如果在上面建造重物,随着时间的推移会不均匀地下沉。沙子作为压重物,用于预先压实地面。

如上段所述,这听起来很简单。不幸的是,事实远非如此。碰巧,我花了很多时间与一位地球物理工程师(一个与岩土工程相关但截然不同的领域)一起开车。当我们驶过路面上的一个奇怪凸起或凹陷时,她通常能指出导致这个凸起出现的岩土工程问题,或者出于政治动机而忽视岩土工程师建议的决定。我觉得有趣的是,尽管土木工程项目的风险规避水平通常远高于我参与过的电气工程项目,而电气工程项目的风险规避水平又远高于我参与过的任何软件项目,但仍有足够多的“漏洞”进入“生产环境”,以至于如果你开车四处转转、具备相关知识并留心观察,一天之内就能看到几十甚至上百个错误。

从根本上说,问题在于人类没有足够的技术,以合理的成本去了解地面情况——对于像主要高速公路这样的大型物理项目尤其如此。我们拥有的一个工具是使用探地雷达对地面进行成像,但这会产生高度欠定的结果。另一个工具是使用岩心钻或土壤螺旋钻,这基本上就是向下钻探以查看地下情况。这同样会产生固有的欠定结果,因为我们只能看到钻孔位置的情况,而地面的成分有时会在空间上发生巨大变化,从表面观察并不明显。一个常见的例子是存在未测绘的残留河床,它很容易“避开”土壤采样点。还有其他工具,但在实际财务限制下使用时,它们同样会让工程师对世界有一个不完整且不确定的认识。

当我在鸡尾酒会上听到人们讨论某个建设项目为何耗时过长,并将其与土木工程师告诉我的延误原因进行对比时,几乎每次鸡尾酒会上的讨论都完全聚焦于土木工程师明确指出的错误原因。延误的原因有很多,“意外的岩土条件”是常见的一种。土木工程师在此处境两难,因为钻探取芯既耗时又昂贵,而人们看到地面被挖开却“没有进行实际工作”时就会生气(同样,当施加预压荷载时——“他们为什么不在高速公路上施工?”),这给政客带来压力,间接导致工期安排没有足够时间充分了解岩土条件。这有时会在项目中出现岩土方面的意外(技术报告中通常表述为“不可预见的岩土条件”),可能导致项目主要部分不得不改用更慢、更昂贵的技术,甚至更糟的是,需要重做项目的一部分,从而造成成本和工期超支。

我从未在鸡尾酒会上听到有人讨论项目延误的岩土原因。相反,人们谈论的是那些对外行听起来合理但完全虚构、脱离现实的原因。但如果你想讨论如何能更快、更便宜地建造东西,以及“进步研究“等,如果不了解所涉及的岩土工程权衡(以及我们尚未讨论的其他土木工程领域的权衡),就无法合理地进行讨论。

[返回] 3. 我们可以采取的一项控制成本措施是减少岩土工程工作,并在一定风险范围内忽略岩土意外。如今,部分“工作量”由法规决定,而大部分则由判例法决定,这大致给出了为避免在各类不良后果(如建筑倒塌)中承担法律责任所需完成的工作。

如果不再依据判例法和责任风险来决定应进行多少岩土工程风险降低工作,而是基于每美元质量调整生命年来计算,那么在边际上,与许多其他干预措施相比,我们在岩土工程风险降低上似乎花费了非常大量的资金。

这不仅适用于岩土工程工作,也适用于土木工程的其他领域,例如,在美国和加拿大等地的建筑商进行的坍落度测试比一些建设速度更快的国家要多,这降低了建筑过早倒塌的风险。如果一栋建筑因建造商未进行在美国或加拿大通常会做的坍落度测试而倒塌,那将是既丑闻又严重的责任问题,但即使建造商进行的坍落度测试不如美国和加拿大通常那么多,建筑通常也不会倒塌。

未达到美国或加拿大那样严格标准的国家,有时会出现近期建造的建筑物以在美国和加拿大看来令人震惊的方式倒塌,但每美元所挽救的生命数量与其他资金投入领域相比微乎其微。我们是否应通过政策决策改变这一现状,这比我在鸡尾酒会上听到的关于建筑成本的虚构理由更值得讨论——这些理由与工期和成本的关系更密切,但我从未在土木工程圈外听到有人提及这一或其它关于项目成本的具体原因。

即使我们仅局限于土木工程相关工作,而非采取更广泛的、有效利他主义式的思路,并考察所有可能干预措施的质量调整生命年,在建设期间用于降低风险与持续运营期间(检查、维护等)用于降低风险之间的资源权衡,其相对资源水平也并非通过能接近最优结果的流程所确定。

[返回] 4. 有人认为写作是比获取外部反馈更快、比单纯思考更可靠的中间步骤,但我发现写作速度太慢,无法有效用于厘清思路,而在识别自己思维模糊的过程中,我发现尝试理清思路既更可靠也更快捷。[返回] 5. 我认为那些自诩“聪明”的人往往低估了一点:书本学习和思考在哪些情况下足够,而哪些情况下必须掌握该主题的实地知识。

一个快速阅读者可能只需40-100小时就能读完大多数技术学位所需的教材。对于慢速阅读者,时间可能更长,但依然不算太多。某些问题的方面,通过这种方式足以理解问题并提出合理有效的解决方案。而另一些问题的方面,这种方式则效率极低,需要数千小时的实际投入才能真正理解状况

[返回]