为什么技术研究者需要像生物学家一样思考

我们的技术已经远远比不上他们最初创建时的样子。坦白的说,他们变成了一团乱麻。

技术变得越来越复杂

我们的软件随着不断的加入补丁已经演进了很多年,有的甚至已经几十年了。IRS(美国收入服务)从1960年使用软件技术,航天飞机使用的电脑芯片已经有几十年的时间了,在我们的电动车里的代码已经是非常的古老了,在很多的情况下已经是非常复杂以至于难以理解。所有东西从我们的厨房器具,医学设备到法律条文和政府结构都是这样,总的来说凑件——这是个从工程和计算机科学世界借鉴的单词,意在描述那些虽然复杂混乱但还是可以使工作能够得以完成的东西。凑件往往是在一段时间内被创造和能够适应现阶段,被不断的打着补丁还坚持提供服务的组件,但必须有人来维护这样的庞然大物。

我们把自己看成是逻辑和理性的动物,认为我们是可以创造美好的东西,但事实可能并不总是这样。我们构建的系统随着时间在不断的演化,同时混乱度和复杂度几乎达到了边界值。

面临如此的复杂度,我们尝试引入一种简单的逻辑来理解软件技术。这种方法就像物理学家会写一个公式来解释一个大系统的行为,有时会起作用。但是大多数的情况下,在大量的复杂度下,我们不会成功。这些系统不能被修改成一个可以代表他们工作机制的公式或者一种接地气的理论。他们是内部紧密联系的,有太多的异常和边界条件,又或者是因为早期的不良设计而导致的多年演变出的过度复杂。

我们举个简单的例子,写一个允许汽车在大晴天在高度路上同行的软件可能比较简单,但是一旦程序需要满足添加街道,路障,显示天气和其他运行的汽车,还要描述不断涌入的人流和其他未知因素,整个系统的复杂度就开始急速膨胀。这类系统开始成长变得更加复杂,而且不再可以被我们人类线性的哺乳动物的大脑理解。

来自生物学家的启示

可能是时候要严肃的讨论技术的生物组织性了。技术随着时间的变化会变得极为复杂。简单的说,如果他们有生物属性,可能我们需要来看看生物学家是如何检测活生生的系统的,从单细胞到组织再到整个生态系统。我们可以从生物学家如何在他们的领域进行试验,如何探寻生物组织的世界中得到借鉴和启发,然后将这些方法引入到我们对人造系统的理解中来。

那么,生物学家都是怎么做的呢?他们学习研究生物或者系统的一种方法就是检测什么情况下研究对象会出错。生物学家学习生物细胞内能量的转化通过修改一些东西,或者思考生物组织是如何从胚胎发展出来的时候是通过观察一些基因上的错误是如何被处理的。这些系统的Bug可以提供信息让我们知道内部的一些机制。有时候生物学家找出了这些错误,或者自己制造出这些错误来创造一些修改并对系统进行测试,来深入的思考是例如是什么可以让苹果飞起来或者细菌是如何真正的运作的。

得到的方法

那么技术工作者如何使用这种方法呢?

  1. 从软件bug和异常的行为中学习。这种方法可以从比较中让我们感知到我们预想中的行为和实际软件的行为有多大的差距。但是我们可以比生物学家更近一步的是,我们可以用错误来测试系统。Netflix开发出了一款程序叫做Chaos Monkey,用来使他们的一部分网络瘫痪以此来保证软件的可靠性,这样当实际出现异常的情况时,保证所有的行为都在意料之中。超级计算机系统有可能受到宇宙射线的影响翻转bit位从而引发大规模的计算错误,人们通过注入错误到电脑来研究它来这些问题。
    好消息是90%的此类错误都是有害的。

  2. 从进化的角度来思考和管理陈旧的代码
    就像我们并不惊讶于我们DNA中的陈旧片段依然存在并且还在被我们改变——人类依然会背疼因为我们最初是四只脚走路的——过时的代码和技术是我们构建的复杂系统的标记,所以一些大型的组织仍然在使用floppy disk就不会显得很奇怪了。

  3. 关注小的片段
    生物学家不会尝试一次性的理解整个系统并且建立复杂的生物系统中物种之间的交互。相反,他们会关注一对物种,或者其中很小的一部分,观察他们是如何交流的。通过不断的观察和更新理解,在复杂系统的边沿进行把玩和测试,他们会慢慢的获得对整个系统行为的了解,与此同时单个组织和相关的部分之间的联系也会被构建出来。

生物学的方法当然也有他们的缺陷。最近的研究表明使用从神经科学中借鉴的研究方法来研究微处理器和几十年前的视频游戏,研究者只能得出最基本的见解,例如一些事实-系统内部存在时钟。但大部分的复杂的内部过程依然是未知的。

技术的局限性

然而,从生物学家身上我们也学到了如何对待大而老的系统。具体来说就是,无论你遇到了什么样的系统,必须要有慢慢把玩和测试的研究心理。

例如,当公司换了一个新的经理,通常他们都会有强烈的愿望想要改变很多东西和建立影响。在面临一个复杂的系统时,这是一个严重的错误决定,因为有很多变量和未知的因素,因此如果真的这样做了可能会更糟。

慢慢的研究测试可能不是一个很直接有效的方法,但是在面对一个不断变化的复杂的系统我们必须要这样做。做出一些细微的改变对于研究生物系统和人造的系统都是明智的。

其实,这些方法和生物学家们的思维方式有关系:谦卑。生物学家不期望一次就了解整个系统。当然我们都希望对事情有一个彻底和全面理解,但是那可能不会发生。一种谦卑的,不完美的理解常常是我们能够做到的最好的了。

技术工作者必须要明白技术的局限性,无论是组织内部的系统,亦或是我们创造的产品,甚至是我们创造出的东西可能接触的东西。仅仅是意识到我们的想像和实际之间的潜在差距就能帮助我们更好的为失败做准备。

参考文献:https://hbr.org/2016/07/why-technologists-should-think-like-biologists

你可能感兴趣的:(为什么技术研究者需要像生物学家一样思考)