读书笔记255《为什么需要生物学思维》

作者:[美]塞缪尔·阿贝斯曼 译者:贾拥民 出版社:四川人民出版社

如果将技术定义为人类为特定目的而设计和构建的各种类型的系统,那么就不难注意到,当今最先进的技术几乎都是复杂的系统:动态、功能复杂、规模庞大,而且拥有近乎有机生命体般的复杂性。这些复杂的系统遍布我们周围,从汽车软件到电脑设备,再到城市基础设施。[15]那些庞大的、高度互联的软件,其规模足以与百科全书相比。据估计,微软的办公软件就有数千万行计算机程序代码。 

美国的公路系统有30万个交叉路口,每一个路口都有交通信号灯。[17]这是一个覆盖全美的动态交通网络,所包含的自动纠错系统先进得令人难以置信,尽管我们会因为它经常出问题而嘲笑它愚蠢得令人绝望。该系统的背后是PB级数据(1PB等于100万个GB)和复杂的概率模型。[18]随着时间的推移,法律体系也变得越来越复杂。截至2014年,美国联邦税法的总页数已经超过了74 000页。[19]这个庞大的法律网络非常复杂,拥有无数个关联点,会对纳税人产生级联式的影响,可以说几乎没有人能从整体上完全理解其功能。

在我们的生活中,复杂的技术系统无处不在,这通常是一件好事。正是在这种庞大的复杂性中,我们发现了惊人的弹性,也就是复原力。这些系统通常拥有许多功能各异的工具箱和故障保险箱,可以帮助人们完成任何“想要”完成的事情。这些系统也为我们提供了连古代皇室都无法想象的生活:免除了辛苦的重复劳动;把水电送到家中;让我们一年到头都可以生活在舒适的温度下;还能帮助我们快速地传递信息。

那么,我们该如何理解复杂系统,而这又意味着什么呢?无论是分析一个现象,还是了解一个系统,都不是非此即彼的二元选择。这种理解其实是一条内涵丰富的光谱。换句话说,你可以只从整体上去理解一个系统,掌握它的全局情况,而不一定非得理解其各个组成部分的细节情况;你也可以只理解它的所有组成部分,而不太关注其整体功能;你还可以只了解各部分是如何相互关联的,或者只探究这种关联的最终效应。此外,所有的“理解”都会涉及一些具体活动:描述事物是如何运行的,在不同层面上预测其未来的行为,并在时间充足和资源丰富的情况下通过构建模型来复制它。

对于软件,你或许可以很好地理解给定程序中的若干模块,例如计算圆周率值的子程序,或是对一组数字进行排序的子程序,但你却不一定能理解它们是如何一起发挥作用的。通常,我们只能把握上述“理解”中的一部分,而非全部。

另外,“理解”也不是固定不变的,它可以通过训练来改进。从来没有下过国际象棋的人,在看到棋局的时候,可能无法将势均力敌的平局和王已经受到致命威胁的残局区别开来。而接受过一定训练的初学者和中段棋手,均能掌握下棋的基本模式,并判断棋局的基本形势和大致走向。国际象棋大师则能一眼看透当前的形势和接下来可能会出现的演变,而后评估棋局并给出可靠的走法,同时弥补潜在的弱点。经过充分训练后,棋手在看到一盘棋时,眼中所见的就不再是一排排、一列列的棋子了,而是诸如“白棋三步就可将死对方”之类的棋局。因此,学习专业知识并接受一定的训练确实可以从根本上改变我们对世界的看法和理解方式。

对于人类构建的系统而言,亦是如此。计算机代码既可能是难懂的天书,也可能是解决难题的优雅方案,这一切都取决于你到底了解些什么。不过,当我们无法完全理解它们时,就会遭到某种特定的失败或打击,也就是某种意想不到的结果。

以空中交通预警防撞系统(Traffic Alert and Collision Avoidance System, TCAS)为例,人们创建这个系统的目的是防止飞机在空中相撞。这个系统会提醒飞机驾驶员注意潜在危险,并告之如何根据规则做出应对。但是,几十年来,这个系统的规则已经变得极其复杂,复杂到全世界只有屈指可数的几个人能够真正了解它。每当有人提出一项新的系统规则时,有关方面就会通过模拟实验来测试其效果。在若干次测试中,如果表现均能达到预期,新规则就会被批准投入使用。

尽管避免飞机相撞本就是一个复杂的挑战,但是从根本上来说,我们为此而建立起来的系统已经变得太过复杂了。不但一般人无法理解,即使是专家,有时候也会对系统在某些情况下所做出的反应感到疑惑。

当结果出人意料时,就意味着我们对相关问题的理解还不够充分,因而无法搞清楚这种结果从何而来。倘若只是视频游戏中的一个错误,那倒也无伤大雅,甚至还能起到娱乐大众的效果。然而,如果是极度复杂的社会保障系统发生了出人意料的状况,我们肯定就无心娱乐了。这些复杂的系统可能是为我们提供水电的基础设施,也可能是执行金融交易的软件,还可能是防止飞机相撞的程序。在这种时候,理解是否到位就成了一个生死攸关的问题。

每个人理解世界的能力天生就有所不同。天才拥有常人难以企及的直觉,他们的跳跃性思维可能远远超出了常人所能理解的范畴。但是,人类的认知能力终归是有限的。随着时间的流逝,我们所构建的各种技术系统变得越来越复杂,系统之间的关联性也变得越来越强,越来越难以理解。无论人类有多聪明,记忆力有多强,都无济于事,因为这些系统的构建方式与人类的思维方式不一样。人类不具备同时应对数百万个组成部分及其之间的大量交互,并将所有结果都记在脑袋中的能力。我们的大脑会“严重超载”,继而宣告失败。

计算机科学家丹尼尔·希利斯(Daniel Hillis)认为,我们的世界已经从“启蒙”(enlightenment)转向了“纠缠”(entanglement),至少技术领域肯定如此:“技术已经变得如此复杂,以致我们无法完全理解它,也无法完全控制它。我们已经进入了‘纠缠时代’……每个专家都只了解难题的片段,却无法把握难题的整体。”[26]就连作为技术创造者的专家都无法完全了解技术了。

抽象的局限

在创建复杂的技术时,最强大的方法就是人们常说的“抽象”(abstraction)。从根本上说,抽象其实就是:将系统中某些不必要的组件细节隐藏起来,同时保留组件与系统进行高效交互的方式和能力。例如,我在编写计算机程序时,不必再用机器代码语言来编程,而可以使用C语言或其他类似的语言。机器代码语言是一种二进制代码,此前,每台特定的计算机都需要用这种语言来设置指令。现在,我写出来的程序不仅易于阅读,还可以转换为机器代码语言。在很多情况下,我甚至不需要知道程序将会在哪种特定的机器上运行,那些与机器有着更深层级交互的其他程序自然会“考虑”细节。换句话说,这些细节在编程时已经被我抽象化了。

这种抽象方法在技术中无处不在。在与某个界面友好的网站进行互动时,对于网站的内部技术细节,我们并不关心;在将烤面包机的插头插入某个插孔中时,我们也不需要知道电力是哪里输送过来的,或是发电厂位于什么地方。这就好比我们无须知道搜索引擎是如何给出具体结果的。只要接口或界面是合乎逻辑的、可以使用的,那么我们就只需要关注正在构建或修复的细节,而不用担心接口和界面背后的一切复杂问题。利用这种抽象方法,我们可以在一种技术的基础上构建出另一种技术,也就是直接利用他人创建的技术,而无须了解其内部细节。如果你是使用统计软件包分析数据集的财务分析师,或是使用预设代码创作有趣动画的应用程序开发者,那么你无疑已经在使用抽象方法了。

抽象给人们带来的最大好处是专业化。即使系统拥有数百万量级的交互,系统的构建者和维护者也不是必须知道它到底是如何工作的。抽象使他们只需了解自身关注的某个具体部分,而其他部分的细节会被再次抽象化。

然而在这个纠缠时代,抽象方法也可能会崩溃。事实上,这种情况出现得越来越频繁。在一个系统中,原本被设计者和构建者屏蔽的各个组成部分,正在越来越多地以意想不到的方式发生碰撞。

这一点在金融领域显得尤为突出。在当今的金融市场上,“参与者”早就不仅限于人类了,大量以各种信息为基础的计算机程序也参与了交易,而且速度比人类手动执行快了无数倍。这些计算机程序以异常复杂的方式相互联系着,并通过巨大的交易网络对决策进行级联式放大和传播。那么,它们究竟是如何做出交易决策的呢?某些计算机程序能从海量的数据中总结出有意义的参数。

结果可能会非常极端。2010年5月6日,全球金融市场出现了闪电崩盘,股市出现了大规模的、非常迅速的巨幅震荡。许多上市公司的市值都因此遭受了重创,不过不久之后又都基本重回原位。这次闪电崩盘涉及一系列交易算法和实施细则,这些算法和细则以意想不到的方式进行了交互,在短时间内便造成数十亿美元的损失。尽管很复杂,但这些系统并非处于真空地带,它们是更高层级的技术生态系统的一部分,而这个技术生态系统决定了每种证券或商品的交易时段。金融系统还会受到一系列法律法规的约束。当然,法律法规本身即是一个系统,而且是一个庞大且复杂的系统。不同法律之间存在相互依赖、相互援引的关系,且联系方式时而精确、时而混沌,令人难以琢磨。

此外,这些交易所依赖的基础设备,都建立在持续发展了数十年的技术之上。这样一来,整个系统就成了“新”与“旧”的组合:在这个系统中,古老的依靠人工喊价的实物交易与通过光纤传输完成的电子交易共存。我们在构建能够实现高效交易的计算机程序时,不仅要考虑日新月异的计算机科学、繁杂的金融工具和深不可测的法律法规等,还要深入了解物理学。因为“光在不同材料中的传输速度”这一点在交易中至关重要。因此,我们说,地球上没有人能完全理解金融世界中相互关联的所有系统,甚至没有人能完全理解其中任何一个系统。

当然,在很多情况下,系统的使用者确实只需要很好地理解系统的一小部分,甚至仅是最表层的一部分就可以了。在一家金融公司里,程序员可能只需要知道如何维护交易系统,而不需要了解计算机在物理层面上的基础设置;有的人可能只会关注某个特定的软件,这些软件可以对公司外部的消息进行过滤,然后将部分信息传输到公司内部进行运算,至于其他大部分信息,只作大致了解即可;为该公司工作的律师则需要了解与各种交易有关的法律条文,但不需要知道软件、服务器或光纤的任何细节。在这里,抽象方法给我们带来了很大的便利。

在大多数情况下,对某个事物“足够”了解,看起来已经很不错了,[28]但是,当我们构建出越来越复杂的系统之后,在系统及其子系统运行的不同层级之间就会越来越频繁地出现跨界交互现象。尤其是随着事物之间的相互联系不断加强,我们愈加难以判断原有的那些粗略的、不完整的理解是不是仍然够用。在纠缠中,事物会在不同的抽象层级上相互碰撞,以各种令人无法想象的方式进行交互。在充满交互的网络中,常常会出现被复杂性科学反复提及的“涌现”(emergence),也就是某种层次上的交互最终导致其他层次上的交互出现了预料之外的现象。涌现,在所有类型的复杂系统中都很常见。例如,昆虫的集体飞行便是一种涌现行为。另外,在金融系统中,涌现也很常见。金融系统的运行所涉及的因素多种多样,上至全球范围内的算法交互,下至每条网络线的传输速度。要想真正搞清楚哪些细节应该被抽象化,是一个太过繁杂的问题。

当系统内部深处的某些微小细节像“微型造物主”一样崛起,并开始破坏技术系统的其他组成部分时,我们就不能只对系统进行局部理解了。当系统处于纠缠之中时,其内部各部分之间的交互会陷入混乱,以往帮助我们管理复杂性的等级结构和抽象方法,都会迅速地分崩离析。

那么,在可见的未来中,人类是否有希望找到摆脱这种混乱的办法,并让世界重新回到可管理的状态呢?或者,我们注定要带着深切的、无法言喻的恐惧感来面对这些不断增殖的系统?

在大多数人看来,不完全了解那些技术系统,不知道所在城市的基础设施细节,不理解苹果手机的硬件如何验证指纹,不清楚法律法规如何促进国际贸易,其实并没有什么关系。人们简单地认为,对于那些复杂的系统,只需要明白如何使用即可,它们的具体机制是什么则无关紧要。不过,对于一个新工具的工作原理,有人搞不懂是一回事,所有人都搞不懂又是另一回事。许多人还在自欺欺人地以为,专家们终会把我们从这种庞大的复杂性中拯救出来,因为他们理解我们所不理解的东西。但是事实并非如此,专家也不一定理解,依赖专家的时代早就一去不复返了。

我们过去所采用的用以理解这些系统的思维方式,也就是找到“挑战者号”航天飞机失事原因的那种思维方式,现在已经完全失效了。这很令人绝望。纠缠的世界并非远在天边,而是近在眼前。每个人都需要用新的思维方式去理解技术,甚至是那些我们轻松地将理解外包给专家的技术。

虽然对人类而言纠缠时代的到来是一场严峻的挑战,但我仍然满怀希望,并坚信:我们定能学会如何处理这些系统,至少在某种程度上。

但是,要想真正理解这个由人类一手创造的时代,我们就需要先退而求其次,将迫使我们陷入复杂性、阻碍我们理解复杂性的各种因素找出来。

复杂系统形成的4个原因

技术系统变得越来越复杂的主要原因是“吸积”和“交互”。随着时间的推移,系统中不断加入更多的组成部分,部分之间也增加了越来越多的连接。“必须处理的例外情况”和“普遍的稀有事物”也让技术系统变得愈加复杂。

要想使用互联网,我们就必须忍受或是间接地忍受杂乱无章、东拼西凑的网络世界。真是一团糟!互联网的第一步是在20世纪60年代迈出的。当时,有人创造出了一个巧妙的设计,使人们能够在不同的地方通过计算机传递信息包。于是,小网络被相互关联起来,构成了大网络。同时,为了高效地传输信息,人们还开发出了各种各样的协议。

在计算机学和工程学中,有一个术语kluge,指的是拼凑起来的系统,也就是将许多不同的东西混合在一起,以求解决问题的系统。这种系统肯定是不精致、不优雅的,而且很多时候庞杂得毫无必要。虽然这种拼凑起来的系统是有效的,但远远称不上完美。

包括互联网在内,在每一个技术领域中,都存在着这类拼凑起来的系统,例如交通网络和医疗设施。以家庭娱乐系统为例,它们虽然有用,但需要同时使用好几个遥控器,以及一大团乱麻般的电线、信号线和数据线。

美国的法律体系也是个拼凑起来的系统。这是一个为了达到特定目的而被构建出来的技术系统,远远称不上优雅。《美国法典》的规模和互联性仍在不断增加,时至今日,其总字数已经超过了2 200万,内部各章节之间的关联点也已超过了8万个。

其实,无论在什么地方,我们都可以观察到,随着时间的推移,各种系统的复杂性都出现了大规模增长。我们还发现,一般来说,当一个复杂的系统庞大到一定程度时,无论其具体形式如何,都会变成一个拼凑起来的系统。

所有这些系统都是为了实现某个特定功能,由一代又一代的专家设计、构建出来的。有人可能会认为,如果这些系统的设计是合理的,那么它们理应合乎逻辑、优雅,甚至简洁,也理应易于说明、易于修复。然而,尽管我们已尽了最大努力,但技术系统还是变得越来越复杂、越来越庞大。这绝非偶然,技术发展过程中某些固有的力量,使我们在“复杂性”中越陷越深。和万有引力之类的物理定律截然不同,这些力量强大到能让系统变得越来越复杂。不管时代如何变迁,它们总能压制住人们对简单的渴求,以致在人们心中,它们已如物理规律般不可抗拒。可是,为什么会这样呢?

原因1:吸积

我记得我最早是在一些讨论“行星系如何形成”的文章中看到“吸积”这个术语的。行星系由一团旋转的尘埃和气体凝聚而成,这种星星点点的累积过程,就是“吸积”的过程。这个用来描述行星系如何形成的概念由来已久,而在技术的增长过程中也是类似的吸积作用。

吸积过程的结果之一就是形成了人们常说的遗留代码(legacy code)或遗留系统(legacy systems),即过时的机器和技术,也就是开发出来之后使用至今的机器和技术,譬如美国国税局所使用的报税系统。

事实上,软件界已经将吸积和积累奉为普适规则。就发展而言,软件系统的规模势必会与日俱增,除非有人积极地尝试简化它们。

那么,为什么我们不能对复杂的系统进行定期清理并从头开始呢?这和实际操作有关。不过,更多的时候,我们之所以放弃从头开始的想法,是因为那样做不仅太困难,而且太危险。没有人能够完全理解一个系统所依赖的所有旧的组成部分的全部作用,所以重新设计一个未经检验的系统不仅是愚蠢的行为,更是危险的行为。试想一下,一个几十年前设计好的、非常复杂的银行软件系统正慢慢适应着各种先进的技术,无论是新型的计算机,还是新的操作系统,或是无处不在的互联网。虽然这个系统的核心基础并不适用当今时代,但它们已经嵌入得太深,以致无法删除。总而言之,我们必须接受这样一个普遍规则,那就是:无论何种技术系统,终将变得日益复杂。

但是,当仔细观察技术系统中的遗留代码时,无论是在一个软件中,还是在一个法律体系中,我们都会发现,真正的复杂性绝不仅仅只体现在日益扩大的系统规模上。毕竟,只有和另一个因素结合起来,吸积才能使技术系统变得复杂,这个因素就是交互。

原因2:交互

让各项技术互通,也就是让不同系统进行交互,相互传递信息通常是一件好事。例如,因特网之所以拥有如此强大的功能,就是因为其连接的机器数量极其庞大,而且可以在无数机器之间传递信息。

除了互操作性之外,不同类型的技术之间还会产生相互依赖性,例如互联网与电网之间的相互依赖性。

一般来说,随着系统内部及系统之间的交互增多,包括拥有子系统的大型系统在内的所有系统的复杂性都会增加。

在过去的短短几十年间,大型系统已变得异常庞大且错综复杂,用迪科斯彻的话来说即是“概念层级的深度,绝非人类心智曾需面对的任何事物可比”。

不仅如此,即使我们有能力阻止系统的吸积和交互,也还需面对另一个会使系统变得日益复杂的因素,而那将是更加难以解决的问题。

原因3:必须处理的例外情况

通过一个简单的模型来处理绝大多数复杂性,是相对直接的方法。比如,我们知道了一年有365天或366天,就可以通过简单的运算来确定某一年到底有多少天。但是,如果你对准确性有要求,无论是想确保永远不会错过任何一个约会,还是想构建一辆既不会迷路也不会撞伤人的自动驾驶汽车,事情就会变得非常复杂。 

这种复杂的情况就是必须处理的例外情况,也就是所谓的“边界情况”(edge case),若不处理,技术系统就会出现漏洞。边界情况各种各样,从闰年问题,到如何编写数据库软件来处理特殊的人名,比如人名中带有特殊符号的情况。我们不能说边界情况是普遍现象,但它们确实经常出现,所以我们必须加以识别和管控。但是与此同时,技术的简单性也就渐渐消失了。边界情况使技术变得复杂了。这一点在科学模型中尤为突显,科学模型也是一种技术,也会随着时间的推移而发生变化。 

原因4:普遍的稀有事物

我们所观察的技术系统,无论是法律、软件、设备,还是科学模型,都会在例外情况和边界情况的驱动下,在吸积和交互的双重助力下,变得越来越复杂,越来越混乱。

越来越多的复杂系统

针对不同的系统,如果我们能够采用不同的方式去构建、设计、修改和重建的话,那么,对技术的控制或许真的可以实现。例如,我们可以尝试解耦某些系统,将它们拆解为更小的单位,以保证它们的相对简单性和可管理性。

其他学者也讨论过类似的问题:怎样才能让一个大型系统的互操作性达到最佳水平。这里所说的最佳水平是指,系统既能运行良好,又不会因高度的不可预测性而产生负面效应;也就是说,我们的目标应该是创造最佳水平的互操作性,而不是最大限度的互操作性。当然,这个目标不是那么容易就能实现的。想到是一回事,做到又是另一回事。实现这个目标的方法之一是坚持使用特定的设计原则,将可理解性和模块化内置于我们的设计中。

当一个系统具有高度的互联性时,我们便很难将其拆解,也就很难探究其内部发生的一切。但是,在大型系统中,确实可能存在这样的情况:某些部分之间的互联性远强于它们与其他部分之间的互联性。换句话说,系统中存在若干模块,而每个模块由若干“部分”紧密互联而成,并在一定程度上保持独立。我们常在生物学中见到这样的模块,它们皆包含了若干“行动一致”的“部分”。植物的线粒体和人体的心脏皆是如此。当然,这些模块通过别的身体器官和化学信号,以及其他方式,和系统其他部分保持着紧密的联系,所以我绝不建议人们进行心脏摘除手术。不过,这些模块又是相对独立的,即使不借助系统的整体功能,也可以被理解。

在能够进行严格监管的领域里,例如,在金融系统中,或是在企业构架方面,找到理想的互操作性水平或加强模块化,是有可能实现的。我们可以规定,当机构达到一定规模时就必须进行拆分。然而,事与愿违,在大多数其他类型的技术系统中,各部分之间的互联通常只会继续猛增。当系统规模相对较小时,我们尚能进行模块化处理或分段构建,但是随着技术的发展,这种边界清晰的处理方式将变得越来越不可行。在社会压力和系统传统结构的共同作用下,我们不得不继续强化系统之间的相互联系,以致它们越来越难被分解。因此,尽管我们渴望简单,但现实却背道而驰。

随着时间的推移,系统渐渐变得复杂;而面对这些复杂系统,我们的大脑也渐渐无能为力。无论是互联网,还是大型基础设施,要想从整体上理解它们,已经不可能了。

那么,为什么必然会产生这样的结果呢?在接下来的一章中,我们将讨论人类理解能力的社会极限和生物极限:无论有多么努力,我们的大脑和社会在面对这些复杂系统时的表现都不会太好。

03 为什么复杂系统越来越难以理解了

人类大脑的认知能力终归还是有限度的。我们的记忆能力以及在记忆中进行检索的能力,都是有限的,能瞬间识别的事物数量也少之又少。除此之外,我们还很难理解系统内部各种互联的具体含义。具体来说,在面对非线性变化时,我们会不知所措。当某个事物以线性方式发生变化,即一个较小的变化产生一个较小的差异、一个较大的变化产生一个较大的差异时,我们所需要做的主要是以线性形式进行外推。在这样做的时候,大脑几乎不会遇到什么困难,因为线性系统的输入与输出是成正比的。但是,在非线性变化中,一个小变化在流经一个大型互联系统时,会导致系统以不成比例的方式发生变化,以致大脑无法很好地做出应对。

在非线性系统中,行为会受到反馈和输入放大率调制的影响(或者也可能相反:一个很大的变化只能带来一个极小的影响),这令大脑很难将输入与输出关联起来。在这种情况下,我们无法继续以线性形式进行外推。所有变量之间的互动形成了错综复杂的不规则曲线,让我们的大脑一筹莫展。正是因为大脑本身具有这样的缺陷,所以我们很难把握复杂系统,包括我们自己所构建的复杂系统。

除了系统组成部分及其交互的复杂性超出了我们的处理能力,并会导致我们无所适从之外,摆在我们面前的还有另一个不利因素,那就是我们可以保存在头脑中的知识总量也是有限的。这不仅涉及原始数据,还涉及专业技术知识。技术系统所涉及的知识面变得越来越广泛,而且还跨越了不同的领域,要知道,即使是专家也不可能了解所有这些知识。

为了了解认知的局限性,我们需要先了解一下人类追求专业化的历程。然后我们就会明白,当今这个“不可理解”的新时代,其实由来已久。实际上,人类社会长期以来一直保持着这种进程,只不过现在才抵达终点。

除了知识在扩展和分化,学者的数量在增加之外,各研究领域的专业化程度也在大幅提高。

我们身陷两难境地。为了更多更好地了解这个世界上的复杂系统,比如人体,我们需要将传统医学分解为众多专业化的医学学科。与此同时,我们正在构建的系统,或者说使世界运行起来的技术,却日趋庞大和复杂。于是,我们又不得不将许多不同的专业领域“缝合”到一起。举例来说,金融系统的构建需要物理学家参与;计算机系统的开发也需要经济学家参与。又例如,无人驾驶汽车的设计有赖于软件、激光、汽车工程、数字测绘等领域的专家的通力合作。 

换句话说,专业化帮助我们不断取得进步,同时我们也更加依赖于跨领域“汲取营养”的系统。这就要求我们必须对所有相关领域了如指掌。然而在今天,任何人都不可能拥有全部知识。这也就意味着,无论对谁来说,这些系统在整体上都是不可理解的。

解决方案之一是推进多学科和跨学科的团队合作:将不同领域的专家组织到一起,这样就有可能在前沿地带取得突破,进而构建出特别强大的复杂系统。在软件开发领域,尽管有一些技术系统是由一个人,或一个小团队创建的,但在更多的时候,创建工作需要大规模团队的长期合作。不仅如此,在这个过程中,会不断有人加入和离开。如果将团队工作可视化,[46]也就是将关键软件的开发过程用信息图表的形式呈现出来,我们就会发现,这个过程看起来就像是一个由文字、会议和分叉组成的错综复杂的流动集束。在分叉点上,不同的个体来来去去:加入进来,参与软件开发,共同处理不同的文件,然后离开。因此,作为这种过程的产物,软件不仅非常复杂,而且往往极其庞大,以致几乎没有人能够完全理解。我们会得到这样的结果并不奇怪,因为完全了解某个特征的人可能早就离开团队了。

专业化无疑是一个成功的进程,它给我们带来了大量的、令人印象深刻的技术,但同时也将我们带入了纠缠世界。在纠缠时代里,我们不得不依赖于生而为人终无法拥有的、复杂的技术系统知识。事实上,没有人能拥有这种知识。人们千方百计地想要走出这种困境,譬如,有人说,是时候召回博学者和多面手了,应该让他们在当今时代重获新生。我们将在后文中再度审视这种可能性,在这里,我们必须先认识到:在个体所能处理的知识体量,与其需要了解的、与生活息息相关的系统知识体量之间,存在着一条无法逾越的鸿沟。

不幸的是,我们常常忽视这种不匹配;等醒悟过来,为时已晚。我们构建了大量复杂的技术系统,并确信构建的基础是符合逻辑的,直到它们迫使我们面对出人意料的结果——错误和故障,而这些结果会导致诸如全球金融市场之类的重要系统陷入混乱,甚至崩溃。有些系统会做出一些离奇的行为,这些行为甚至连设计者本人都不曾预料到,这样的系统被称为“技术狼人”。

令人费解的bug

bug并不都是能够找到确切起因的那些错误,在以连接和交互为特征的复杂系统中,经常会出现一些令人费解的bug。尽管我们对这些bug没什么好感,但它们却是这个纠缠时代中无法回避的存在。

当系统庞大到一定程度时,系统会以意想不到的方式与用户、其他系统,以及自身进行交互。事实上,在软件规模日益增长的同时,错误率也在大幅增加。不过,你不能就此认为,软件规模翻倍,每千行代码中的错误数量也只是会翻倍而已。事实绝非如此。据估计,和拥有5 000行代码的程序相比,拥有1万行代码的程序在错误数量上是前者的4倍。

这种不可预测性和脆弱性,实际上是我们所构建的复杂系统的标志,虽然复杂系统对预料之内的冲击通常拥有令人难以置信的稳定性。这里所说的“预料之内”指的是系统拥有针对某种特定冲击的设定,但是在面对预料之外的冲击时,复杂性就会变成一种负担。

为了能更好地理解这种特殊情况,人们开发出了一个数学模型,即高度最优化容限(highly optimized tolerance)模型(11)。虽然系统在经过优化后可以适应各种各样的情况,但是任何“新异事物”都有可能让它们出现灾难性的故障,甚至崩溃。以波音777为例,[8]这种大型飞机是一台极其庞大的机器,包含了150 000多个子系统模块,所有模块指向的目标都是:确保正常飞行,并应对各种情况。但是很显然,它无法应对所有的意外情况。据业内专家称:“波音777在应对大规模的气流干扰、载重和燃料的变化、边界层的湍流流动,以及材料的老化与不均匀等情况时,具有很强的稳定性,但这种稳定性可能会因少数超大规模的集成芯片的细微变化,或者某些软件故障而失效,从而导致灾难。”[9]换句话说,随着系统变得越来越复杂,再细微的刺激都有可能引发灾难。其实我们根本不知道未来可能会发生什么。

事实上,这些意想不到的后果与边界情况和例外情况有关。世界很大很复杂,所以需要一个更大更复杂的系统来管理它。很多情况虽然都具有偶发性,非常罕见,但是却极有可能导致技术故障,因为总体数量实在太多,而且无法被一一测试。还是以丰田汽车为例,我们不可能对它的软件系统进行全面且彻底的测试。正如计算机科学家菲利普·库普曼所说:“常规的车辆检测根本不可能找出所有不寻常的故障。”[10]这就好比,一个人就算穷尽一生也不可能遍历所有可能会发生的事故。

在超越大脑极限的复杂世界粉墨登场之后,噩梦随之而来。当然,这场噩梦并不是指具有自我意识的天网(skynet)已向人类宣战,而是说系统已变得越来越复杂,越来越混乱,以致各种故障接踵而来,不管人们能否预料到。复杂性注定会带来意想不到的后果,而我们却只能在问题出现时才意识到。

并不是所有bug都能被消除

哥伦比亚大学城市发展学教授凯特·阿舍尔(Kate Ascher)出版过一系列有关城市建设、交通网络和大型建筑的著作,并在书中讨论了这些系统的复杂性。[11]这些著作附有很多信息丰富的图表,细节描述也很生动有趣,但是读者读起来仍会感到些许压抑。所有这些系统都已历经了几十年,甚至几个世纪的吸积。随着时间的推移,新的部件一层层地被叠加上去,从交通网络到新能源网络,再到物流网络,皆是如此。例如,为住宅和公共场所供水和排水就是一件非常复杂的事情。为了能有一个直观的印象,让我们来看一下纽约市排水系统的巨大规模:仅在市区范围内,地下管道的总长度就超过了9 700千米,而这还只是这个精心设计的排水系统的一小部分;事实上,这个排水系统的日排放量超过37亿升。

然而,通常只有在出了问题之后,我们才会意识到系统的复杂性。2010年春,因为一场事故,波士顿大都会区的居民们接受了关于如何管理和分配水资源的“速成培训”。在那年5月的第一天,马萨诸塞州韦斯顿市的一条主供水管破裂,[12]而该水管的水是从阔宾水库(Quabbin Reservoir)输送过来的。在接下来的几天里,包括我当时居住的布鲁克林区在内的许多社区的居民都收到了通知:必须把水烧开后才能饮用,因为“现在是用备用水源在供水”。除了对面的剑桥市,水库周围的城镇无一幸免,这是因为剑桥市拥有自己的独立水源。市政工程人员当然知道排水系统的复杂性,但是对于大多数城市居民而言,只有在系统发生故障之后,才会认识到这个事实。

安德鲁·布卢姆(Andrew Blum)在其著作《管道》(Tubes)中对互联网的物理基础设施进行了探讨。[13]他以亲身经历作引:有一天,他家里断网了,原因是后院的网线被一只松鼠啃断了,于是他开始琢磨互联网的物理连接特性,也就是一种纵横交错的有形网络。

在开源软件开发行业,“林纳斯定律”(Linus's Law)被许多人奉为真理。这个定律是以Linux系统的创始人林纳斯·托瓦兹(Linus Torvalds)的名字命名的,意思是“只要给予足够的关注,所有的bug都不是问题”。换句话说,如果能有足够多的人去检验某种技术,那么任何故障,无论它有多么复杂,看上去有多么难以处理,都是可以修复的,因为总会有人能找到解决办法。

但是,随着系统变得越来越复杂,这个“真理”似乎不再成立了。并不是所有的bug都可以消除:当我们面对复杂的充满交互的系统时,发现并消除每一个bug的可能性微乎其微,并且每一次修复都会引发新的问题。[14]这听起来非常令人沮丧,但在某种程度上来说确实是这样的。幸运的是,我们至少还有一丝摆脱部分困境的希望。

“技术狼人”不仅是人类跨入新时代的标志,同时也为人类指出了管理复杂系统的新方向。波士顿大都会区的供水危机说明了,自来水不是“自动来的”,它也有真实的源头。不断地检测bug是我们了解这个纠缠时代的性质,并保证自身在此间繁衍生息的有限选择之一。

从错误中学习

几年前,谷歌公司的电子邮件服务系统Gmail出现过一次严重的服务中断故障,导致许多用户在大约18分钟内无法登录邮件系统。[15]调查结果表明,问题出在谷歌软件的一个小更新包上。那是一个用来平衡邮件处理流量,以保证整个系统不会有任何一部分过载的软件包。软件包中的错误导致许多运行正常的服务器被认定为不可用。虽然这个错误并没有影响到谷歌的其他服务,但是由于Gmail需要特定的数据中心信息,所以它直接崩溃了。引发这个级联式故障的是一个很小的问题。对于这种级别的小问题,很少有人会预料到它会导致如此严重的系统故障。由此可见,系统中隐藏的某些互联性只能在发生故障时才会显现。

在调试一项技术,或者在试图根除某个错误时,你会发现,系统的实际运行方式与你所期望的大为不同,无论是在汽车软件、互联网安全程序,还是城市基础设施中。在某些情况下,出现的错误都很简单,很容易被理解和修复;但是在更多的情况下,错误是不易被觉察的,甚至几乎不可能被诊断和修复。重要的是,对这种错误进行分类和编目,恰是我们研究复杂系统某个部分的第一步。这部技术世界的“博物志”至关重要,就像博物学家走进大自然、研究大自然,将物种及其复杂性分类编录一样,我们也需要对技术采用类似的研究方法。

我们将会越来越需要“技术博物学”。显然,要想发现bug,“守株待兔”是远远不够的。许多技术开发人员都会主动搜索bug,并将它们集中放入数据库中,以系统化的方式加以解决。

更重要的是,在软件开发领域中,人们开始努力尝试打破这个怪圈。他们开始测试边界情况,搜集用户实际可能做出的各种怪事,而不再局限于预设固定的软件使用方式。例如,奈飞公司通过这种策略合理地开发出了“混沌猴”(Chaos Monkey)。“混沌猴”的功能非常简单:它会出人意料地使奈飞系统服务中断。这里面的基本思想是:只有在观察到了庞大的奈飞系统如何应对各种故障之后,工程师们才能想出办法来维护系统的稳定,并以此抗御突如其来的各种意外情况。奈飞公司希望,在“混沌猴”完成了其使命后,工程师们所设计的系统运行方式,与实际的系统运行方式能够完全匹配。

从失败中吸取教训,是理解任何复杂系统的重要机制。回顾一下科学史便不难发现,几个世纪以来,博物学家们一直在利用这种方法研究自然界中的复杂系统。

像生物学家一样思考

在我年纪尚轻时,对我而言,在所有词汇中,最令我感到困惑的一个词便是“杂项”(miscellaneous)。“杂项”这个词看起来是如此不可思议,我常常惊讶于它何以能够存在。这个词的有趣之处在于,它看上去像是用多个不同的语言单位拼凑而成的。我甚至不清楚它的准确发音是什么,但是它确实非常吸引人。

这个词的魔力不仅仅在于它的拼写和发音。看似混乱的拼写早已透露出它的含义:生活中,总有些地方是杂乱的。“杂项”意味着,即使是混乱无序,也可以构成一个类别或一种组织方式。“杂项”的存在本就是一种肯定:无论有多么不规则、多么杂乱,混乱的“秩序”是有可能被容忍和接受的。

接受“杂项”,即接受一种能容忍“杂乱”的精神,并不是每个人都能轻松做到的。在面对某个复杂情况时,包括我自己在内的许多人,本能反应是想要以某种方式去简化它,去除所有杂乱因素,并找出隐藏在背后的优雅结构。这种方法一旦成功,就会给我们带来极大的满足感。当我们找到导致失败的单一原因时,情况就是如此。但是,如果这种方法不起作用,我们就只能直面一片混沌,到那个时候,很多人都会感到不知所措。

与一般人不同,以研究世界“博物”为业的博物学家们,早就习惯了面对“杂项”。当他们发现正在观察的动植物的生活习性和行为习惯符合某种秩序时,他们会倍感欣慰;当然,即使不符合某种理论上的秩序,观察也会为他们带来其他收获。因为缺乏完整的理论框架,他们或许无法解释所见到的每一种生物,但是他们会记录下每一个细节,并尝试着去理解。有一个有趣的反例:某次,一位年轻人请物理学家恩利克·费米(Enrico Fermi)说出粒子物理学所研究的诸多粒子的名字,费米回答说:“年轻人!如果我能记住所有这些粒子的名字,我就是一名植物学家,而不是物理学家了。”博物学家是什么样的?比如约翰·詹姆斯·奥杜邦(John James Audubon),他对美国境内的鸟类进行了分类和绘图。与物理学家不同,博物学家认为应该了解每一个物种的细节,就算不知道所有物种之间的相互适应性,至少也要知道它们的名字,这是十分重要的。

在自然界中,也唯有通过研究生物进化中的错误和故障,譬如突变和疾病,我们才有可能了解生命系统的奥秘。例如基因复制过程中出现的错误,从染色体中的大型畸变,到脱氧核糖核酸(DNA)中不正确的代码复制,以及它们所导致的、可见的差异或缺陷,都是我们了解基因功能的突破口。研究果蝇的基因突变,有助于我们深入理解生命体如何从单细胞发育而来,以及基因蓝图如何培育出完整个体。具体来说,生物学家破解控制身体形态的关键基因序列的途径之一,就是观察一种可怕的触角足突变体,即一种在原本应该长触角的地方长出了腿的苍蝇。

对于技术系统,我们也需要采用同样的方法。虽然无法理解所有技术系统之间的所有交互,但这并不妨碍我们成为“技术博物学家”。我们可以将系统及其各部分的多样性记录下来,并加以分类。即使无法完全理解整个系统,我们也可以通过考察异常情况和分析故障等方式,获得卓越的见识。

为什么需要生物学思维

复杂的技术系统更接近生物学系统,因此,用生物学思维思考复杂技术是个不错的选择。为了从整体上理解系统,我们也会忽略掉一些细节,这时,物理学思维才是首选。我们真正需要的是经过物理学思维锤炼的生物学思维。

生物学思维和物理学思维是解释世界的两种不同方法,适用于不同的系统,而且通常是互补的。

复杂的技术系统需要生物学思维的3个原因

那么,我们应该如何对待复杂的技术系统呢?它们是生物系统还是物理系统?理解技术系统应该采用哪种思维方式?现在我们就来探索生物系统和物理系统的特征,并与我们所了解的技术系统特征进行比较。

复杂的技术系统需要生物学思维有以下3个原因。

第一,生物系统通常比物理系统更复杂。

在物理世界中,系统的组成部分一般是相同的,也就是说,物理系统通常是这样的:由相同的气体分子组成封闭系统,或是由同一种原子组成单质,比如钻石。此外,在整个系统中,各部分之间的相互作用方式往往是统一的,例如卫星围绕行星运行的方式。

但是在生物学中,情况却不是这样的。在生物学中,系统的组成部分不仅类型繁多,而且涉及很多层级。例如,细胞中的蛋白质具有多样性;生物个体内部的组织器官也功能各异。要研究蓝鲸的交配行为,海洋生物学家就不得不考虑一切与之相关的事情,比如它们的脱氧核糖核酸,以及海水的温度等。生物系统中的每个组成部分不但各不相同,而且还很难从整体中被单独拆解出来。例如,要想观察一只变形虫的细胞核,并尝试分析它的特征和功能,就需要让细胞核留在生命体内,只有这样才能了解细胞核如何适应变形虫的生活,如何提供涉及细胞诸多功能的核心遗传信息。现在,我们的技术系统正变得越来越复杂,显然,它们更像生物系统而不是物理系统。

第二,生物系统有别于物理系统的一个重要因素是,生物系统是有历史的。

生物会随着时间的推移而进化。尽管物理学所研究的对象也不是无中生有的,天体物理学家甚至还经常讨论恒星的进化进程,但是相比之下,生物系统更容易受到进化的影响。实际上,这正是生物系统的根本特性之一。生物系统之所以会呈现出如此复杂的结构,正是因为系统中存在极为复杂的历史路径,而且,在漫长的进化进程中,历史路径还会受到众多因素的影响。因为生命体的形式很复杂,所以任何微小的变化都有可能会带来意想不到的后果。随着时间的推移而发生的变化,一直在做着修补工作:以零敲碎打的方式修整着系统,使之适应新的环境。

与技术系统一样,生物系统的进化也会留下遗留代码。皂荚树为什么会长刺?一个解释是,有了这些刺,这些树就可以“确保”叶子不会被猛犸象,或者其他北美巨型食草动物吃掉。当然,那些动物都已灭绝了。随着这些巨型动物的灭绝,对种子荚遗传基因进行编码的信息也势必会出现进化,当然,“长刺”这个信息到现在还没有消失。

虽然在这个问题上仍有很多争论,但许多科学家都认为,在生命体的基因组中存在着许多“多余物质”,这些物质也被称为“垃圾脱氧核糖核酸”片段。它们在进化进程中被积累起来并留存至今,却没有任何特定的生物学功能。许多复杂的技术系统,例如软件系统等,都包含着这类不会再被使用的功能,这些功能甚至可能已完全过时。与此类似,在许多生物系统中也存在不少这样的退化性状,它们原有的功能已不复存在。

对于生物系统和技术系统的相似之处,我们无法完美地一一对应。当然,生物系统处理遗留代码的方式与技术系统是有所不同的,皂荚树最后可能会变得没有刺。如果这个性状确实是无用的,那么长刺对于皂荚树来说就是在浪费能量。因此,在未来的进化中,在与那些因为不长刺而更能适应环境的树种的竞争中,长刺的皂荚树会败下阵来,从而被淘汰。倘若真是如此,那么我的子孙后代就不用再承受被皂荚树刺伤的风险了,对此他们应该感恩。在大多数技术系统中,这种可能性都是不存在的。尽管遗留代码会让软件程序变得过时且效率低下,但它们却不会被自动清除。

第三,生物系统与技术系统的相似性还可以通过前文所提到过的高度最优化容限模型来进行分析。

某个看上去很强大的技术系统,可能会因为一些很小的干扰就出现灾难性的故障。在生物系统中也会发生同样的事情。例如,总的来说,人类具有很强的环境适应能力,但是人类基因组中的某个微小突变却会导致侏儒症,而且受到影响的两个基因副本是具有致死性的。无论是在生存尺度上,还是在构成材料上,人类以及其他生命体都与粒子加速器或计算机网络有所不同,但是所有这些系统的复杂性和脆弱性却有着深层意义上的相似之处。

总而言之,生物系统与技术系统确实存在着深远的“亲缘”关系,这意味着我们可以从生物学思维中学到很多东西。

技术领域的“生物学家”

技术系统变得越来越复杂了,我们对它们的理解也走向了两个极端:要么,只能得到关于系统运行的一般性概念,但对其内部细节印象模糊,甚至一无所知;要么,对系统的若干组成部分有零碎的了解,但并不知道这些组成部分是如何融合在一起的,也不知道该对系统行为作何预期。前者趋于物理学思维,而后者则趋于生物学思维。

面对越来越强的复杂性,许多人选择通过物理学方法,抽象掉细节来获得对系统的一般性认知。

在思考一个系统的不同交互层级时,我们要记住,那些看上去毫不起眼的底层细节有可能会升至顶层,从而变得对整个系统至关重要。

如前所述,我们可以在技术系统的错误中学习,就像生物学家在遗传错误中进步一样。但是,生物学家所做的并不仅限于此。虽然这种做法听起来会令人稍感不适,但它绝不是无的放矢。当我们预测不出某个复杂系统可能会产生何种反应时,或者无法确定基因组中的哪些变化可能会产生预期的效果时,我们通常需要利用一定的随机性来找出系统的行为倾向。从根本上说,这些系统都是非常复杂的高度非线性系统,所以我们不得不“借用”自然进化进程中的修补措施,来探索它们的运行方式。

要将生物学思维应用到对技术系统的研究中,我们就必须认识到,“修修补补”是构建系统和理解系统的一种重要方法。

这种生物学思维还可以帮助我们更好地理解天灾人祸。比如说,我们需要借鉴生物学家对癌症的观点:在某些细胞长成肿瘤后,不能简单地说,这是某件事情出了问题。癌症其实是诸多因素和多种生物反应累积所致,而且在这些因素和反应之间还存在复杂的相互作用。癌症是身体出现的大规模故障,这种故障足以致命。

当物理学遇见生物学

如前所述,技术具有诸多“生物学性质”。它不仅“笨拙”,而且会在进化进程中因为修补而生长变化,同时还拥有许多繁杂的细节。那么,这是不是意味着,我们应该放弃探寻复杂性背后的规律呢?绝对不是!在理解技术系统时,物理学思维也能发挥重要作用。

我们在试图理解一个复杂系统时,必须先确定以何种分辨率来考察它,或者说,必须先确定所考察的细节涉及哪个层级。在我们所关注的层级上,细节的精准度如何? 

我们对身边的各种系统审视得越是仔细,就越能看清生物学与物理学之间的平衡关系。在生态系统中,在我们每天依赖的混沌技术中,皆是如此;在希腊神话中,在讲给自己听的故事中,亦复如是。

事实上,“讲故事”是一个非常好的方法,能够让我们融汇生物学思维和物理学思维。有些故事就像精心设计制造的机器,毫无赘述,所有情节都非常合理。当然,也有这样一类故事:感情丰富,铺陈繁多,所出现的元素不一定会推动剧情发展。虽然不是推动故事情节发展的关键元素,但它们同样很重要。这就是与物理学肩并肩的生物学,当我们讲故事时,在增添故事丰富性方面,两者皆不可或缺。

生物学思维必须与物理学思维“和谐共处”。事实上,生物学家的最终目标同样是创建模型,并识别出规律,只不过这个目标所涉及的范围可能较小。在面对一项复杂技术时,我们需要从野外生物学家的角度出发,围绕其边缘进行各种各样的实验,看看它会做出怎样的应对。当然,在这样做的时候,我们的最终目标仍然是求得某种程度上的一般化。这种方法并不鲜见。

接下来,我们的讨论将转向另一个领域,其间的知识可以帮助我们在把握技术系统的同时,实现微妙的平衡。

复杂性科学的视角

复杂性科学,是管理和理解复杂系统的一条自然路径。它能够定量地研究庞大且复杂的互联系统,无论是生物个体,还是生态系统;大到万维网,小到电影演员的合作网络。提到后者,我们自然会想到凯文·贝肯定律,也就是六度分隔理论。复杂性科学是一个发展迅猛的、令人振奋的研究领域,我自己也涉足其中。它利用各种强大的思想和数学框架,探寻着复杂系统的模式和含义。它所采用的方法极其广泛,从理解网络结构,到构建拥有大量交互主体的计算机模型,也就是基于主体的模型(agent-based model)。

与野外生物学方法一样,某些复杂性科学方法可能更适合用来了解复杂系统中某个子系统的行为,而不是整个系统的行为。我们还可以利用复杂性科学的方法来找出异常值,也就是复杂系统中不符合一般规则的部分。在所有这些方法的共同作用下,我们便可以确定系统中哪些部分更值得深入研究,从而更好地了解它们是如何相互作用的。我们必须协调好抽象化的复杂性科学方法与其他方法之间的关系,后者往往可以帮助我们找到“无法平滑嵌入模型”的特定部分和细节。

在这里,我们必须再一次面对物理学思维与生物学思维之间的紧张关系。一方面,我们希望技术世界拥有简单和优雅,希望那些混沌不明的东西消失;但是另一方面,我们必须承认,有些事物既是庞杂的,又是微妙难解的,还会随着时间的推移发展和进化,这便是心智成熟的标志。在成长为独立的个体之后,我们会认识到人际关系的复杂性,认识到人际交往的很多精致微妙之处。与此类似,当我们所处的社会逐渐成熟起来之后,人们必定会认识到社会结构中固有的复杂性和不规则性。复杂性科学,尽管绝非“万妙灵丹”,但确实可以帮助我们实现这种平衡:既能突出需要特别关注的细节,又能为知识范畴和关注程度设定恰当的边界。例如,复杂性科学可以告诉我们,系统为什么很容易就会变得不稳定:如何变得不稳定,以及我们必须特别关注哪些地方。如果一个简单模型已经证明了,某个大型技术网络中的一个微小变化很可能会导致网络彻底崩溃,那么我们绝不能对此保持“无知的幸福感”。

知易行难。想要在物理学思维与生物学思维之间找到平衡点,并非易事。这是一个艰难的探索过程。在漫长的思想史上,人类一直沿着这个方向不懈地探索着。

思维方式的进化

事实上,许多先贤都曾试图理解周遭世界。在历史上,爱奥尼亚(Ionia)是最早出现这种严谨思想活动的地区。爱奥尼亚是一批古代城邦国家的总称,这些国家位于爱琴海之畔,也就是现在土耳其的西海岸,古希腊的第一批哲学家就出现在那里。在苏格拉底时代到来之前,他们已开始潜心思考宇宙的奥妙。这些古希腊哲学家的思想是前苏格兰学派思想的一部分,并且拥有一致的特点:压倒性的简化和一般化。

很难想象,现代科学作为收集新奇事物的手段之一,却没有办法解释那些新奇的东西,但这就是当时的科学,存在于生活的方方面面。当今时代,我们不再把科学视为收集古怪事物的一种活动了,更不会认为科学就是对这些事物的解释。

这是一种融合了物理学思维的生物学思维。我们必须把这种思维方式引入到技术领域中。对于这项工作,从一定程度上来说,人人都可以参与其中。此外,我们还需要技术领域的野外生物学家,需要他们在复杂的技术大厦中挖掘“意外之物”,并与难以理解的事物“做游戏”。那么,这些人会是谁?在当下这个专业化时代,我们需要一些通才,他们有能力识别并牢牢抓住系统的各种细节,以及未被理解的边界情况和关键节点。

我们需要通才

因为各种系统会以多种不同的方式相互关联,所以人类越来越需要将某个知识领域与另一个知识领域联系起来。

为了克服这种困难,我们需要培养通才。在这里,通才是指既能看到“土地的地形地貌”,即拥有抽象的物理学思维;又能在尚未理解整个系统的情况下便懂得欣赏系统细节,也就是拥有复杂的生物学思维的人。毫无疑问,在构建复杂系统时,通才是最适合成为博物学家和野外生物学家的人,而且必不可少。他们可以从一个片段跳到另一个片段,检查出那些没有意义的部分,并在巨大的技术系统中挖掘出正在发生事件的线索。

或许有人会问:既然知识量增长得如此迅猛,那么当今世界是否还有通才存在?

当今世界,通才当然是存在的,只不过想要成长起来却非常艰难。要培养出能够很好地扮演上述角色的通才,第一步是要先培养出一大批“T型人才”。这个术语最早出现在计算机教育领域,[32]而后泛指在某个领域内既拥有高深的专业知识,也就是拥有T型中的“主干”那一竖;又拥有广泛知识,也就是拥有T型中的那一横的人。

那么,这种类型的人应该是什么样的呢?数据科学家正是T型人才的典范。数据科学家的职责是利用计算机科学和统计工具挖掘大型数据集中的隐藏含义。这项工作与具体学科没什么关系。

为了很好地完成工作,数据科学家必须了解多个领域的专业知识。我们在应用数学家身上也看到了类似的特征,他们要跨越学科界限,用定量工具找出各学科的共同之处。这便是通才的模样。

通才还可能出现在咨询和图书编辑等行业中,你甚至可以在风险投资界看到他们的身影,在那里有很多人不但拥有多领域的丰富知识,而且还懂得如何有效利用这些专业知识。如果有人想同时在外层空间、3D印刷、农业技术和科学探索工具等领域有所斩获,那么他必须得拥有通才的潜质。

通才既拥有专业知识,又乐于探索诸多不同的领域。但是,要想培养出T型人才并不是一件简单的事。他们先要将专业化与普遍性结合起来,才能着手去解决那些日益复杂的问题。

事实上,最令人费解之处往往最能让通才感到如鱼得水。在那些令人费解的地方,系统是如此复杂、如此紧密地相互联系着,以致我们只能尽力将“杂项”记录下来。这就意味着,通才的培养不仅在于学习已知知识,更在于探索未知领域,寻找前人所不及的新方法。而这又意味着,通才不仅要掌握严谨的人文科学思维,还要拥有数学思维和逻辑推理能力,甚至还要学会数据可视化技能,等等。在这里,或许我们可以用中世纪早期的英国小说《希尔德》(Hild)中的主人公来作类比。[35]希尔德天生聪慧,因擅长织造挂毯而为人熟知。说起她操作织机、飞速织毯的技巧,人们都形容她“眼睛一转就能创造出一个新花样”。对于她的智慧,人们的评价亦复如是。这种建模思维(pattern-making mind)的本质特征是:能够创建联系,并看清互联网络。正是因为拥有这种能力,希尔德才得以游刃有余地周旋在种种地缘政治的阴谋中。

当然,如果让通才“单独行事”,那么他们够发挥的作用也相当有限。只有在与专家一起工作时,通才才能发挥出最大的作用:他们能够在翻译和交流的过程中为专家提供很大帮助;或者对专家的工作进行补充,而这种互补性非常重要。由此可见,在企业或组织中,为每个大型项目配备通才,或者流动性的通才小组,是很有必要的。通才可以为整个项目提供必要的背景知识和价值。必要的时候,企业还可以设立一个通才部门,对外服务,与专业公司合作,形成互补优势。

通才并不仅仅是T型人才。T型人才只是比一般的专业人士拥有更广的知识面;但作为通才,还必须有意识地将多个有实质性区别的领域联系在一起,尽管这样做有可能会失败。最优秀的通才,能够将如编年体般的历史细节与建模思维完美地结合起来。拥有建模思维能力的人,不会是那些只擅长抽象化和一般化的人,而是那些善于创建联系和类比的人。在高度复杂的系统中,对各部分相互关系和交互作用的洞察是非常重要的。因而,拥有建模思维的人,通过直觉和生物学思维相结合的方法,便能够理解,至少是部分理解这些系统。

我是国际赏云协会(The Cloud Appreciation Society)的成员。在我眼中,尽管万里无云的碧空也很美丽,但如果能形成一定的对比,或许会更令人激赏。也就是说,天空需要云。在我第一次告诉我太太,我是赏云协会成员的时候,她以为那是一个稀奇古怪的组织。于是,我给她看了很多“证据”:终身会员资格证、小徽章和官方证书等,但这反而让她觉得更加不可思议。然而,我真的认为,云既美丽又迷人。不过,在这个方面,我的理解并不比任何一个热情的业余爱好者深入多少。

未经专业学习的人,或许知道云的种类有很多,却不一定清楚它们之间的区别。你可能会说,有暴风雨来临之前的云、蓬松的云、色彩斑驳的云等,然而这是相当幼稚的分类方法,不能充分反映出云的复杂性和多样性。按照正式的分类和称谓,我们常见的云包括:积云、卷云、雨层云、积雨云等;还有一些特定的子类型,譬如碎云、陆架云、荚状云等。

云和其他大气现象,虽然不是人类所制造,但我们仍然可以从对待它们的方式中,学到一些对待复杂技术系统的思维方式。当我们不理解某个现象或某个系统或心生畏惧时,不应该避之若浼。有些事情即使暂时无从解释,但也应有一席之地;虽然处在尚待理解的范畴,但也可成为深入研究的楔子。

在面对某个完全无法理解的事物时,可以暂且先关注该系统中的细节,尝试着去理解整体中的某些特定部分。说到底,我们在研究系统时所采用的生物学方法,其实就是迭代和修补。也就是说,细节和意外情况不但能够帮助我们更加深入地理解系统,还能不断提高我们的洞察力。

在复杂难解的事物身上,自有神奇曼妙之处。那个闪耀着炫目光芒的技术网络复杂得令人难以置信,因为其各个组成部分之间拥有着紧密的联系和相互作用。许多时候,我们无法了解它的每一个部分,也无法完全理解它的整体性,不过,能对它有个不完美的把握,或许已经足够。我们可以与技术携手,谦卑前行。

生物学思维是理解复杂世界的一把金钥匙

认识复杂系统的正确态度是:对于难以理解的事物,要努力克服我们的无知;一旦理解了某个事物,也不会认为它是理所当然的。谦卑之心,加上迭代的生物学思维,就是洞悉复杂世界的正确方式。

简化直觉是由复杂性科学家发展起来的一般模型,它为启发式方法奠定了基础。启发式方法可以使我们得以理解系统,同时又不会被其复杂性压倒,并能与“包容性的将就”相结合,这也是约翰·盖尔的“一般系统滑稽论”所采用的视角。这些用来窥探大规模复杂系统的小窗口,体现了我们对待技术的谦卑之心。

另外,在面对复杂的技术系统时,我们还可以采用另一种更加积极的思维方式。

以欣慰感看待不理解的事物

我们或许不了解机器或系统正在做什么,在某些情况下,它们甚至可能是由多种技术构成的,但无论如何,它们都是人类智慧的“儿子”,是我们智力的“后代”,因而技术成就也可以令我们倍感欣慰。数千年以来,人类一直非常珍视这种情感,它给我们带来了巨大的快乐。现在,我们只需要将为人父母的自豪感转移到技术领域即可。

那么,这种欣慰感对于技术而言究竟意味着什么?最基本的,我们这些机器的创造者可以从技术“后代”的“成就”和“能力”中获得快乐。

我们可以将这种欣慰感延伸到更广阔的领域中。许多人都有自己支持的球队,并会为它的胜利而倍感自豪,尽管其实他们与球员们并无交集。当自己国家的运动员在奥运会上夺冠时,当自己国家的公民因重大发现而获得权威奖项时,我们都会感到兴奋无比。同样的道理,人类也可以为机器所取得的“成就”而感到非常欣慰,毕竟它们是由人类创造的,即使它们的成就不是我们的个人成就,即使我们无法完全理解它们。事实的确如此。从苹果手机到互联网,技术进步让许多人倍感欣慰,并心生感恩,尽管他们不一定了解这些技术的工作原理。

即使我们所构建的机器的复杂性超出了人们所能理解的范畴,我们也无须感到不安或失望。当我们的孩子创造出了令人惊讶的作品,而我们却无法理解时,我们是不会感到绝望或担心的;相反,我们会为他们的成功感到高兴,甚至会心生感恩。对于技术系统的“作品”,我们完全可以给予类似的回应。

“欣慰感”是一个框架,能够帮助我们认识到,我们正循着祖先数千年来的足迹前进着。[25]在前行的道路上,越来越少有人能够理解“人造世界”中最复杂的部分了。较之以往,最近的趋势也算不上新鲜或不同。

通过“欣慰感”这个镜头折射出来的谦卑之心,实为一种乐观主义精神,它让我们对自己所构建的这个“不可理喻”的世界心怀希望。除此之外,谦卑还能让我们在不断的追求中始终保持平衡:既能把握所构建事物的所有维度,又能看清自身的局限性。当然,对于专家来说,这是一种使命。

而且,谦卑还能帮助我们看清神秘与奇迹之间的区别。

谦卑之心+迭代的生物学思维

对于复杂的技术系统中的神秘性,人们通常会有两种潜在的极端反应。第一种反应是有意且极力地削弱它的重要性,认为系统中根本不存在任何神秘的东西。对于系统的运行方式,这些人会编织出一些简单的故事。这些故事也许很吸引人,但都严重削弱了系统的复杂性。他们认为,自己对正在使用的技术了如指掌,任何问题都是能解决的小问题。许多大型的科技公司都是这种风格,他们把所有意想不到的系统行为统统归结为小问题,还认为系统自身已经在处理这些问题了。

另一种极端反应则来自那些醉心于寻找神秘和未知事物的人。这些人并不在乎这种事物是否真的存在。他们通常都是技术的门外汉,总是把设备或系统的内部运行神秘化,并以此为荣;他们对苹果手机或电网的工作方式赞不绝口,并称其为魔术。这些人会问自己的父亲“电灯和真空吸尘器的工作原理是什么”,并满足于“简直就是魔术”之类的答案。不过,大多数人的反应都处于上述两种极端反应之间。他们可能会承认,在系统中存在一定程度的神秘性,但同时又希望自己可以理解这个世界。

当我们把奇迹和赞美,以及对神秘世界的感知都考虑进去时,事情就变得更加混乱了,我们甚至可能会“喜欢上”某种现象的复杂的美感。奇迹不一定要以牺牲可理解性为代价,反之亦然。事实上,许多人都发现,在面对一个非常庞大且复杂的系统时,自己理解得越透彻,应对得越自如,内心就会越愉悦。

我们必须努力维持这样两种相互对立的状态:神秘而无奇迹、神奇而不神秘。第一种状态要求我们努力克服自己的无知,绝不能沉迷其中;第二种状态意味着,一旦理解了某个事物,我们就不会认为它是理所当然的了。

我们永远无法完全理解那些拼凑而成的复杂系统。我们始终会面对一些难解之谜,但是没关系,只要不害怕、不沉迷,就可以找到最好的方式——谦卑,哪怕携有一丝崇敬也无所谓,毕竟那是我们自己所构建的系统。谦卑、好奇,以及欣慰感,或许就是我们能做到的最好的状态了。我们必须坚持运用生物学思维,即使尚未实现对系统的充分理解。如果失败了,我们可以再谦卑一点,但绝不能气馁;我们定会找到让直觉深入技术系统底层,窥其堂奥的途径。

在构建和使用复杂的技术系统时,我们试图了解它们如何运行以及如何失败,但是这种了解确实存在着极限。不过,这并不意味着我们要停止创造;恰恰相反,它只是意味着,当我们继续构建这类系统时,要明白它们还会不断成长,会变得更加奇异、更加复杂。因此,我们必须重新调整期望值。

从现在起,承认自己无法完全理解这些系统吧。这种做法将会改变我们理解和应对系统的方式。如果你参与了构建,那么在组装系统时,你就会意识到自己的理解能力是有限的;如果你与系统进行了交互,那么你会认识到繁杂和意外是常态,而不是例外;如果你试图彻底消除这种常态,那么你不但会失败,还会让事情变得更糟。

事实上,对于那些无法被完全理解、无法被完美处理的事物,我们还有很多话可以说!人类,将在这个纠缠时代继续生存下去,并发展壮大。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,324评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,303评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,192评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,555评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,569评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,566评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,927评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,583评论 0 257
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,827评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,590评论 2 320
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,669评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,365评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,941评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,928评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,159评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,880评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,399评论 2 342

推荐阅读更多精彩内容