扫码阅读
手机扫码阅读

不现实的“机器化软件人假设” v2.0与“容许自由的温和家长制”助推

429 2023-07-18

我们非常重视原创文章,为尊重知识产权并避免潜在的版权问题,我们在此提供文章的摘要供您初步了解。如果您想要查阅更为详尽的内容,访问作者的公众号页面获取完整文章。

查看原文:不现实的“机器化软件人假设” v2.0与“容许自由的温和家长制”助推
文章来源:
吾真本说混沌工程
扫码关注公众号

在上一篇文章“2023-07-05修订版:懂人的软件开发:不现实的机器化软件人假设”中,我们谈到了机器化软件人假设,是不懂人的软件开发背后的原因。对于这个假设,当时的定义是“做软件的人,尤其是企业IT部门的管理者和相关业务部门的管理者,会不自觉地把非管理者的做软件的人,看作是可按照预设好的逻辑,随时运转的机器,或者运行指令的代码模块,且能随时替换”。由于作为管理者的做软件的人,也会被她/他的管理者在锚定效应的作用下,当作机器或代码模块,所以这个定义也适用于管理者。另外,除了定义中提到的服从性和可替代性,这个假设还包括另外两个性质。下面就对这个假设做一下补充,升级为2.0。

不现实的“机器化软件人假设” v2.0

机器化软件人假设 v2.0,指企业IT部门和相关业务部门担任管理者和非管理者的做软件的人,在锚定效应的作用下,会不自觉地把自己及其他做软件的人,看作是符合下面4个性质的机器或代码模块:

性质1:服从性。指做软件的人会把自己和其他做软件的人,看作是可按照预设好的逻辑不折不扣地,随时运转的机器,或者运行指令的代码模块。

性质2:可替换性。指被视为机器或代码模块的做软件的人,被认为可以像机器和代码模块一样可随时替换。

性质3:全然理性。指做软件的人被认为在做决策时,能从众多选项中,十分理性地选择最符合企业所制定的软件开发规范的选项,并按照软件工程和敏捷软件开发原则执行。

性质4:信息完备性。指做软件的人在做决策时,能完备地获得所需的信息。

其中,做软件的人指的是在软件开发和应用领域,做软件的人,即规划、设计和实现软件的人员。包括在企业业务部门规划软件需求的业务人员及其相关管理者,和在IT部门为这些业务人员设计和实现软件的需求分析、用户界面和体验、开发、测试和运维人员及其相关的管理者。

锚定效应,是一种认知偏见。指个人的决定或估算,会受到最初的信息(称为 "锚")的影响。这种信息往往是不相关的或随意的。这个锚会作为一个参考点,影响后续的判断和决策。做软件的人天天打交道的机器和代码模块,就是不自觉地将自己和其他做软件的人视为机器和代码模块的锚。

不自觉地相信机器化软件人假设上述4个不现实的性质的做软件的人,在实际工作中,会发现所提升的软件开发成效,难以让自己心服口服。让我们看看这4个性质为何不现实。

机器化软件人假设为何不现实?

机器化软件人假设之所以不现实,是因为如果基于它的4个性质做软件开发,那么企业软件开发实际成效会降低。让我们分别来看。

不现实的服从性。企业一厢情愿地认为,做软件的人都能像机器或代码模块一样,能不折不扣地服从自己所制定的软件开发规范。但面对这些规范,做软件的人在实际工作中,当因进度压力等各种约束,难以严格遵守时,就会消极应付。这种表面的“服从”,会导致企业难以提升产品质量和用户价值。

不现实的可替换性。企业一厢情愿地认为,只要健全了完备的文档机制,就能解决做软件的人因人员流动而导致的知识遗失问题。但在实际工作中,许多关键的上下文知识,会因当时相关的做软件的人都能理解,为节省篇幅,就没有写入文档,成为隐性知识。即使写入文档,也会寥寥几笔。当做软件的人被替换时,虽然也有交接,但一般不会详尽地解释这些上下文。这种替换,导致企业宝贵的隐性知识随着人员的流动而不断遗失。

不现实的全然理性。企业一厢情愿地认为,做软件的人在工作时,都能像机器或代码模块一样冷静和理性。但在实际工作中,做软件的人在做决策时,只具备有限的理性。比如一方面基于她/他对开发规范、软件工程和敏捷软件开发原则有限的理解,另一方面还要考虑在项目进度的时间压力下是否有时间遵守开发规范,最终做软件的人会“理性”地选择花费最小的资源,来实现“满足自己的考核要求”的结果即可。这种“理性的理性”(下文会讨论),导致企业难以提升产品质量和用户价值。

不现实的信息完备性:企业一厢情愿地认为,做软件的人在做决策时,就像拥有海量存储的计算机一样,能完备地获得所需的信息。但在实际工作中,做软件的人因为各种原因,如刚刚被替换上来不熟悉上下文、文档遗失、软件系统的信息复杂度超出一个人的认知负荷、欠缺动手操练和反馈等,所以在决策时只具备不完备的信息。这种不完备的信息,导致做软件的人在决策时,会出现意料之外的失误,给企业带来损失。

既然机器化软件人假设是不现实的,会降低企业软件开发实际成效,那么现实版的假设应该是什么样的呢?

现实版的人性化软件人假设为企业软件开发提供了新视角

现实版的人性化做软件的人假设,首先承认做软件的人都具备人类普遍的社会和心理特点,而不会将他们视为没有社会和心理特点的机器或代码模块。其次承认做软件的人是人而不是神,他们在做决策时,只具备的有限理性和不完备的信息。

人性化做软件的人假设,指企业IT部门和相关业务部门担任管理者和非管理者的做软件的人,当有意识地克服与机器和代码模块相关的锚定效应,就能将自己及其他做软件的人,看作是符合下面4个性质的有人性的人:

性质1:自我决定性。无论担任管理者还是非管理者的做软件的人,都天生具备以能自主做出选择和提升自我能力的内在需求为基础的内在动机(Deci, E. L. & Ryan, R. M.; 1985)。内在动机已经与更大的创造性(Amabile,1983)、灵活性(McGraw & McCullers, 1979)和自发性(Koestner, Ryan, Bernieri, &. Holt, 1984)相关联。当这种自主性被长期剥夺,人们会感到无助,工作成效也会收到损害(Wortman & Brehm, 1975)。

性质2:直觉反应性。当在诸如躲避突然飞来的石头、飞机遇到气流颠簸、遇到可爱的小狗等场景下,人们会不自觉地使用以大脑最早进化的杏仁核为主导的直觉思维系统,来下意识地做出决策。直觉思维系统具有不受控、不费力、联想、速度快、无意识、熟练的特点(Thaler, R. H.; Sunstein, C. R.; 2008)。

性质3:有限理性。当在诸如进行复杂的数学计算、旅行中选择哪条路线、高中生选择大学及专业等场景下,人们会有意识地使用以大脑最晚进化的前额叶皮层为主导的理性思维系统,来深思熟虑地做出决策。理性思维系统具有受控、费力、演绎、速度慢、有意识、依照规则的特点(Thaler, R. H.; Sunstein, C. R.; 2008)。因为认知资源有限,所以人们一般使用“理性的理性”,即大脑进化为默认处于保存能量的状态。而只有当预期回报足够大时,人们才会将稀缺的认知资源投入到解决决策问题中。否则,人类将花费最小的资源来实现 "足够好 "的结果(Zak, 2011)。比如,如果开发人员认为赶上进度从而帮助自己通过绩效考核的预期回报是最大的,那么她/他会将稀缺的精力优先投入到赶进度上。而对于产品质量和用户价值,则应付过去就好。

性质4:信息不完备性。做软件的人因为各种原因,如刚刚被替换上来不熟悉上下文、文档遗失、软件系统的信息复杂度超出一个人的认知负荷、欠缺动手操练和反馈等,在决策时只拥有不完备的信息。

如果做软件的人能够接受人性化做软件的人假设,那么就可以运用“容许自由的温和家长制”的助推,为企业提升软件开发成效提供新思路。

“容许自由的温和家长制”助推为企业提升软件开发成效提供新思路

助推理论因经济学家理查德·塞勒和法学家卡斯·桑斯坦合著并在2008年出版的《助推》一书而名扬天下。2017年,塞勒因对行为经济学的贡献,以及可预测人们以非理性的方式做出违背经济学理论的行为方面的开创性工作,获得诺贝尔经济学奖。塞勒因提出标准经济学理论的不一致,以及提出心理账户和“容许自由的温和家长制”(liberal paternalism)而受到特别认可。助推的原则就是“容许自由的温和家长制”

助推,指本着符合大多数人的价值取向,在行为助推设计(家长制)中包含的任何符合以下特点的干预——可以在不禁止任何选项或不显著改变人们的经济激励方式的情况下(温和),以可预测的方式改变人们的行为。若要称得上助推,人们必须能轻易且廉价地绕过这种干预(容许自由)。助推不是强制性的。将水果放在视平线的位置算作一种助推。禁止垃圾食品则不算(Thaler, R. H.; Sunstein, C. R.; 2008)。

行为助推设计(英文原文为Choice Architecture,直译为“选择架构”,但容易让人产生歧义,故在这里使用了意译),指提出不同方式的设计,从而为决策者呈现不同的决策选择项,并在设计中展示各种选项对决策的影响。行为助推设计,就像餐厅里的菜单设计。在设计菜单时,可以改变以下内容,以影响食客的选择:有多少菜品可供选择,菜肴的描述方式、食客首先能看到的("默认”)菜品。

干预,指改变能影响人们行为的各种条件。如在男公厕小便池刻上苍蝇的图案,提高男士小便入池的准确度(如图2)。

软件开发行业,将来会迎来一个新的角色:行为助推设计者(英文原文为Choice Architect,直译为“选择架构师”,但容易让人产生歧义,故在这里也使用了意译)。这个角色负责行为助推设计,可以由任何人担任,只要她/他的工作,涉及干预人们的行为。比如经济学家埃达·凯布默在主持荷兰阿姆斯特丹史基浦机场扩建时,想出了在男公厕小便池刻上苍蝇图案的点子(Thaler, R. H.; Sunstein, C. R.; 2008)。他就是一位行为助推设计师。

为何助推需要包含“容许自由”和“温和”

助推中所包含的“容许自由”的要素,指能让那些不喜欢行为助推设计的人,可以轻易且廉价地绕过助推的干预。比如男士如果不喜欢助推这个点子,方便时可以无视小便池上所刻的苍蝇图案。

助推中所包含的“温和”的要素,指行为助推设计不禁止任何选项或不显著改变人们的经济激励方式。比如在男公厕进行清洁助推时,不会在墙上贴着“禁止尿到池外,违者罚扫厕所”的提示牌。

助推之所以要包含“容许自由”和“温和”,是因为包括人类在内的生物体,天生就有对自我决定和提升能力的需求。这里的自我决定,指需要有选择的权利。而这些天生的需求,形成了生物体内在动机的基础。(Deci, E. L. & Ryan, R. M.; 1985)

1925年,达西尔(Dashiell)提供了相关的证据,表明在某些条件下,即使是饥饿的老鼠也会为了探索新的空间而放弃食物。1930年,尼森(Nissen)报告了初步数据,表明老鼠会为了探索新的空间,而情愿忍痛穿越通了电的网格(Deci, E. L. & Ryan, R. M.; 1985)。这些实验表明,生物体的行为,并不仅仅受饥饿、口渴、性和免受痛苦这四种力量的驱使,还会受内在动机的驱使。

人有自我决定的天生需求的比较有代表性的表现,就是“可感知的控制感”,简称“可感知控制”。Glass和Singer(1972)以及Miller(1980)的研究表明,当人们相信他们可以或已经控制他们环境中的令人反感的事件时,他们的表现比他们认为不能控制时更为有效。注意,可感知控制,并不意味着人真的能控制。当人感觉自己能控制,或者明确地选择将控制权交给他人,也可获得可感知的控制感。

一系列相关的研究已经证明了人们对自己参与的事情的结果缺乏可感知控制的负面效果。例如,Pennebaker,Burnam,Schaeffer,和Harper(1977)报告说,缺乏可感知控制导致更多的身体症状,如头痛。Seligman及其同事(Hiroto,1974; Hiroto&Seligman,1975; Seligman,1968, 1975)反复证明,对结果的可感知控制的缺乏,会导致无助感。人们在这种情况下会表现出更加情绪化,学习效果和行为表现也会受到损害。

总之,助推之所以包含这两个要素,就是顺应人的“需要有选择的权利”的天生的自我决定的需求,从而让人体会到可感知的控制感。如果此时再加上行为助推设计的结果能符合人的价值取向,那么就能吸引更多的人乐意参与助推。

为何助推包含“家长制”

助推中所包含的“家长制”的要素,指在助推中,行为助推设计者要针对人们的社会和心理特点,进行行为助推设计,以改变能影响人们行为的各种条件,干预人们的行为,从而引导人们做符合自己价值取向的行为。

对于不懂事的孩子,上述家长制的做法还可以理解。但针对都是成年人的做软件的人,家长制的意义在哪里?

从现实版的人性化做软件的人假设后面3个性质能够看出,即使是成年人,由于他们具有直觉反应性、有限理性和信息不完备性,所以他们在做决策时,也需要有更多专业知识的”家长“的帮助。下面就这3个性质,各举一个例子。

因直觉反应性需要“家长”的例子:因为测试人员的职位名称一般以Quality(质量)开头,比如质量保证,所以在锚定效应的作用下,开发人员会不自觉地认为质量是测试人员的事情。所以在写完代码后,他们不认真测试,就丢给测试人员。但这样做会增大自己在之后的返工修复缺陷的成本,挤占计划内其他工作的时间,让开发人员难以完成计划。此时就需要“家长”,比如会写测试代码且质量意识强的测试开发人员,来与开发人员结对工作,进行行为助推设计,以便在编写代码期间,提升质量,减少返工。

因有限理性需要“家长”的例子:前面提到,开发人员认为赶上进度从而通过绩效考核的预期回报最大,所以会将稀缺的精力优先投入到赶进度上。而对于产品质量和用户价值这些预期回报不大的事情,则草草应付。这虽然体现了理性的理性,但这样做也会增大因质量问题返工成本,挤占其他工作的时间,让开发人员难以完成计划,反而更赶不上进度。此时就需要“家长”,比如管理者,合理改进绩效考核指标,增加软件质量的权重,降低进度满足的权重,进行行为助推设计,以便让开发人员在编写代码期间,重视质量,减少返工。

因信息不完备性需要“家长”的例子:2023年3月29日,唯品会公司因机房冷却系统故障,导致线上商城停止服务12小时,公司损失超亿元,影响客户达800多万。生产事故抢修耗时如此之长,说明当时的基础平台部负责人,平时忙于其他事情,而未料到会突然爆发这种P0级生产事故,相应地缺乏相关的事故演练和准备。不识庐山真面目,只缘身在此山中。此时就需要“家长”,比如蓝军小组(下文会讨论),来在事前为其进行行为助推设计,弥补自己信息不完备的缺憾。

介绍完了助推,那它和目前软件开发业界所重视的技术和过程有什么关系?

助推与软件开发的技术和过程的关系

助推并不是要替代软件开发业界当前所重视的技术和过程,而是对后两者进行合理的补充,使得技术和过程能由做软件的人在助推的引导下,在软件开发中发挥得更好。

企业制定的包含了技术和过程的软件开发规范,好比葡萄酒。而做软件的人的社会和心理特点好比氧气。如果无视氧气的存在,在打开葡萄酒后任其氧化,最后浓郁的葡萄酒,就会变成酸涩的葡萄酒醋。片面重视技术和过程,无视做软件的人的社会和心理特点,会导致企业即使选择了最新技术,制定了软件开发规范,运用了工具平台,也难以有效提升产品质量和用户价值。

助推在企业IT部门中的应用案例

行为助推设计其实没那么神秘,因为你天天在接受它的助推而不自知。比如iPhone手机从来不提供说明书,但你和幼儿园小朋友一样,看一眼手机,就能自然而然地用得很溜。手机的设计,就包含了行为助推设计。

因为后续还会有系列文章,详细介绍助推在企业IT部门中的应用案例,所以下面只是简要列出一些重要的助推案例。

顺应人的“视生产环境如神明”的社会和心理特点从而规模化提升系统稳定性的Netflix的混沌工程:Netflix公司从2008年开始,将DVD电影租赁业务迁移到AWS云服务。但当时的AWS云服务不够稳定,不定时地会出现节点意外消失的生产事故。解决的方法就是增强系统的韧性设计。但如何让增强系统韧性设计持续进行且在全公司规模化落地,工程师们想了各种方法,最后只有混沌猴胜出。混沌猴是一种自动化故障注入工具,能在上班时间,随机地在生产环境注入故障,即模拟AWS云服务的故障,关闭一个节点。因为工程师们“视生产环境如神明”,所以当混沌猴在生产环境注入故障后,工程师们会把手上其他的事情暂时放一放,优先关注、观测和解决混沌猴在生产环境所引发的故障。这样Netflix公司顺应了人的“视生产环境如神明”的社会和心理特点,成功地规模化提升了系统稳定性。并发展出混沌工程实践。

顺应人的“从众效应”心理特点从而规模化普及自动化测试的Google的工程生产力团队:2001年的谷歌公司,大概有200名开发人员。但测试人员才3人。当时谷歌也在开发人员中推行编写单元测试。但效果不好,一些开发人员认为测试应该由测试人员负责。另外因为除了编写单元测试,还需要编写集成测试、系统测试和用户界面测试。编写测试的工作量很大。为了打开局面,谷歌开始招聘有质量意识,且能写代码的“测试开发”工程师。这些工程师一方面自己写测试,一方面还教开发人员如何写测试。随着测试代码越写越多,开发人员在“从众效应”的影响下,也开始编写测试代码。编写自动化测试在谷歌得以规模化推广。

顺应人的“可得性经验式”心理特点从而减少生产事故重演的Google的事故复盘文化:谷歌在2016年,出版了Site Reliability Engineering一书。书中提到了事故复盘文化。谷歌公司鼓励工程师就以往发生的生产事故,编写事故复盘报告。他们每个月会评选最佳事故复盘报告。另外,他们会定期搞复盘报告阅读会,供感兴趣的工程师和新员工参与。此外,他们还每周邀请SRE成员参加“灾难角色扮演”的游戏。在游戏中,谷歌之前发生过的生产事故会被重演。游戏中SRE成员扮演的玩家,要面对大家,解决以往发生过的生产事故,并回答主持人的问题。通过这些生动的报告和游戏,使得谷歌公司之前发生过的生产事故的细节,能深深刻入SRE成员的脑海中。在“可得性经验式”的作用下,这些参与报告编写、阅读和游戏的SRE成员,会在潜意识中,很容易回想起导致这些生产事故的原因,从而认为类似事故如不注意,发生的概率会更大,所以能更加小心,避免重蹈覆辙。这样就能减少事故重演的机会。可得性经验式,指如果事件更容易记住或很快能想起,那么人们就会认为这些事件会更频繁或更可能发生。

克服人的“顺应性偏见”心理特点引入蓝军行动的腾讯混沌工程实践:腾讯公司的吴召军在2021年8月发表了一篇博客。文中介绍了他们将蓝军行动引入混沌工程的实践。“我们的DevOps团队成员对常规的混沌工程实验感到厌倦。毕竟,这就像告诉你的左手去对抗你的右手。在我们部门,我们将一种称为蓝军行动的测试实践集成到混沌工程中,以提升我们的系统弹性。蓝军行动类似于渗透测试,但更有针对性。它需要一组测试人员从局外人的角度模拟现实世界的攻击。如果我负责IT运营,我会模拟特定服务的故障,并检查我的开发同学是否做得很好。如果我发现任何潜在的错误,那么,他们准备好接受一些“严厉的谈话”。另一方面,开发同学会积极进行混沌实验,确保不留下任何风险,以免被指责。(Wu, Z.; 2021)”顺应性偏见,指个人倾向于与群体中的其他人行为相似,有时甚至不顾自己的个人信仰、信息或判断。这种偏见会导致个人做出与自己的理解或观点不一致的决定,而是与群体的共识保持一致,即使它是不正确的。蓝军(在国外叫红队 red team)是一个假装成敌人的团队,在一个组织的指导下尝试对该组织进行物理或数字入侵,然后报告,以便该组织能够改善他们的防御(如图3)。蓝军为组织工作或受雇于组织。他们的工作是合法的,但会让一些员工感到惊讶,他们可能不知道蓝军行动(red teaming)正在开展,或者可能被蓝军欺骗。有些组织把蓝军定义得更为宽泛,包括组织内的任何团体。组织要求他们跳出框框来思考问题,研究被认为不太合理的其他情况。这是对团队错误假设和集体迷思的一个重要破解方法。蓝军行动(red teaming)一词起源于20世纪60年代的美国,指蓝军的上述行动。集体迷思,指团体中对和谐和一致的渴望,导致了非理性或功能失调的决策结果。它的特点是,强烈的心理驱动力使人们达成共识,压制异议,不鼓励对替代方案进行评估,从而阻碍决策过程。

“容许自由的温和家长制”助推,毕竟是美国经济学家主要针对美国人的心理特点和行为研究出来的成果。正如经济学家梁小民在《助推》一书的推荐序中所说,虽然上述成果“有一定的普遍适用性。但需要特别提出的是,中国人的行为有自己的特色,心理也不同于美国人,中国的经济与社会制度与美国有很大区别。因此,如何运用行为经济学的理论分析中国人的行为,设计出适合中国的助推方法,仍是一个亟待研究的问题。也许在运用行为经济学研究中国人的行为时,我们还可以为这门学科的发展做出新的贡献。”为了验证助推能否解决中国企业软件开发中的种种问题,我们需要用科学方法做相关实验来验证。

下一篇文章,我会讨论如何用科学方法做实验,验证助推在中国企业软件开发中的适用性。

如果你觉得本文对你和其他做软件的人有用,欢迎点赞、赞赏、评论和转发。你的这些鼓励,会激励我继续写下去。

本文*欢迎转载*。转载时请不要修改文章内容,并在文章开头注明以下文字:“不现实的“机器化软件人假设” v2.0与“容许自由的温和家长制”助推;作者:吾真本;邮箱:wzb@wuzhenben.com”。


参考书目

Amabile, T. M.; 1983; The social psychology of creativity. New York: Springer-Verlag

Deci, E. L. & Ryan, R. M.; 1985; Intrinsic motivation and self·determination in human behavior

Glass, D. c., & Singer, J. E.; 1972; Urban stress: Experiments on noise and social stressors. New York: Academic Press

Hiroto, D. S.; 1974; Locus of control and learned helplessness. Journal of Experimental Psychology, 102, 187-193

Hiroto, D. S., & Seligman, M. E. P.; 1975; Generality of learned helplessness in man. Journal of Personality and Social Psychology, 31, 311-327

Koestner, R., Ryan, R. M., Bemieri, F., & Holt, K.; 1984; Setting limits on children's behavior: The differential effects of controlling versus informational styles on intrinsic motivation and creativity. Journal of Personality, 52, 233-248

McGraw, K. 0., & McCullers, J. C.; 1979; Evidence of a detrimental effect of extrinsic incentives on breaking a mental set. Journal of Experimental Social Psychology, 15, 285-294

Miller, S. M.; 1980; Why having control reduces stress: If I can stop the roller coaster, I don't want to get off. In J. Garber & M. E. P. Seligman (Eds.), Human helplessness. NewYork: Academic Press

Pennebaker, J. W., Burnam, M. A., Schaeffer, M. A., & Harper, D. C.; 1977; Lack of control as a determinant of perceived physical symptoms. Journal of Personality and Social Psychology, 35, 167-174

Seligman, M. E. P.; 1968; Chronic fear produced by unpredictable electric shock. Journal of Comparative and Physiological Psychology, 66, 402-411

Seligman, M. E. P.; 1975; Helplessness: On depression, development, and death. San Francisco: Free- man

Thaler, R. H.; Sunstein, C. R.; 2008; 《助推》,2018年中文版,中信出版集团

Wortman, C. B., & Brehm, J. W.; 1975; Responses to uncontrollable outcomes: An integration of reactance theory and the learned helplessness model. In L. Berkowitz (Ed.), Advances in experimental social psychology, (Vol. 8). New York: Academic Press

Wu, Z.; 2021; Securing Online Gaming: Combine Chaos Engineering with DevOps Practices; pingcap.com/blog/securi

Zak, P. J.; 2011; The physiology of moral sentiments. Journal of Economic Behavior and Organization, 77(1), 53–65


想要了解更多内容?

查看原文:不现实的“机器化软件人假设” v2.0与“容许自由的温和家长制”助推
文章来源:
吾真本说混沌工程
扫码关注公众号

用好企业软件系统稳定性与混沌工程相关技术和过程。

34 篇文章
浏览 21.3K
加入社区微信群
与行业大咖零距离交流学习
软件研发质量管理体系建设 白皮书上线