无论整体论,还是分层简化论,两者一致认为,复杂系统中并非所有东西都可以由较低层级的原因来解释。比如,无论你如何努力,都无法轻易地在一只已被分解的鸭子(参见图1.2)中找到用来行走、游水和嘎嘎叫的部件。然而,如果是在公园看到它,却可以一眼认出它是一只鸭子。
这对复杂系统的管理者来说具有深远的意义,诸如你我及其他开发经理、项目经理和团队领导,都将从中获益。这意味着,即便某些人对系统的某一层级了然于胸,也可能无法应付其他层级,无论高低,因为还需要其他的知识。因此,一个分子生物学家可能不是一个好园丁——即便他知道细胞核、基因和RNA的原理机制,也不意味着他知道怎么照顾那些花花草草;而好园丁也不需要知道基因组和染色体的知识。类似,公司的CEO需要知道许多企业管理的知识,但一旦面对辅导工作或其他人事管理,他也会一筹莫展。(对此,我想多数读者于我心有戚戚焉。)
了解某些基层的知识也许确实有用,但从根本上来说,企业管理所需的知识和经验与人事管理完全不同。程序员乔伊(Joel Spolsky)提出 抽象漏洞定律 [Spolsky 2002]来解释系统的组成部分如何更清晰地在更高层中暴露无遗,然而这些较高层级原本是要通过抽象来隐藏低层的实现细节。如果更高的编程层受到来自底层的损害,就可以认为这些层泄露了。呈现给用户的那些晦涩的错误消息通常是软件抽象外露的另一种常见表现(参见图1.3)。
图1.3 这是一个抽象泄露吗?
我们可以在其他复杂系统中看到相似的问题。我清醒的头脑偶尔会突然短路,而似曾相识的感觉、遗忘、随机记忆和其他怪异的感觉也会侵扰它。对于这一切,看上去唯一合理的解释就是我低层神经网络中的异常泄露到高层的思想意识中。其实,不需要分析我的神经链路,也可以很好地控制我的意识,虽然去看看神经科医生也不错——我脑海中难以启齿的奇思妙想其实相当普遍。类似地,我们即使不了解汇编编程,也可以写出很好的高级语言程序,虽然一些底层的知识有时可帮助你更轻松地处理一些问题。管理与之相同,CEO不必成为一个优秀的人事经理才能管理企业,他只需要将所有的人事管理交给一个可信赖的管理团队。(这与开发经理、项目经理和团队领导不同,他们的日常工作也需要人事管理的工作)。当然,每个人还是要有一些为人处世的技巧,以便应付在高层表现出来的底层问题(也就是说,泄露发生了)。