系统架构6 功能| 你能通过什么动作改变什么?
原创 精进学思行 精进学思行
以前听过一个笑话,“如何把大象冻起来?”,分为三步:打开冰箱门,把大象塞进去,关上冰箱门。
这个笑话能很好解释本文想分享的内容——系统的功能。在系统架构5 形式| 没有形式,何来功能?中介绍了"形式",它是功能的载体,而功能则是一个系统,特别是人造系统存在的主要目的。本文会从下面4个方面进行分享:
什么是功能?
如何从外部视角分析功能?
如何从内部视角分析功能?
交互和价值链是什么?
1 什么是功能?
1.1 功能定义
如果说形式回答的是“系统是什么?”,那么功能的简单描述就是“系统能做什么?”,按照《系统架构》中的定义:
功能是可以产生或促进性能的活动,操作或转换。在经过设计的系统中,功能就是系统得以存在的动作,它最终会令系统的价值得到体现。它是通过形式来执行的,形式对功能起着工具性的作用。功能要从实体间的交互中涌现出来,是产品或者系统的一项属性。
我理解这个定义有3层意思:
①功能是活动、操作和转化,至于转化什么,后面会提到(操作数);
②经过设计的系统的价值,通常需要通过功能来体现;
③功能常常需要不同的实体间的交互来实现。
举个简单的例子,现在天气比较热,我们常常使用空调来降温,它的功能就是通过内部的一系列动作,将室内的温度从高温转换为低温。而此刻,我居住的地方的空调刚好坏了,它没有实现降温的功能,价值就没有没有体现出来,而我试了一下,它的鼓风功能是没问题的,但是风的温度一直是常温, 很有可能是制冷剂出了问题。
1.2 功能=过程+操作数
我们在系统架构1:系统架构-对系统的抽象和分析分享过,功能还有个更简介表述:
功能=过程+操作数;
比如:(房子)的功能=安置(过程)+居住者(操作数)
过程比较好理解,它指的就是对象经历的一些模式转换,通常指对象的创建、销毁和改变。
而上面提到的“对象”,在功能中有个常用的说法“操作数”。什么是操作数?在《系统架构》中定义是:
操作数是一个对象,可能在某段时间内稳定而无条件的存在。但是不同于系统架构5 形式| 没有形式,何来功能?提到“形式”,操作数不需要先于功能的执行而存在,它常常会以某种方式被功能所操作。它可能会由功能中的过程部分来创建、修改和消耗。
比如一部汽车可以实现运输功能,但事先你不知道运输的对象(操作数)是人还是物?
1.3 功能的表示
功能中的过程和操作数有个很大的不同点,过程常常是暂时而动态的,很难通过单个照片记录整个过程,比如下图中左边的一个,我们很那知道这是要取下来还是安上去。
我们当然可以用一系列图或者视屏来记录整个过程,当然我们还以用系统架构3 :如何用简洁图形描述系统架构?提到的语言来进行描述,就是用矩形表示操作数,用椭圆表示过程。而且它们还可以拓展一下,就是把操作数的状态和过程需要的载体也体现出现:
明白了功能的定义,我们如何对一个系统的功能进行更进一步的分析呢?《系统架构》提供了两种不同的视角:外部和内部。外部视角,就是系统对外展现功能和价值;内部视角重点说明的是系统如何通过内部的过程实现外部的价值。以空调为例,外部视角就是看它的制冷或制热表现,内部视角,就是看里面的压缩机,冷媒,管道等互动方式,从而实现外在的制冷/制热效果。
2 外化的价值
从外部视角分析系统功能时,我们可以问“系统对外体现的,与价值相关的主要功能是什么?”,它包含了3个方面:跨越边界,主要功能,价值相关的操作数。
2.1 跨越边界
我们分析的绝大部分系统都是有边界和对外接口的,而功能的价值常常需要穿越边界,通过接口对外呈现。还是以空调为例,空调的出风口就是一个边界,如果它具备制冷功能,就意味着它能让冷空气跨越边界(出风口)对外呈现出来。对于一个有创意的设计团队,它的价值也需要通过跨越边界的外化来展现,不能说,我们有一个好想法和设计方案,但在脑子里,它需要通过交付的设计方案来实现。
2.2 主要功能
空调主要用来改变温度的,汽车主要是用来出行的,手机主要是用来通信的。这里提到的“主要“说明的是系统的主功能,因为绝大部分的系统都不只是单一的功能,即使设计时是满足单一功能目的, 但常常可以用在其它的用途,比如锤子可以钉钉子,也可以成为凶器。
此外,在现在的工作中,工程师面对的需求和潜在功能实在太多了,如果不定义好主要功能并将其做好,最后导致的就是做了很多辅助功能,但是主要功能却没有做好。
延伸来看,在职场上的人,有不同的岗位和角色定位,比如市场、运营、工程、产品等,如果从功能角度看,我们每个人都有自己的主功能(主业),也会有自己的辅助功能(辅业),而且时常还会收到其它不同来源的需求,从我的经验教训来看,我们要有意识控制需求,先把主业做好,而不是弄了一堆副业,就好像一个产品经理,如果没有本质工作(识别需求,定义产品功能,项目管理等)没有做好,而宣称自己能写几行代码,是产品人中代码写的最好的,其实是没有意义的,没有价值的。
针对以上的情况,我们可以问自己两个问题:
先不考虑我们需要加入的功能,先考虑构建这个系统时,本来想要展现的功能是什么?
哪一个的失败,会导致操作人员抛弃或替换该系统?
2.3 和价值相关的操作数
前面提到了"功能=过程+操作数"。而大多数价值的实现是体现在操作数上,甚至更加具体的是操作数的某个属性。以下图为例,运算放大器的功能是放大(过程)输出信号(操作数),而我们要放大的是输出信号的振幅,从“低”的状态放到"高"的状态,我们需要的加价值就体现在输出信号(操作数)振幅变高(状态)上。
所以,如果想要更加细致去分析和描述系统的外化价值,《系统架构》中建议问三个问题:
①系统在体现其价值时所操控的是哪个操作数?
②该操作数的哪个属性和价值最相关?在该属性中,和价值最相关的是哪个状态?
③本系统通过哪个过程,来改变操作数中与价值最相关的状态?
我们以Bose的主动降噪耳机为例,它操作数是人耳附近的声音,而其中最相关的属性是声音的声压级,可以初略分为高、中、低三个状态,和价值最相关的是低的状态,Bose的降噪耳机,通过发送一个和外在本来的噪声相反的声波,实现声音的声压级从大到小的状态变化,体现价值。
3 内在的机理
3.1 识别方法
上面的Bose耳机可以发送反向声波,降低噪声,它内部具体是怎么实现的?这就到了动能分析的第二个层次,就是分析系统是如何通过内部功能实现外部功能的?这个分析常常比外部分析难,因为他需要更多的专业知识,就以Bose耳机为例,你至少要知道声波抵消的原理,要了解电声学,还需要懂得算法如何实现等。
本书提到好几种方法去分析功能的内在机理,比如逆向法,标准蓝图法、隐喻法、先例法、建模法和实验法等,这里只举例说明“标准蓝图法”。
它有点像我们通常所说的“套路”,《系统架构》以出行为例说明,在150年前一个人要从家中出发去城镇,他所遵循的过程应该是:把马牵出马厩,上马,沿着马路骑向城镇,到达城镇,把马关进马厩。
我们今天从家开车到办公室,所采取的过程也是类似的,先把车从车库开出来,然后沿着公路驶向公司,到达公司之后,又把车停到停车场。
对比上述过程,就会发现他所包含的过程是相当固定的,就好像一个“标准蓝图”。
这些套路比较通用,适用性很强,可以帮组我们理清思路。但是它也有不足,就是对于表层,一些常规的东西是能够通过这样的方式识别的,而对于一些专业性很强,需要更深刻的理解东西,有时会感觉不足。
以我们专业(振动噪声)分析的一个经典套路“源—路径—响应”为例, 对于一个完全不了解这个专业的人,如果他稍微了解了一下,就会觉得思路很清晰,但如果再往下一层,激励源怎么确定?边界的影响在没考虑?如果和路径耦合了,怎么解耦?他们各自的权重是多少?对于超出分析频率范围的,如何近似判断?又会觉得很多地方其实不清楚。
而要弄清楚它们,需要更多深入而系统的专业知识、方法和工具。
3.2 交互和价值链
虽然我们很难穷尽内部功能中最底层的实现,但是我们可以上升一层,梳理出它们比较上层的一个逻辑,并用OPM或SysML来清晰描述内部的功能过程。在这个过程中,有个特殊的操作数,它由上有过成创建,而由下游过程销毁,这种操作数构成了交互,比如下图中泵的内部功能,水不断流入和流出,并被不同的过程操作。
上面这些内部过程对操作数的作用,最后呈现到系统的边界和接口的地方就是我们前面提到的外部功能。而所谓的内外之分,看我们对系统的选择,如果看把一个人作为一个系统,放在一家公司,其它同事对他就是外在的,如果是一家公司看成一个系统,应对市场的需求,则一个员工就只是内部系统的一个环节。
如果需求和价值确定了,价值的创造过程就可以识别出来,而这些构建价值的过程形成的链条就是价值链,从这个链条中,我们就可以识别和分析哪些换件创造了价值,哪些是关键的环节,而我们在《精益工作法》:去掉不创造价值环节提到的精益原则, 其实就是尽量消除不创造价值的环节的过程。
总结
功能是什么?它是产生或促进性能的活动,操作或转换,可以分为过程和操作数。价值和常常产生在系统的边界和接口处,它和和操作数的某些状态直接相关,操作数可以通过程产生和转化。