摘|具有适应性的复杂系统

当我们说一个组织是一个具有适应性的复杂系统时,我们指的是:

  • 它包含许多相互依赖的部分(比如人员、技术、流程、文化等)。
  • 各个部分可以自行改变自己的行为,并适应系统的变化。

宇宙中充满了这类的系统,而且关于复杂性的研究已成为一门成熟的科学学科。 就连你自己也是一个具有适应性的复杂系统。你可能认为自己是一个单元(即一个自我),但是“自我”只是一种抽象。实际上,你是有机细胞的集合,尽管这个细胞集合拥有许多惊人的能力:思考、移动、感知,并作为一个全新的整体对外部做出反应。从细胞的角度来说,你的每个细胞都有专门的作用,细胞会进行新陈代谢,细胞群通过协同工作对你的身体产生巨大的影响。你体内生物系统的复杂性使得你的身体具有高度的弹性和适应性。虽然你不能长生不老,但由于体内复杂的生物系统,你仍然可以承受巨大的环境变化,甚至是人身伤害。

通常,当我们谈论技术“系统”时,我们关注的是软件系统以及基于网络的体系结构。这类系统都会越变越复杂。例如,互联网就是一个新兴的、非常复杂的系统。网络中的各个服务器都是独立运行的,但是它们之间的相互依赖与连接产生了一个新兴的整体,我们称为“互联网”。然而,大多数软件都不具备真正的适应性。

如今我们编写的 API 软件都非常傻瓜。我并不是说你的代码质量有问题,也不是说你的代码不能按照设计工作。实际上,情况恰怡相反。大多数 API 都会按照预期的方式运行。然而,问题就出在这里。你可以编写一个非常智能的 API,让它自动适应流量模式的变化或不断增加的错误,但是它无法在没有人工干预的情况下添加新功能,或者自行修正某个复杂的错误,或者自行更新文档,从而方便我们学习。

也许未来这一切都会发生变化。但就目前的情况而言,软件系统的行为完全由人主导。好消息是,人具有良好的适应性(特别是与软件相比)。API 组织就是一个具有适应性的复杂系统。组织内的每个人都可以做出许多局部的决策,有时是集体决策,有时是个体决策。当这些决策长时间、大规模地出现时,就构成了系统。就像你的身体一样,这个系统能够适应很多变化。

但是,处理复杂的系统需要特殊的方法。我们很难预测复杂系统中的变化带来的影响,系统中某一部分的变化可能会导致另一部分发生意想不到的后果。这是因为组织中的人员会不断适应变化的环境。例如,如果引人一个规则,通过 “容器”部署软件,就会产生广泛的影响,从而影响软件设计、人员的采用、部署的过程,以及组织的文化。

(via 《Continuous API Management》