《系统之美》聊聊如何建立系统性思维
最近 AI 发展的非常迅速,AI 都快成为一个新的内核了。作为程序员,每天都担忧是不是会被 AI 取代。
AI 是一个很好的实现者、观察者,现在几乎不再需要人类去写代码了。那么对于我们这些程序员来说,如何能保证不被 AI 取代呢?
我的答案是:建立系统思维,掌握复杂系统的变化,成为一个决策者、管理者。
最近在读《系统之美》,将自己的一些想法写在这里。
1. 什么是系统
1.1 系统的三大要素
系统是由相互作用的元素组成的一个整体。系统的三大要素是:元素、关联和功能(目的)。
元素是系统的基本组成单位,它们可以是物理实体、抽象概念、人、组织等。关联是元素之间的联系,它们可以是直接的联系,也可以是间接的联系。可以是物质的转移运输、也可以是信息的传递。
功能/目标是系统的目的,它是系统的目标,也是系统的价值。功能/目标是系统的核心,它决定了系统的行为和结果。
1.2 三大要素介绍
1.2.1 元素
1.2.1.1 基本介绍
元素是系统的基本组成单位,它们可以是物理实体、抽象概念、人、组织等。元素之间的关系可以是直接的联系,也可以是间接的联系。了解一个系统,元素是最好识别的。整体来说元素也是最不重要的,比如说一个球队,当我们改变了其中一个球员,球队还是球队,除非这个球队是核心球员,他会改变整体球队的比赛策略和思路。而如果改变了关联,比如说规则,或者球队目标,那这个球队就完全变了。
1.2.1.2 存量和流量
元素这里有两个比较核心的概念,一个叫存量,一个叫流量。
存量是具有数量、级别、大小等等可以观测元素。
流量是指改变存量的方式和大小。
比如说一个浴缸,有水龙头,也有浴缸塞。这就是一个很简单的系统,浴缸里边的水就是存量,水龙头和浴缸塞的一进一出就是流量。
存量和流量一样重要,但是多数情况下,决定系统的是存量。存量往往相对流量来说数量级差距较大,任何流量的改变都需要时间,才能使得系统达到一个新的状态。也就是说,存量为系统带来了稳定性。
1.2.2 关联
1.2.2.1 基本介绍
关联是元素之间的联系,它们可以是直接的联系,也可以是间接的联系。关联是系统的核心,它决定了系统的行为和结果。比如说一个球队,球员之间的配合就是关联,球队的战术也是关联,球队的文化也是关联,这些关联决定了球队的表现。
1.2.2.2 反馈回路
在关联中,最重要的关联是,反馈回路。
反馈回路:元素的存量可能会改变与之相关的流量。
比如说存款,当我们存款的时候,存款的金额会增加,利息也会增加。这是一个存量改变流量的过程,就是一个反馈回路。
反馈回路中有两种非常重要的反馈:调节活路和增强回路。
调节回路:调节回路是指具有使得存量向着某一目标稳定的反馈回路。比如说一个简单的系统:热咖啡和散热。
散热这种回路会使得热咖啡的温度向着室温趋紧,这就是调节回路。
增强回路:增强回路是指,当存量增加时,与之相关的流量也会增加。反之依然。也就是我们常说的良性循环和恶性循环。
比如说人口,人口存量越大,人口的流量(生育率)会越大,导致人口存量更大,流量更大。
还有土壤流失,植被越少,土壤流失越严重,进而植被更少。
2. 常见的系统类型
具有相同模式的系统,会有相同的行为和结果。
2.1 单存量系统
2.1.1 具有一个存量+两个相互制衡的调节回路的单存量系统
举一个很直接的例子:
室温+加热器+散热。
室温是存量,加热和散热是流量。当室温高于设定温度时,加热器不工作,室内会散热,降低温度。当室温低于设定温度时,加热器工作,室内会加热,增加温度。
这类系统有两个非常重要的点:
- 补偿:简单而言,当我想要让室温达到26度,我需要把设定温度调节到26度以上。
- 主导:调节回路都会存在一个转折点,如果超出了调节回路的能力,系统会朝着另一个稳定点跑。比如说,加热器的能力不够,那么室温就不能增加到指定温度,只能增加到一个低于指定温度的点。
很多团队的技术债会进入一个“主导权逆转”的黑洞。当业务压力(流出)超过了工程师修复代码(流入)的极限,无论你如何加班,系统稳定性都会不可逆地滑向崩溃。这时候,单纯靠增加几个 Headcount(加热器能力不足)是救不回来的,必须切断业务流入。
2.1.2 具有一个存量+一个增强回路+一个调节回路的单存量系统
典型代表:人口系统
存量:人口数
增强回路:出生率
调节回路:死亡率
2.1.3 含有时滞的系统
代表:商业库存
存量:经销商汽车库存
两个流量:销售量和工厂订单
这里边会遇到三个时滞:
感知时滞:经销商对于销量的变化需要时间,才能感知。
处理时滞:调整订单需要时间逐步调整
交货时滞:工厂交货需要时间。
这类系统需要注意的是:
改变时滞系统的调节回路很可能导致存量振荡,很有可能没有把握住长期趋势存。
2.2 多存量系统
没啥特殊要记得
3.系统的三大特征
3.1 适应力
当一个系统存在多个调节回路的时候,系统存在适应力。当环境或者某些存量改变的时候,多个调节回路可能会依旧维持系统的稳定性。
这里有一个比较重要的点:有时我们可能为了提高生产力或者效率,选择牺牲了系统的适应性。比如说厂家直销,为了降低库存波动,厂家可能选择准时配货的方式直接发配件给制造商或者将产品给用户,整条产线会异常的短。虽然这样短时间内提高了效率,降低了库存波动,但是整个系统的适应性被牺牲了,中间丧失了很多存量缓冲,一旦有原材料缺失、产线崩溃的问题,生产系统可能直接瘫痪。
3.2 自组织
系统所具备的使自身结构更加复杂的能力,具有学习、多元化、复杂化、进化的能力。
比如说受精卵的发育、孩子学会讲话、一个社区的发展等。
系统的自组织性需要异质、创新,甚至是所谓的错误或者混乱。同样,我们也可能为了提高生产效率或者稳定性牺牲自组织能力。比如政府可能会更多的资助大企业,因为可以带来更大的收益,而不是资助给有创新但是风险较高的新企业。或者说在教育体系内压抑孩子的创新思维。
3.3 层次性
一个复杂的系统往往有多个子系统组成,子系统和父系统之间的这种包含关系称为层次性。
层次性这里几个重要的点:
- 子系统之间是相对独立的,子系统内部的联系往往要更紧密,子系统之间的联系往往要更松散。这也就是我们在写程序架构上常用的模块化,将一个复杂的系统分解成多个子系统,每个子系统负责一个功能,子系统之间通过接口进行通信。子系统可以随意拔插。
2.子系统有子系统的目标和发展方式,子系统的目标往往是为了实现父系统的目标,但也有可能是相反的。但是层次结构要很好的平衡父系统和子系统的目标、福利等等。比如说如果一个公司的老板对于每一个员工管控过于严格,那这个公司很难有发展;但如果员工过分追求个人荣誉,公司也很难发展。也就是说,要在过渡中央控制以至于丧失活力和人情和子系统绝对占优以至于难以保全大局之间找到一个平衡。
4. 系统思考的要点:
- 界定好系统的边界
- 确定好系统收到的限制,有时候不是架构或者目的影响系统发展,而是限制影响了发展。
- 把握系统的时间延迟
- 理解人类的有限理性:亚当斯密的理性人假设是不存在的,每一个人都会站在自己的角度把自己的利益最大化,结果往往是和总体目标是相悖的。比如说农民会大量种植某种去年价格很高的作物,这将导致今年农作物价格降低。
解决有限理性的方式就是:获取更多的信息。
5.系统思维之基模
不同的系统可能会有相同的模式。学习系统基模,学习系统思维的目的不是解释系统,而是为了找到那个改变系统的杠杆点。
- 政策阻力:当系统中不同子系统目标冲突的时候,政策会产生阻力,很多行为都是治标不治本,比如说出生率。罗马以前通过限制堕胎来提高出生率,但是这促使很多非法堕胎产业,导致适龄女性死亡率变高,孤儿增加,社会动荡,生育率更低。
解决这一阻力的方法是:1.强力政策 2.放弃政策。当你平静的时候,对手也会平静下来。 可以放弃压制单方面的目标,转而把资源投入到一个能协调多方目标的地方。