你好,我是郭东白,今天我们来聊聊架构师的第二个生存法则:架构活动需要尊重和顺应人性。
自从学习计算机专业的那一天起,我们似乎就走入了一个简单直接的机器世界,一个完全靠逻辑和数字主宰的世界。于是我们总不自觉地认为凭借计算机就可以解决所有的问题。也许正是计算机的作用被过分夸大,使得我们在软件研发过程中走进了思维盲区,忽略了软件研发归根结底是一项人类活动这个事实。
毫无疑问,在架构设计中如果能尊重和顺应人性,也就是人的基本感受和合理需求,那么我们也会拥有另一个解决问题的视角,辩证思考我们正在从事的架构工作。
反过来,忽略人性可能给软件架构带来致命的失误。到现在我见过最昂贵的一个架构失误,大概超过几十亿美金,就是因为设计者对人性的忽略而造成的。
提起人性,马斯洛需求层次模型是绕不过去的理论。但由于信息的传播,导致我们现在理解的马斯洛理论是有偏差的、不完整的。
所以今天这节课,我会从源头来萃取马斯洛的理论,并结合一些简单的例子,看看我们在架构工作中应该如何理解人性。然后在之后的两节课,再结合真实案例,来看看人性是如何给予我们另一个解决架构问题的视角的。
我们生活在一个信息唾手可得的时代。大多数人,包括我自己在内,经常会满足于在一个信息聚合类网站浅度寻找来获取知识。不幸的是,很多网站、书籍对信息源的抽象概括不够准确,导致我们往往被一个曲解过的理论和它的衍生品所蒙蔽。
马斯洛理论就是如此。在上世纪40年代,它被认为是心理学上的一个巨大突破,原因就在于这个模型很好地概括了人性。一般的网络文章会把马斯洛的理论解释为需求层次模型,认为高层次需求建立在低层次需求之上,低层次需求的满足是高层次需求出现的前提。
而如果我们从源头来萃取马斯洛理论,去追本溯源的话,会发现这种表述不完全正确,这就导致我们没法很好地利用这个理论来指导实际工作。
如果从源头来萃取马斯洛理论,可以得到什么样关于人性的理解呢?这里有两个重点,首先是动机有优先级。
我先解释一下马斯洛这个研究的背景。马斯洛是在研究动机(Motivation)时提出需求层次的。所谓动机,就是人类的行为到底是由什么驱动,其实是对人类行为的当下原动力,区别于过去、未来或者是有可能起作用的动力。
“需求(need)”这个词,马斯洛在文章里也反复提到。这个词的翻译是准确的。
但是把“需求”和“层次”这两个词合在一起,就是一个非常糟糕的翻译。因为它并没有完全表达出马斯洛理论的实质。
马斯洛认为,人类的动机以抢占顺序依次排列(Being arranged in a hierarchy of prepotency)。马斯洛用“prepotency”这个词,特指人类的动机是依次独占人类的全部意识的。也就是说,一旦一个动机进入了这个状态,那么这个动机会召唤人的全部意识、行为去满足这个动机。我们把这个动机称作主导动机(Prepotent motivation)。
举个例子来解释说明一下,比如马斯洛动机层次的最底层,也就是生理需求动机。当一个人在生理上长期处于饥饿状态,那么这个以饱腹为目的的动机,就是他的主导动机。我特别强调一下,这个饥饿与没吃早饭那种饥饿不同,这是一种由自然灾难带来的长期的食物匮乏,是一种因为饥饿而导致死亡的、严重缺乏食物的生理状态。
在这种情形下,你整个人,包括你的视觉、听觉、嗅觉,你的思考、记忆、行为等等,都只有一个目的,那就是满足你填饱肚子这个生理需求。而这个生理动机是你所有感官、意识、行为的组织者和决策者。这时候其他的动机都不重要,你甚至都不能感受到其他动机的存在。
只有这个动机背后的需求被满足了,而且是长期被满足了,那么由更高层次需求所诱发的动机才会被解锁。因而当这个新动机开始作用的时候,它又像之前的生理动机一样,抢占你所有的意识和行为,并且压制更高层次的动机,直到它背后的需求得到完全满足。
动机抢占意识的整个过程,如下图所示:
如上图所示,假设一个人同时存在5个需求,需求1和需求2已经被满足了,那么这两个需求就不会再诱发动机。而需求3、4和5没有被满足,它们会同时诱发各自的动机。但由于需求4和5诱发的动机被需求3所压制,因而最终是需求3诱发的动机,在组织和驱动这个人整体的意识和行为。
到这里,我们来总结一下马斯洛理论的第一个重点。马斯洛理论的本意是:我们可能同时并行存在着多个需求,这些需求之间并不存在依赖或层次关系。如果这些需求得不到满足,那么它们各自会诱发动机。但动机有优先级,且具备抢占性质。所以任何时候,只有一个动机在主导着整个人的意识和行为。
到这里你就会明白,马斯洛强调的不是需求有层次,而是动机有优先级。从某种程度上来说,诱发这些动机的需求也被传递了同样的优先级。所以把马斯洛理论翻译为需求层次理论,虽然不能说完全错误,但却没有完整传递马斯洛理论的核心观点,甚至是部分曲解了马斯洛的理论。
接下来是第二个重点,那就是动机是跃迁的。
其实我们学计算机的应该很容易理解马斯洛的理论,它跟硬件中断的机制几乎完全相同。计算机的各种外围设备在并行着工作。当它们需要抢占CPU的时候,就会发出中断请求。而人类的各种需求,就相当于并行运作的外设。需求诱发的动机,就相当于对系统的中断请求。而动机就像中断请求一样,各自有自己的优先级。高优先级的中断请求,则会抢占低优先级的中断请求。
想象一下,你身体和大脑中的需求是客观存在的,当这些需求得不到满足的时候,我们体内的相关传感器就会发出中断请求,也就是动机。但人是一个完整的机体,任何时候只能由一个动机来主导。那么在这种工作环境下,自然会对不同的动机有个优先级排序。
所以马斯洛认为,人的行为在单一时刻不是面向多目标做优化,而是面向单一目标做优化。一旦某个动机抢占了人的意识,那么它就抢占了这个人的全部意识,此时整个生命的所有思考、行为等,都在为满足这个动机而工作。那些帮不上忙的器官和能力,就被放置在后台运行了。可以说,在马斯洛模型下,主导我们人类整体意识和行为的工作机制是单线程的。
到这里,我们就可以把马斯洛理论的实质总结出来了:一般来说,人有且只有一个主导动机。这个动机由人的内在需求所驱动,并独占且主导这个人当前的一切意识和行为。直到这个动机背后的需求被完全满足之后,更高层次的动机才可能进入主导位置。
此外,马斯洛所讲的动机不仅是有优先级的,而且是跃迁的,对人的行为的组织和驱动而言是独占的。不幸的是,这个理论中更为核心的理念——动机独占和跃迁,都在信息传播中被遗失了。反倒是对这个理论表达不怎么准确,但是非常易于传播的需求层次模型,变得家喻户晓。
这就是你从源头深度探索一个理论时,能得到的别人得不到的东西。要知道,马斯洛理论并不是特例。我们会发现大量被传播的内容,往往是被极度简化过的,或者是以传播为目的而修剪过的。我们要认清楚一点,网站的目的是增长和盈利,不是最大化你的知识获取。因而在这个信息失控的时代,我们有必要重新回到信息源头,来获取真实的第一手数据和理论。
不信的话,你可以去网上搜索一下。每个架构师都引用的朗朗上口的康威定律,看看有几个翻译是和康威自己的表达是一致的?
接下来我们解读一下马斯洛的需求分类,之后的课程会用到这部分内容,所以精确地理解很重要。我这里还是把重点放在被网络媒体所歪曲解释的部分。
在生理需求之下是心理安全感。在最底层的生理需求得到满足之后,心理安全感这一需求诱发的动机就会成为主导人意识的主要动机。
很多信息聚合网站没有区分安全和安全感。我们这里说的安全感是心理上的诉求,不等于人身安全。安全是生理上的,仍属于刚才提到的生理需求的一部分。
心理安全感,在广义上指的是人们试图寻找的生活中的安全和稳定性,表现为更倾向于熟悉的、常规的、有结构的、可控的、已知的、可预测的和安全的事物。
马斯洛认为心理安全感的获得主要来自于一个人的成长过程。一个人从出生起,父母会为孩子就会提供熟悉、常规和有结构的日常生活。这种安全感也在随后的成长中逐渐扩展到了相对可控的、已知的、可预测的,以及相对安全的生活和工作环境中。
一旦我们处在一个特殊处境下,比如面临战争、瘟疫等灾难,哪怕我们没有受到直接的威胁,那安全感也会丧失。在这个时候,我们生命体所有的意识和行为都在为寻找安全感这个动机而工作。你可以回想一下新冠肺炎刚刚宣布时候人们的行为,全球大小商场里的口罩和手纸都被一抢而光。
接下来是自尊和被尊重的需求。自尊在马斯洛这里强调的是“有底气的自尊”(Firmly based self-esteem),也就是说,这种自尊来源于真实的能力、成就,以及其他人发自内心的尊重。
这是个非常有意思的定义。我们常常把有底气的自尊和较高的社会或企业地位划等号,其实不然。有些财务自由且身居高位的人也缺乏这种有底气的自尊。而在这些人的周围工作,是一件非常麻烦的事情,因为他们会把意见的不一致简单理解为对他本人的不尊重。这种工作环境对架构师来说简直就是噩梦。我建议你尽量避免让自己陷入到这样的环境中。
换个角度来说,对于一个员工而言,如果一家企业能满足他的自尊,让他感觉到自己是被需求的、被认可的,也会给他带来自信、成就感和工作的高度投入。
讲到这里,你有没有发现马斯洛提出的这些需求有什么共同特征?
是的,这些需求都是内在的,是源自一个人自身的,而不是由周围人强加给他,或是由环境、文化的压力而产生的。这也就意味着由这些需求而诱发的动机是内在的,有强大的驱动力。
站在马斯洛的理论上来看,许多企业经常挂在口上的“拥抱变化”的价值观,其实是反人性的。这个价值观要求员工去接受一个他们本来认为是不连续的、不安全的、不一致的,甚至有可能是不公平的处境。有些企业认为文化宣讲频繁了,员工就会接受了,但至少马斯洛不是这么认为的。马斯洛认为除非这种内在的需求被长期满足了,才不再成为主导动机。靠外在的宣传,是没有用的。
有底气的自尊也一样,这是发自内心的需求,不是说大家认为你应该有自尊你就有自尊了。而是你内心认为自己具备这种自尊,那你才会真的具备。
最后是自我实现,马斯洛讲发自内心的需求指的是自己真正想要的,而不是别人眼里的成功。你可能觉得某个大人物已经完成自我实现了,也可能觉得某个小人物都不具备自我实现的条件,更别说完成了。但事实可能刚好和你的猜测相反。自我实现不是来自于他人的某种排序,而是一个人发自内心的诉求。
当然马斯洛后来还添加了其他的需求。 比如说审美(Aesthetic)和超越(Transcendence)。 不过这些需求在软件行业中不怎么出现,我们就暂时不讲了。
总结来说,马斯洛认为人的动机是内在的。这些动机来自人的不同心理需求,从最基本的生理上的需求,到心理安全感,再到群体认同感,然后是内在有底气的自尊,最后到最大化的自我实现。
如果这些需求没有被满足,它们就会刺激出人的动机,去满足这些需求。但这些动机并非同时生效,因为任何时候都只有一个主导动机在支配着我们整个人的感官、意识和行为。这些动机依次出现的顺序,如图所示:
当生理需求得不到满足,那么源于生理需求的动机1就会处于主导地位,并且会屏蔽其他动机。只有生理需求得到满足了,那么处于生理需求之下的、未满足的安全感,才能诱发以获取心理安全感为目标的动机,然后成为主导动机。以此类推。
我们这是一个架构课,但今天花了这么长时间来研究这个理论,就是因为它对软件研发和架构活动具有实际的指导作用。软件是由人类所构造的一个虚拟的存在,而这个构造过程,是靠一组研发人员共同协作完成的。既然马斯洛的模型适用于一切人类活动,那么这个模型当然也可适用于与软件构造相关的架构活动。
而你作为一个架构师,以马斯洛的理论来指导架构方案的设计和组织架构活动,会让你的设计尊重和顺应人性,避免因忽略人性而带来巨大的失误,甚至可以帮助你找到一个突破性的解决问题的视角。
为了帮助你更深刻地理解,我来给你分享个经典案例——儿童的MRI扫描问题的解决,来看看我们可以怎样通过顺应人性来解决一个具体的问题。
MRI的扫描过程非常慢,通常会持续半个小时,而且还要求患者必须保持一动不动的姿势。对于儿童来说,这肯定很难做到,所以给儿童做扫描的前提就是先做全身麻醉,这就让本来一个相对安全的诊断设备变得非常危险。
后来GE的设计师Doug Dietz做了一个非常巧妙的设计,他把MRI机器改装成海盗船的模样,并告诉孩子说你要进海盗的船了,必须一动不动保持30分钟,直到我们救你出来。如果动弹,就会被海盗抓走。
结果呢?孩子们非常配合。就这样,在对MRI成像机制和扫描流程没有做任何技术更改的情况下,全麻率从之前的80%降低到了10%。
这个案例在当时非常轰动,甚至引发了一次文化浪潮。从本质上来说,这个案例就考虑了患者的人性,体现了设计思维。
很显然,把MRI机器改装成海盗船模样这个解决方案与硬件设计毫无关系,甚至和技术也不沾边,但它却完美地解决了MRI设备所面临的问题。
这种从共情出发,深度理解和尊重用户的做法,就是设计思维的精髓所在。之所以能提出这个方案,主要在于我们拥有了另一种看待问题的视角:
答案不言自明。
到这里,在架构活动中考虑和顺应人性的必要性和重要性,相信你已经很清楚了。那么接下来一个更为重要的问题就是:在软件架构活动中该如何顺应和考虑人性呢?接下来两节课,我们会着重来讨论。
把马斯洛的理论翻译成“需求层次理论”,虽然没有错,但却没有完整传递马斯洛的理论,甚至是部分曲解了马斯洛的理论。不幸的是,这个理论中间比较核心的理念动机独占和跃迁,都在信息的传播中被遗失了。倒是对这个理论表达不怎么准确,但却非常易于传播的需求层次模型,反而变得广为人知。这就是你从源头去深度探索一个理论时,能得到别人得不到的东西。
很多原理如果不是从源头萃取而来,而是通过信息类网站浅度浏览获取的,那么似乎你也很难把这个原理运用好。没有费力获取,那么你也很难深度理解。我不知道这里面是否有普遍适用的认知科学的原理在,不过至少对于我自己来说,通过阅读原著作来获取知识,是运用好一个原理的大前提。
因而我也可以说,在这个信息过载的时代,超越他人的一个行之有效的办法,就是从源头来获取知识,从而掌握他人所看不到的规律,获得超出常人的理解,帮助指导架构工作,甚至是帮助我们实现超越性的突破。
三个思考题,任选一个:
在马斯洛的理论中,自我实现是个内在的目标,是由个人决定的,但这个内在目标会影响整个社会的产出。假设社会存在某种有效的手段可以干预这个目标的话,你认为社会应该干预吗?举个例子,假设达芬奇不花那么多时间作画,他有可能成为一个更伟大的科学家。或者他不花那么多时间去研究科学,他有可能成为一个更伟大的艺术家。如果社会能干预达芬奇的选择,你认为社会应该干预吗?你介意被他人干预吗?
能否举一个在你身边发生的、违反了马斯洛理论的例子?它为什么会发生呢?
大胆假设一下,在后人工智能时代,如果我们人类(被)进化成了机器与人的混合体,其中机器也有它的需求(比如没电了要充电),那么你能想象一下,这种混合体会有什么样的需求呢?我们该怎么设置这些需求的优先级呢?
欢迎把你的想法和思考分享在留言区,和我一起交流。相信经过你的深度思考,知识会掌握得更牢固。