让你彻底理解系统,系统思维和复杂系统的设计(一)
前言:
这个世界有些系统是由人类构建的,比如手机APP,国家的金融系统,半导体设备,春运高铁调度系统等,有些是经过社会发展或自然演化而形成的,比如大脑的结构,黑猩猩的部落种群系统等,倘若没有一套分析它们的的原则,方法和工具,普通人认识世界是非常粗糙和混沌的,专业人士正是由于掌握了系统方法论而更能够触摸到世界的本质。本系列文章分别从1,什么是系统和系统思维;2,从形式和功能之间的映射关系来分析系统架构;3,如何创建良好的的系统这三个主题,由浅入深的把这个话题说个透!保证比96.68%的大学老师讲的更清楚哈。(2017.3.28补充下思维导图)
让你彻底理解系统,系统思维和复杂系统的设计(一) 让你彻底理解系统,系统思维和复杂系统的设计(一)一,系统和系统思维
系统定义:系统是由一组实体和这些实体之间的关系所构成的集合,其功能要大于这些实体各自的功能之和。
这个定义体现了两个重点:
1,系统是由相互作用的或相互联系的实体所构成的。(实体,也可称部件,用来构成系统的各个小模块)
2,实体之间发生相互作用时会出现新的功能,新的功能不同于那些单个实体所具备的功能。
根据重点1,我们可以确定A,如果某物是一个连贯的整体,那它就不是系统。比如一块砖(宏观层面上),因为它不包含实体,但一面墙却可以构成一个系统,因为它包含实体(许多砖块和砂浆)以及关系(负载,粘合以及几何关系)。B,有实体但实体之间无关系也不构成系统,例如西湖的水和印度的一对情侣,他们不构成系统。
与系统密切联系的另外两个概念是架构(architecture)和系统思维(system thinking),架构就是对系统中的实体及实体之间的关系做的抽象描述,你可以用文字,流程图,思维导图等简洁直观的表达出来。而系统思维就是把某个现象或某个问题明确视为一个系统,进而来分析它。系统思维与其他思维并列,例如批判思维(评估或质疑某个说法的有效性),分析思维(根据一套规律或原则进行分析),创新思维(从0到1或组合现有的创造新产品或想法)等。一位牛逼的思考者(掌握数学,工程,物理,生物,心理,历史经济等学科最重要的100种实用模型,以后我会整理这100个模型哈)能够依据现实灵活使用各种思维模式进行思考和验证可行性(这就是认知,cognition),如果他还能意识到自己当前正在使用的是哪一种思维模式(这是元认知,meta-cognition)。
根据重点2,系统之间发生相互作用,产生新的功能,我们称之为涌现(emergence),我们之所以要构建系统,就是为了得到令人满意的涌现物或者功能(系统所做的事情,也就是它动作和输出)。但有时候系统也会出现我们不可预料也不合人意的涌现物。用微信做例子:
对微信涌现出的功能进行分类
系统架构第一条原则就是涌现原则,除了功能之外,系统还会涌现性能,可靠性,可维护性,安全性等等。当各实体拼成一个系统时,实体之间的交互会把功能,性能和其他内在属性涌现出来,我们要思考并设计出合乎我们预期的涌现和控制意外的涌现属性。
总结:
1,实体之间的交互会生成涌现物,系统的价值是由涌现物所赋予的。
2,涌现的结果,使得变化以无法预测的方式进行传播。比如微商。
3,能够涌现出预期属性的系统,是成功的系统,不能够涌现出来预期属性或意外涌现出不良属性的系统,是失败的系统。
二,用系统思维分析系统的步骤
步骤一:确定系统及其形式与功能
形式与功能
系统同时具备形式(form)与功能(function)这两个特征。形式说的是系统是什么样子,一般是以物质载体或信息载体呈现的。尽管形式本身不是功能,但系统若想表现出功能,则必须具备一定的形式。
功能描述的是系统能够做什么,功能需要以形式为手段展现,功能比形式抽象一点,因为功能涉及转变;功能是由过程(process)和操作数(operand)组成的,过程,是功能中表示动作或转换的那一部分,也就是改变操作数状态;操作数,是其状态会在过程中发生改变的事物。每个由人类所构建的系统,都需要用某种形式的工具来承载功能,也都具备某一过程和某个有人类主观价值的操作数,系统存在的意义就体现在这个操作数的变化上。
形式和功能的区别,可以用商品与服务来说明。商品是有形的产品(可以将其称为形式),而服务则相对较为无形,且更是面向过程的产品(可以称之为功能)。每个系统都可以作为形式来出售,形式通过表现功能而体现价值,同时系统也可以作为功能(或称为服务)来出售,功能借助形式来发挥价值。
总结:
每种系统都具备形式,过程与操作数这三项特征。MIT有个伟大的语言学家叫乔姆斯基,他提出过转换文法(transformational grammar)的概念,他认为所有人类的自然语言都具备一种深层结构:第一部分是一个名词,充当执行动作所用的工具(可称之为形式),第二部分是一个动词,用来描述该动作(可称之为过程),第三部分是一个名词,用来代表动作的对象(称之为操作数),无论哪一种人类语言,其基本单位都是句子,句子恰好有两个名词,一个动词。因为这种“名词—动词—名词”格式的模型,或者说“工具—过程—操作数”格式的模型,要么是所有系统均具备的基本模型,要么就是人脑在理解任何一种系统都要采用的思维模式!把自然语言句子单元抽象出来的结构(名词—动词—对象)与系统三特征(作为工具的形式—过程—操作数)是惊人的相似!可见大道至简,真理太伟大了!
步骤二:确定系统中的实体及其形式与功能
步骤一得出了系统本身可以视为具有某种形式与功能的“大”实体,步骤二则把系统分解成多个实体,再分别确定每个实体的形式和功能,以及系统边界和系统所处环境的问题。
具备形式与功能的实体
我以微信朋友圈为例:
表中最右侧的列是朋友圈系统的形式,倒数第二列是系统的形式所分解(decomposition)而成的各个组成部分实体的形式,同理,各个实体的形式也可以聚合(aggregation)成系统的形式,分解与聚合互为可逆操作。
表中间两列描述了实体形式和实体功能之间的一一映射(mapping)关系,第一列是系统所具备的功能,第二列是系统的功能可以细分(zooming)成各个组成部分实体的功能,同理,各个实体的功能也可以组合成系统的功能,这就是系统设计者所要追求的的涌现效果。
运用系统思维,我们可以从系统的功能入手,对其进行细分,也可以从形式入手,对其进行分解,在现实世界中,有大到宇宙系统,小到夸克层面的系统,难道没有比夸克更小的系统了吗?为了避免这些问题,在实际工作中,我们应该选出恰当的系统边界,使得自己可以把系统思维运用到最为重要的部分上,系统思考者需要解决5个问题:
1,确定如何将系统初步分解为恰当的实体。
2,用整体思维找出潜在的实体。
3,重点分析,把关注点集中到关键的实体上。
4,把实体抽象出来,找出它的本质。
5,定义系统的边界,并将其与外界环境隔开。
解决问题1,确定如何将系统初步分解为恰当的实体。
几乎所有的系统都可以分为三类,第一类系统是由互不相同的元素所组成的系统,这类系统由界限清晰的实体组成,其分解方式自然是明确的。比如互联网团队可分解为产品技术部,运营部,市场部以及职能部门;太阳系可分解为太阳,行星以及其他小星体。
第二类系统是以模块化组成的,各模块之间(尤其是功能上)相对较独立,关系较弱,而模块内部之间的联系密集。比如放大器电路系统,可分解为输入端,电阻,放大器,输出端,电线等;微信大致可分解为对话列表,通讯录,朋友圈,个人信息等。
第三类是集成系统,这类系统很难再不影响功能的前提下进行简单的分解,它们通常是内部高度互联的系统。例如汽车的转向装置系统,其各个组件(轮胎,方向盘,悬吊,转向齿轮和驾驶杆)就是紧密联系的,而且其中有些部件同时又是其他系统的(行驶质量系统,传动系统)的组成部分。机械元件和集成电路都是属于集成系统。这类系统你得去图书馆借本书学习了,有些还是保密的核心技术。这类系统暂不考虑。
解决问题2,用整体思维找出潜在的实体
整体论强调的是整理理念(和还原论完全相反,还原论是个啥?哈哈,我就不告诉你),它从整体上把握事物之间的紧密联系,思维着力于整体。每个系统都可作为某一个或几个大的系统的一部分而运作,同时,每个系统也都包含着更小的一些系统,用整体论来思考这些关系,才好设计出与上级系统,下级系统和平级系统相协调的架构。
解决问题3,重点分析,把关注点集中到关键的实体上。
通过整体思维,发现了与系统有关的各种实体,现在则需要聚焦,筛选,把真正重要的实体找出来,在聚焦过程中,关键是把当前的状况和疑问确定下来,并把其中的关键点优先级提高。这个过程中可以问自己几个问题,对当前利益相关者(或称之核心用户)的核心功能是什么?这功能是否满足预期的设计目标?然后综观实体,这个实体所表达的功能对我的目标是否重要?根据人的认知能力,核心关注点不要超过7个。
解决问题4,把实体抽象出来,找出它的本质。
抽象是一种“只含本质不含细节的”表述,创建有效的抽象,可以把实体有关的重要细节凸显出来,同时又把当前不需要考虑的那些细节与复杂问题隐藏起来。比如在一个互联网团队中,本来是一个个复杂的人,可抽象成分工明确的部门;人体的血液循环系统,可以把心脏抽象成简单的泵。创建抽象机制的指导原则可以总结成下面四条:
1,针对形式和功能创建抽象时,要把重要信息凸显出来,把不重要的细节隐藏起来。
2,要创建在实体与实体间发生功能交互关系中得以表现出来的抽象。(见步骤三)
3,在适当的层面进行分解或聚合,并于该层面进行抽象。
4,在有效表达系统核心功能的前提下,创建尽可能少的抽象以降低系统的复杂度。
解决问题5,定义系统的边界,并将其与外围环境隔开
在现实中,我们一般都会把系统局限在某个范围之内,理由有两点,一是人类处理问题的能力有限而无法应对无限的实体;二是人类的主观价值判断而觉得没必要把系统范围延伸。在划定系统边界时要考虑以下几个问题:
1,把目标设定需要分析的实体包括进来。
2,系统边界符合规章或者法律制度的要求。
3,遵守第三方的接口定义或标准。
步骤三:确定实体之间的关系
根据定义,系统是由实体及其关系组成,而实体具备形式和功能的特征,那么这些关系可以按照特征分为功能关系和形式关系。
功能关系(或称之为交互关系)是指实体与实体之间对某物的操作,运输或交换的关系,在交互过程中,相关的实体可能会交换操作数,也可能协同对操作数执行操作。比如一个ERP系统中的客户管理实体的信息输入到生产管理实体中;
形式关系,是实现功能关系的载体,通常体现为连接关系(物质连接,社会关系连接或者bit连接)。比如肺与心脏通过血管等连接;
如果是系统内的某些实体与系统外的实体发生形式关系或者功能关系,这种关系通过接口的形式发生数据的交换。
步骤四:根据实体的功能及功能之间的互动来确定系统的涌现属性。
系统的形式领域不会发生涌现,把部件A和部件B拼接起来后,形式领域内只能得到A+B,是“线性的”;然而在功能领域,功能A加上功能B,结果复杂的多,可能会得到预期的C,D等和意想不到的E,F等。系统思维的重要目标就是努力预测涌现物以及涌现物带给系统强大的能力。系统的涌现物依赖于系统的功能,功能依赖于形式,这就意味着可以通过形式,预测系统的涌现物。比如通过合理移动杠杆的支点,可涌现出“四两拨千斤”的效果;早期陌陌APP的产品经理把位于男屌丝50公里的绿茶婊定位在男屌丝的50米处,涌现出了男性用户的慕名使用。支点的位置,软件的数值聪明的显示等影响系统的涌现功能。
总结:
由于系统思维就是把某个现象或问题明确视为一个系统,进而来分析它。因此我可以把系统的基本特征与系统思维的分析步骤一一对应起来。
在宏观层面上,系统思维的目标是令我们能分解复杂的系统,抽象出系统的本质来理解它的意义;其次系统思维的目标是预测系统的某部分形式改变后涌现物的的变化;更高级的目标是帮助系统决策者更好地判断,权衡,用系统思维分析形式和功能的优先级和利益相关者的利益点在哪里,如何合理的解决各方利益的先后顺序,这种解决方案又如何应对将来的变化;神级的目标是创造划时代的系统产品,某社交APP为了推广支付工具而创造的**功能比另一支付APP节省了过亿推广费而且几天的使用推广达到了对手十年之功,这就是神级产品的神级功能。