好解释
这门课根据《好解释》V20 编写:怎样判断一个解释好不好,怎样找到能把几个解释分开的证据,以及在仍然不确定的时候,怎样选择和证据相称的行动。一共十五课,其中第十一到十三课是三个完整案例,最后还有一份结课练习;多数课都有可以动手的实验。
上面这个实验,就是整门课的起点。两个解释都能讲通“太阳暗了,后来又亮了”。区别在于新的事实出现以后:天狗的故事每次都能补一句,而且补什么都行;遮挡的解释事先说出了会看到什么,这些预言每一条都可能被观察推翻。能被推翻,它才能被检验,也才能用来预测下一次。
日食这个例子只用来讲清定义:今天没有人会相信天狗的故事,所以它不需要你作判断。后面的对手会越来越像样:第七课的瘴气说,是当时医学界的主流看法;第五课的 N 射线,出错的是一位受尊重的物理学家。
怎样用这门课
每一课大约需要三十到四十五分钟。建议的顺序是:先读本课要回答的问题,再做实验,然后读正文,最后做练习。练习有三种:单选题会立刻给出批注;分类题会逐条对照;自由作答题先让你写,再展开参考思路。参考思路只是一种写法,用它来检查你的答案有没有给判断增加新的约束。
正文里带虚线的词是术语,把鼠标移上去,或者点一下,会显示它的定义;左边栏的“术语表”可以查全部术语。学习进度、练习答案和你在第十课记的判断账本,只保存在这台电脑的浏览器里。
第 1 课
讲通已经发生的事,还不够
- 本课要回答
- 为什么“能把已经发生的结果讲通”还不够?
- 学完应能
- 区分一个会随结果改变的故事,和一个受机制约束的解释;
- 用替换细节的办法,判断某个细节是否真的在起作用。
开篇实验里,吞食太阳的角色可以换成天狗、罗睺或者火狗,故事“解释”日食的能力一点也没有减少。细节怎么换都行,说明细节和现象之间没有联系:这个故事没有解释任何东西。
Deutsch 在《The Beginning of Infinity》(中译本《无穷的开始》)里,把这种差别概括为 hard-to-vary,可以译成“难以任意改动”。按他的说法,好解释在继续解释它声称要解释的东西时,很难被改动。“难以任意改动”不等于“绝对不能改”:解释可以改,但要付代价。关键细节一变,解释要么失去原来的能力,要么背上新的、可以被批评的后果。
四季:一个参数和它的延伸力
Deutsch 自己用的例子是四季。古希腊人说,珀耳塞福涅每年有几个月要回到冥界,她的母亲、农业女神得墨忒耳因此悲伤,大地就进入冬天。把悲伤换成愤怒,或者换一位神,故事照样讲得通。地轴倾斜的解释改不动:倾斜的角度、地球的公转轨道和阳光照射的角度彼此牵连,换掉任何一环,就解释不了四季。
地轴倾斜的解释原本只为说明四季,却不加改动就说明了南北半球的季节为什么正好相反、热带为什么没有明显的四季、极圈里为什么有极昼和极夜。Deutsch 把这种能力叫延伸力。判断一个解释有没有延伸力,要看它是否“不加改动”就能解释新的问题;每换一个场景都要补一条新假设的,只是把同一句口号用到更多地方。
工程里的同一个差别
“接口变慢,是因为数据库有问题”很容易变。把“数据库”换成“网络”“缓存”或“锁竞争”,这句话的作用几乎不受影响,它只是给现象换了个名字。第十一课那场事故的机制链则不同:缓存键暴涨,没有命中的请求在同一个连接池排队,只有约一成请求受影响,所以拖慢的是尾部而不是中位数。下面这个实验把它和五项观察放在一起。
四个承重问题
审查一个解释时,可以先问四件事。它究竟在解释什么:同一句话如果能同时解释增长下降、组织冲突和产品失败,多半还没有对准问题。哪些细节在承重:换掉其中一个部件,其他结论会不会跟着变。这些细节从哪里来:来自已有的知识和事前的记录,还是结果出来以后临时补上的。这个解释还预期了什么:除了已经知道的结果,它对时间顺序、人群差异、边界条件和中间过程有什么要求。
好解释不一定最短,变量也不一定最少。“时代变了”“人性如此”都很短,却几乎允许任何结果。问题在于说话的人保留了太多随意的自由度。奥卡姆剃刀在这里更准确的说法是:不要为了解释已经发生的结果,保留不受问题约束的自由度。
本课要点
- 能讲通已经发生的结果,还不能说明一个解释好;要看它的关键细节能不能被免费替换。
- 判断解释的好坏,要看每个细节是否受问题约束;长短和复杂度说明不了什么。
- 一个解释如果不对新事实作出额外的预期,现实就很难纠正它。
第 2 课
解释、证据、行动和权限要分开
- 本课要回答
- 一个结构严密的解释为什么仍然可能是错的?一个还不完整的解释,为什么有时仍然要求马上行动?
- 学完应能
- 把解释的质量、证据的支持、行动的选择和执行的权限分开;
- 避免把“证据增加了”扩写成“机制已经找到”或者“应该马上全量执行”。
序里的事故,关掉功能以后延迟恢复。这说明新功能参与了事故:证据改变了判断。它没有告诉我们问题出在缓存键、连接池、重试还是总流量:解释还不完整。客户正在受影响,我们仍然有理由先把功能关掉:行动已经必要。三句话同时成立。
hard-to-vary 只是第一道检查。它先排除那些无论发生什么都能圆回来的故事,却不能代替证据、证明或专业的方法:一个结构严密的解释,测量可能失真,也可能漏掉了第三种解释。
| 层次 | 核心问题 | 常见错误 |
|---|---|---|
| 解释 | 为什么会这样?哪些细节不能随意替换? | 把标签当机制,把完整的故事当真相 |
| 证据 | 这项观察更支持哪条主张?支持到什么范围? | 按文件数量投票,把相关当因果 |
| 决策 | 在当前的不确定性下,哪种动作的代价和收益更合适? | 把“更可信”直接翻译成“全量执行” |
| 治理 | 谁能执行、停止、升级和保存记录? | 让同一个人同时掌控证据、解释和停止权 |
后面的课都建立在这张表上。每一次讨论,都值得先问一句:我们现在改的是哪一层?
还有三组常被混用的概念
解释不等于预测。一个黑箱模型可以准确地预测谁会流失,却没有告诉我们为什么流失。预测看输出准不准;解释看结构是否对准了问题。
解释不等于因果识别。“协作引导能提高某类账户的付款率”,回答的是一次具体干预的局部效果;“历史付款率下降,是因为协作路径恶化了”,回答的是过去发生了什么。前者即使有随机试验支持,也不自动证明后者。第十二课会看到这个差别怎样决定一次试验能支持多大的行动。
解释不等于决策。解释再好,也只能缩小不确定性,不能决定组织愿意承担多大的损失、谁有权承担,或者机会是不是马上就要错过。
本课要点
- hard-to-vary 用来提出和批评解释,它本身不是证明。
- 解释、证据、决策和治理回答不同的问题,不能互相代替。
- 行动可以先于完整的理解,但行动的范围要受风险、可撤回性和权限的约束。
第 3 课
墙纸与承重件
- 本课要回答
- 怎样从一个“听起来像原因”的说法里,找出真正承重的部分?
- 学完应能
- 对一个解释做部件、角色、时序和边界四种替换;
- 写出包含对象、结构、边界、可区分的后果和修订代价的工作解释。
hard-to-vary 最直接的用法,是做一次变体测试:解释的对象不变,替换解释里的一个部件,看原来的解释会损失什么。有人说:“激活率下降,是因为新用户主要是 Z 世代,他们没有耐心看完引导流程。”下面这个实验,从只知道一条事实开始。
只有一条事实时,四个说法都讲得通。这说明现有证据的分辨率不够,下一步该去看不同设备、年龄和页面位置上的流失分别是什么样子。加入新的事实以后,承重的是“授权放在看到价值之前”这个时序,“Z 世代”只是贴在“第三步流失”这个事实上的墙纸。
变体测试的结论,写成下面两种句子之一。承重:换掉 X 以后,事实 Y 就解释不了,所以 X 在当前的解释里起作用。不承重:换掉 X 以后,已知的事实都一样容易解释,所以 X 暂时只是墙纸。
复合解释要经受四种替换
“渠道、定位、销售和定价都有影响”,可能只是把更多名词堆在一起。复合解释除了逐个部件做替换,还要做三种替换:角色(这个因素是原因、中介、症状还是放大器)、时序(它发生在结果之前,还是结果出现以后的反馈)、边界(换一个人群、负载或环境,机制还成立吗)。复合解释不会因为包含的因素更多,就自动比简单的解释好。
工作解释的五个部分
现实问题很少一开始就有完整的理论。团队手上通常是一个工作解释:足够具体,可以被批评;又足够暂时,允许重写。它包含五个部分:解释对象;结构(因果问题里是一条机制链);适用边界;可区分的后果;修订代价,也就是解释改变时,写清改了哪条假设、哪些旧结论因此失效。
现实中,被推翻的通常是某一条因果关系、某一个边界假设或某一个幅度判断,很少是整套世界观。好的记录允许局部更新。
本课要点
- 变体测试不证明机制,它找出哪些词值得继续查。
- 复合解释要说明每个因素的角色、时序和边界。
- 工作解释可以修订,但每次修订都要写明哪些旧结论失效。
第 4 课
环境决定解释能做到哪一步
- 本课要回答
- 为什么软件调试里的解释常常能重建完整的路径,而商业、组织和欺诈问题更常只能得到有边界的机制判断?
- 学完应能
- 用两个问题判断环境:系统能封闭到什么程度;参与者会不会调整做法,是否针对我们;
- 分开问两个问题:解释做到了哪一步;证据够不够支持某一个具体的动作。
软件系统并不简单,但它有一种认识上的便利:生成机制大部分是人设计的,而且可以继续加装仪表来观察。有代码和配置,可以查结果经过了哪些规则;有日志和链路追踪,可以把隐藏的状态变成看得见的状态;可以重放、注入故障,用灰度和回滚把干预限制在很小的范围里。所以软件调试里的解释,常常能做到路径完整。
有用的分界有两个,要分开判断。第一个是系统能封闭到什么程度:边界能不能暂时固定,关键的状态能看到多少,“如果当时不这样”能不能近似地重建。第二个是参与者会不会调整做法:他们可能只是适应变化,也可能在针对我们调整。两个回答组合起来,常见的有四种环境:相对可封闭、开放适应、对抗适应,以及系统的部分能封闭、参与者的部分不能的混合环境。混合的时候,两部分要分开写目标。
开放世界为什么容纳得下更多故事
在开放的系统里,变量更多只是一部分困难。更难处理的是,产生数据的机制本身会随时间和干预而改变:价格变了,进入样本的人就不一样了;指标成了绩效目标,员工会围着指标调整行为;风控规则上线,攻击者会换做法。结果是几种机制可以长期和现有的事实相容,而且每一种都能在新事实出现以后继续加条件。
开放世界不会让 hard-to-vary 失效。它改变的是我们要求哪一部分不能随意改动:机制、适用范围、预期会看到的现象,以及在什么情况下解释失效,这四者之间的关系,不能在看到结果以后被免费改写。书里把这叫有条件的 hard-to-vary。一个例子:
六月,在美国中小企业的付费搜索流量中,广告扩量改变了带来访问的搜索词,商业意向低的访问增加了。这个机制预期下降首先出现在资格确认之前,而不是报价之后;恢复原来的否定关键词以后,低意向访问的占比应当先下降,预约率之后才可能改善。这个判断不外推到大企业客户和自然流量。
它没有解释整个市场,却已经不能随意移动:人群、时间窗口、机制发生的位置和变化的先后顺序,都在结果出来之前写定了。
两个问题要分开问
第一个问题:这个解释做到了哪一步?路径完整,能重建这一次结果的主要生成路径;机制获得支持,一条机制受到多种独立证据的共同约束;或者仍是候选。
第二个问题:现有的证据,够不够支持某一个具体的动作?够,书里叫决策充分。它总是针对一个写明了范围的动作。
开放世界里的工作方法,分散在后面几课:缩小解释对象,固定人群和时间窗口(第五课);寻找换了环境仍然成立的结构(第七课);几种解释分不出胜负时,找都合理的动作(第八课);设计探针时,考虑探针本身会改变被观察的对象(第九课);给解释标上有效期和复核条件(第十课)。
本课要点
- 判断环境分两个问题:系统能封闭到什么程度;参与者会不会调整做法,是否针对我们。两部分处在不同的位置时,是混合的环境,要分开写目标。
- 开放世界里的 hard-to-vary 是有条件的:机制、范围、预期的现象和失效条件,不能在事后免费改写。
- “证据够不够”总是针对一个具体的动作:证据覆盖到哪里,动作就停在哪里。
第 5 课
定题:把问题写到能够出错
- 本课要回答
- 怎样把“系统有问题”“增长不好”这类大词,改写成所有人都能一起检验的解释对象?
- 学完应能
- 用对象、时间、对照、形态和适用范围固定一个问题;
- 把解释问题、分解问题和决策问题分开写,并写出每个决定的最晚时间;
- 没有异常可解释时,把决定依赖的判断写成一句可以出错的话。
很多会议表面上在争论答案,参与者回答的却是不同的问题。一个能用来工作的解释对象,至少要交代四件事:对象是什么,变化发生在什么时候,与什么基准相比,变化呈现出什么形态。开放的问题还要写上适用范围。
三类问题分开写
解释问题问:为什么会出现这个现象?分解问题问:差异主要落在哪些人群、时间或环节?它帮助定位,但不会自动给出每个原因各占多少。决策问题问:在现有的证据下,要选择什么动作、多大的规模、什么时机?三者混在一起时,分层的数据很容易被写成原因。
决策问题不止一个时,分别写出每个决定的最晚时间。第十二课的团队里,获客预算三周后就要定,而一项像样的产品试验,从批准到出结果要将近四个月。两个决定挂在同一个问题下面,时间线完全不同。
先查仪表
任何异常都至少有两类候选解释:世界变了,或者我们观察世界的方式变了。所以在讨论机制之前,先检查口径、埋点、采样、账单和数据延迟,因为测量一旦失真,后面再精细的推理也只是在解释仪表。查仪表也要有限度:它不能成为无限推迟讨论机制的理由。
仪表不只是软件里的埋点,观察的人本身也可能是仪表的一部分。二十世纪初,柏林有一匹叫汉斯的马,看起来会做算术:主人出题,它用蹄子敲出答案。1907 年,心理学家 Oskar Pfungst 没有先争论马有没有智力,而是设计了一个只回答一个问题的检验:马能不能看见提问的人。
现象是真的,要解释的对象却选错了:该解释的不是马的算术能力,而是提问的人和马之间的信号。
N 射线是另一个例子,而且出错的是一位受尊重的物理学家。1903 年,法国南锡大学的 Blondlot 宣布发现了一种新射线,还测出了它穿过铝制棱镜时的折射,法国有不少研究者随后也报告看到了。1904 年,美国物理学家 Robert Wood 到他的实验室参观,在暗室里悄悄取走了关键的棱镜,Blondlot 仍然报告看到同样的谱线。
第七课的 Snow 和第九课的 Semmelweis,都是当时的少数派后来被证明正确的故事;只读这类故事,容易以为细节具体、又和主流对立的解释更可能对。Blondlot 的说法同样具体,错在测量上。检查仪表的一个好办法,是让观察的人不知道条件,也就是盲检:马看不见提问的人,Blondlot 不知道棱镜已经被取走。
好解释从异常开始
人最先遇到的,往往只是一种不对劲。一家公司上线 AI 工单分流三周后,待处理的工单从约 1,200 件涨到 1,900 件。“AI 不可靠”来得太快了。先把异常拆开:是新工单变多了,还是结案变慢了?被重新打开的工单是不是集中在退款和账单问题上?形态清楚以后,才出现具体的候选机制:分类错误把复杂工单送进普通队列;自动回复缩短了首次响应,却引来更多追问;仪表板上“待处理”的定义变了。每一条都会留下不同的时序和队列形状,所以可以用观察来区分。
接着可以问:如果只能改一个地方,改哪里最可能让异常消失?这个问题逼着解释暴露自己的结构。
没有异常时,从决定依赖的判断开始
前面的例子都从一个已经出现的现象开始。有些决定前面没有现象可解释,例如要不要进入一个新市场,要不要把一个团队拆成两个。这时换一个入口:把这个决定依赖的判断写成一句话,并写明它会在什么日期、被什么观察证明是错的。
在每月交易超过 500 笔的中小企业客户里,至少两成会在一个月的试用结束后付费;如果到第十二周,付费的比例低于一成,这个判断就算错了。
这是一家公司考虑推出付费的自动对账功能时,写下的判断。写成这样以后,后面几课的动作照样适用:立敌,是写出最可能让它落空的另一种情况,例如客户愿意用,付费的决定却在他们的外部会计手里;摊牌,是找出两种情况预期不同的早期信号,例如试用期里是客户本人还是会计在登录和导出数据。
本课要点
- 定题的作用,是防止讨论中途换题。
- 先查测量,但查测量不能无限推迟对机制的讨论。观察的人也可能是仪表的一部分;让观察的人不知道条件,是检查仪表的好办法。
- 开放世界里还要固定人群、时间窗口和分析单位;决定不止一个时,分别写出最晚时间。
- 没有现象可解释的决定,从它依赖的判断开始:写成一句能在某个日期被证明是错的话。
第 6 课
立敌:找一个同样具体的强敌
- 本课要回答
- 什么样的候选解释才算得上竞争解释?几个因素同时成立时,怎样描述它们的关系?
- 学完应能
- 让竞争解释和主解释处在同样具体的程度;
- 按几个固定的来源找出竞争解释;
- 区分互相排斥、可以并存和必须组合的机制,并给每个因素分配角色。
一个团队只有一个故事的时候,所谓“分析”,通常只是在给它补细节。竞争解释至少要做到三件事:和主解释解释同一个对象;具体的程度相近;如果它更接近事实,观察的先后、行动的规模或风险的判断就会改变。“也许市场不好”做不到这三件事。
对手从哪里来
有用的竞争解释,大多来自几个固定的地方:测量本身出了问题;异常开始前后,还有别的东西变了;受影响的部分和别的部分共用了资源或上游;总体里各类对象的比例变了;参与者针对我们的变化调整了做法。最后再做一次事前验尸:假设以后证明主解释错了,写出最可能的原因。这份清单只用来产生候选,不用来判断谁对;每个候选仍然要满足上面三条要求。
三种关系
有些解释互相排斥:转化率下降,究竟只是口径变化造成的假象,还是真实的变化。有些可以并存:低意向流量增加、协作没有形成、销售响应变慢,可能同时发生。还有一些只有组合起来才讲得通:新入口改变了用户构成,新增的流量又拉长了销售队列。
复杂系统里,很多事故和业务变化来自几条平时都能被容忍的路径在某个负载和时机下的叠加,找不到一个单独起作用的原因。第十一课的事故里,缓存未命中增加和秒杀带来的总流量同时存在,连接池才被打满。
给因素分配角色
几个因素同时成立时,最有用的问题是它们在结构里分别做什么。长期脆弱点说明系统为什么长期容易在这里出事;触发器说明为什么偏偏是这个时间;中介说明上游的原因通过什么路径影响结果;调节变量改变某条因果关系的强弱;放大器在偏差出现以后让后果迅速变大。调节变量在因果关系旁边,改变关系的强度;放大器在结果的生成路径里。
小心给自己加免责条款的解释
Popper 回忆过,他在 1919 年向心理学家 Adler 报告了一个在他看来并不符合 Adler 理论的病例;Adler 连那个孩子都没见过,却毫不费力地用自卑感理论作出了解释。一个人把孩子推进水里,另一个人为了救孩子牺牲了自己,Freud 和 Adler 的理论都能同样轻松地解释。Popper 的结论是:这些理论看起来能解释所涉领域里发生的几乎一切,这正是它们的弱点。
科学哲学把这种做法叫免疫策略。判断一个解释是不是在给自己免疫,要看不利的信息出现以后,它有没有降低对某条主张的信心。
本课要点
- 强敌要解释同一个对象,同样具体,并且一旦成立会改变下一步。
- 找对手时,逐项检查测量、同一时间的其他变化、共用的资源和上游、构成的变化、参与者的调整,再做一次事前验尸。
- 复杂系统里更常见的是几条机制共同构成失败的条件;给每个因素写明角色。
- 不利信息来了以后只加免责条款、不降低信心的解释,已经不再说出任何东西。
第 7 课
摊牌:找出能区分解释的观察
- 本课要回答
- 什么样的观察,才能区分几个竞争解释?
- 学完应能
- 写出包含方向、时序、边界和中间过程的差异化预期;
- 按失败方式判断证据是否独立。
一项材料不会天然地“支持”某个解释。要看的是,看到这个现象以后,A 和 B 之中哪一个更难保持原样。在 A 更接近事实时容易出现、在 B 更接近事实时不容易出现的观察,书里叫差异化预期。只问“什么证据支持 A”,会把两边都能解释的事实也算成 A 的证据。
这里有两点常被忽略。第一,没有出现的现象同样是证据:A 明确要求某个现象出现,它却没有出现,A 付出的代价往往比看到一个 A 预期的现象得到的支持更大。第二,基础比率决定判断从哪里出发:发布后几分钟内出现的延迟事故,大多和那次发布有关,所以“新功能参与了事故”是一个合理的起点;它说明应该先查新功能,不说明是新功能里的哪一条机制。
什么都没发生,也是证据
1986 年 1 月,挑战者号航天飞机发射前一晚,工程师和管理人员讨论低温会不会让固体火箭助推器的 O 形密封圈失效。事后的调查指出,那晚讨论的主要是密封圈出过问题的那几次发射。
那些没有出问题的发射,正是把“温度有影响”和“温度没影响”拉开的观察。第八课会再回到那一晚的决策。
一次经典的摊牌
1854 年伦敦霍乱流行时,主流的解释是瘴气说:疾病通过污浊的空气传播。John Snow 主张霍乱通过被污染的饮用水传播。两种解释都能讲通“穷人聚居的低洼地区死得更多”。Snow 找到了一个让两种解释作出不同预期的地方:泰晤士河南岸有两家公司供水,Southwark and Vauxhall 公司从伦敦市区受污染的河段取水;Lambeth 公司在 1852 年把取水口迁到了上游。两家的水管铺在同样的街道上,相邻的两户人家常常用的是不同公司的水。
住户常常说不清自己用的是哪家的水,Snow 就去查缴费单据;还查不到时,就往水样里加硝酸银测盐分,下游河水的含盐量高得多。判断供水公司的方法和死亡登记来自不同的来源,不会因为同一种错误而一起失真。这也是判断证据是否独立的方法:看它们会不会被同一种错误一起骗到,而不是看文件来自几个部门。
没有哪种方法自动站在证据的顶端
执行良好的随机分配,通常比简单的观察比较更能抵抗没有测量到的混杂;但它仍然可能受到失访、执行污染、测量错误和外推失败的影响。所以先问当前最危险的错误是什么,再选方法。Snow 没有做随机试验,两家公司的水管交错铺设,已经替他处理了当时最危险的混杂:贫富和空气。
在开放的系统里,一次显著的结果只能支持一个局部的效果。让同一个机制在几个有意义的环境里接受检验:换一个时间窗口、换一个渠道、换一种测量来源、看一个按理不该受影响的负对照。在几个环境里都保持方向、顺序和边界,才更接近机制获得支持。
本课要点
- 证据的价值,来自不同的解释对它的预期有多不同;没有出现的现象,也是证据。挑战者号的数据里,最有区分力的是那些没有出问题的发射。
- 双方共同预期的事实可以排除第三种解释,但不能在这两种之间选边。
- 设计有没有针对当前最危险的错误,决定了证据的强度;方法的名字决定不了。
第 8 课
决策:把判断变成有边界的行动
- 本课要回答
- 对几个解释的判断已经改变,为什么仍然不能直接推出“现在就全量执行”?
- 学完应能
- 说明决策在什么时候发生,以及它和五个动作的关系;
- 区分稳健动作、信息动作和承诺动作;
- 根据可撤回性、反馈速度、承受不起的损失和信息到达的时间,决定行动的规模。
决策不在五个动作里的固定位置。它是和五个动作并行的一条决策线,在两种时候发生:一个决定到了最晚时间;或者某种损失变得承受不起。第一次决策可能发生在定题之前:第十一课的值班负责人,在弄清机制之前就关掉了功能。一个问题也常常同时挂着几个决定,时限各不相同,要分别在各自的时间作出。决策选中了信息动作以后,由下一课的试探把它设计成具体的探针。第 0 课的课程地图里,可以按第十一课的事故把这条线走一遍。
决策先问:哪项未知一旦改变,会让行动的排序、规模、时机或权限边界发生变化?一个未知无论结果怎样都不改变下一步,继续收集信息就只是在拖延。这一步至少要看三种结构。期望值:普通的得失怎样权衡。期权价值:可以撤回的动作还买到了学习,5% 的灰度保留了回滚的能力。承受不起的损失:违法、数据泄露、无法恢复的破坏,不能用平均收益来抵消。
动作分三类。稳健动作在仍然值得保留的几种解释下都合理,例如补监控、修复已经确认的测量缺口、停止扩大明显的伤害。信息动作的主要价值,是减少会改变决策的不确定性。承诺动作代价高、难以撤回,需要更强的证据、更清楚的最坏情形和独立的审查。把“不行动”也写进选项:维持现状也是一个决定。
止损动作也要对照解释
稳健动作是相对于写下的几个解释而言的。一个动作在我们想到的解释下都安全,在没想到的解释下,可能恰恰有害。2012 年 8 月 1 日,美国的证券公司 Knight Capital 上线新版的交易路由软件,新代码只成功部署到八台服务器里的七台。
回滚常常是稳健动作,因为大多数时候,最近的改动就是问题所在;但它并不在每一种解释下都安全。承受不起的损失正在发生时,先找在每个候选解释下都能止损的动作,再决定要不要回滚。
面对承受不起的损失,举证责任应当落在主张冒险的一方。挑战者号发射前一晚,工程师最初建议不要在这样的低温下发射。据工程师 Roger Boisjoly 后来在调查中的陈述,那次会上变成了要由工程师证明不能发射,这和平时要先证明可以安全发射的做法正好相反。数据本来不足以证明低温下安全;要求被倒过来以后,同样不足的数据,被当成了可以发射的理由。
信息要在决定之前到达
一项信息值不值得买,还要看它什么时候到。
环境改变行动的默认偏好
相对可封闭的系统,针对已经找到的路径修复,配套回归测试,逐级恢复。开放适应的系统,先做在几种解释下都合理的动作,把承诺拆小、做成可以撤回的,写清外推的边界。对抗适应的系统,分层控制,限制无法撤回的暴露,保留独立的停止权,持续监控对方的变化。损失正在无法挽回地扩大时,稳健动作也可以是快速、大范围的止损;这时要记成风险控制,不能记成已经识别了机制。
先扩大选项,再精算
很多坏决定,出在候选的选项一开始就太差。房间里只剩“全量上线”和“彻底放弃”时,可以沿六个方向生成第三个选项:推迟承诺,先买一项会改变决定的信息;缩小规模;把一次无法撤回的承诺拆成可以停下的阶段;把稳健动作和信息动作一起做;承认这件事不值得继续投入而退出;几种解释都还可能成立时,构造一个不会被任何单一解释完全击穿的组合。
本课要点
- 决策是和五个动作并行的一条线:每到一个决定的最晚时间,或者某种损失变得承受不起时,做一次;第一次可能在定题之前。
- 决策不只看哪个解释更可信,还要看损失是否对称、选择权的价值和谁有权决定。
- 几种解释分不出胜负时,先找在每一种解释下都合理的动作。回滚和止损也要对照每个候选解释检查;面对承受不起的损失,举证责任在主张冒险的一方。
- 信息要在决定之前到达才有用;行动的范围不能超过证据覆盖的人群、版本、幅度和时间。
第 9 课
试探:一个探针只回答一个问题
- 本课要回答
- 怎样设计一个动作,让它减少一个会改变决定的不确定性?
- 学完应能
- 把诊断用的探针和治疗用的动作分开;
- 判断自己担心的问题会不会只在总量之上才出现,并据此设计探针的规模。
很多团队把“做个小实验”当成务实的代名词。一个动作如果同时改变了定价、界面、销售跟进和目标人群,哪怕只覆盖 1% 的用户,也很难告诉我们是哪一条机制起了作用。探针的目标,是以可以接受的风险,减少一个会改变决定的不确定性。它不一定是实验:数学问题的探针可以是一个反例,工程问题可以是离线重放。
试探执行的是决策选中的信息动作。摊牌指出哪项观察能区分几个解释,决策判断这项信息值不值得现在花代价去买,试探负责用最小、最安全的方式把它拿到。
第五课的两个历史例子,都是只回答一个问题的探针:Pfungst 只改变了马能不能看见提问的人,Wood 只取走了一块棱镜。
设计探针时,先回答五个问题:关键分歧是什么;什么观察最有区分力;哪种结果增强哪条主张、哪种削弱、哪种仍然分不出来;出现什么情况必须暂停或回滚;谁执行,谁复核,什么时候写回记录。探针的顺序,按“每单位成本能减少多少会改变决定的不确定性”来排:几天就能做完的检查先做。
小规模测不出总量才出现的问题
第十一课的事故里,5% 的灰度跑了三天都正常。新功能在灰度时也有问题,只是 5% 的流量远远不足以把连接池打满。下面这个模拟用事故的参数重现了它。先点“平日,5% 灰度”,再点“秒杀,全量”。
所以设计探针时,要问一句:我们担心的问题,是随规模按比例变化的,还是只在某个总量之上才出现?如果是后者,探针要么覆盖到那个总量(例如让每一级灰度都经过高峰时段,并看共享资源的绝对用量),要么在结论里写明“更大规模时没有检验过”。第十二课的广告加投也是同样的结构:多投 30% 测得的边际成本,不能直接推到投入翻倍。
开放世界的探针会改变被观察的对象
价格试验会改变进入样本的人,访谈会改变参与者对问题的理解,风控规则会促使攻击者转移。所以开放世界的探针还要问:干预有没有改变人群或参与者的策略;结果是不是只在参与者知道自己被观察时才成立;探针结束以后,机制在自然的环境里还会不会持续。影子模式(规则只记录、不执行)、留出的时间窗口和负对照,都是让一条关键关系暂时更容易接受检验的办法。
有效的干预,不等于识别了机制
1847 年,维也纳总医院的产科医生 Semmelweis 面对一个异常:由医生和医学生接生的第一病区,产妇死于产褥热的比例,远高于由助产士接生的第二病区。他逐一排除了当时流行的解释:两个病区呼吸同样的空气;第二病区其实更拥挤;让摇铃的神父改道、改变分娩体位,死亡率都没有变。同事 Kolletschka 在尸检时被手术刀划伤后死去,尸检所见和产褥热极为相似。Semmelweis 由此提出:医生做完尸检直接去检查产妇,把“尸体上的微粒”带给了她们。1847 年 5 月中,他要求所有人用氯化石灰溶液洗手。
洗手有效,但机制并没有识别完。当年 10 月的事说明“尸体微粒”太窄,他只好把解释扩大为“腐败的有机物”;病原是细菌,要到大约二十年后才被理解。洗手同时切断了几条可能的传播路径,所以它作为治疗是对的,作为诊断却很粗。它值得在机制弄清之前就采用:代价很小,而在当时所有仍然站得住的解释下都有好处,是一个典型的稳健动作。
同样的结构也出现在个人问题里。一个人写东西反复拖延,候选机制是任务太模糊,或者对评价太焦虑。“每天固定时间交两百字的粗糙初稿”可能非常有效,但它同时改变了两件事,分不出哪一条机制承重。要区分,就分别设计更窄的探针:只提供清晰的提纲,不降低质量要求;或者允许匿名自由地写,不提供结构。
本课要点
- 实验规模小,不代表信息有用;探针要围绕一个会改变决定的分歧,便宜的先做。
- 小规模测不出只在总量之上才出现的问题:要么覆盖到那个总量,要么写明没有检验过。
- 开放世界的探针会改变参与者,要设计局部封闭和独立复核。
第 10 课
入账:把结果写回原来的判断
- 本课要回答
- 现实反馈回来以后,怎样只修改它真正触及的主张,并用它来校准自己的判断?
- 学完应能
- 做最小必要的更新,分开写解释更新、行动中止和治理升级;
- 用判断账本记录事前把握,并读懂自己的校准图。
结果出来以后,人最容易做的一件事,是改写自己的记忆。1972 年尼克松访问北京和莫斯科之前,心理学家 Fischhoff 和 Beyth 请一批参与者估计这两次访问各种结果的概率;访问结束一段时间以后,出其不意地请他们回忆自己当初的数字。对认为已经发生的结果,人们回忆出的概率普遍偏高;对认为没有发生的,普遍偏低。参与者并不觉得自己改过什么。
最可靠的办法是:在结果出来之前,把判断写下来;结果出来以后,回到那份记录上去改。另一种常见的错误,是把证据扩写到它没有覆盖的范围:一次局部的试验被写成历史的根因,一次回滚被写成完整的机制。
更新落在最小必要的位置
单次观察很少能推翻一个完整的解释。更可靠的写法是:某一条关系得到了支持;某一个边界假设被削弱了;当前的结果还分不清两个机制;原来的口径需要重写;证据足以支持一个有限的动作,但不足以支持更大的承诺。
现实反馈会改变三样东西,不能共用一个含糊的“停止条件”:解释更新条件约束对某条因果关系的信心;行动中止条件约束安全、成本和风险暴露;治理升级条件约束权限、合规和冲突的处理。解释被削弱时,一个在几种解释下都合理的稳健动作仍然可以继续;动作因为成本超支而停止,也不代表解释错了。
写下事前的把握
账本里值得多写一样东西:事前,你对每条主张有几成把握。按 Deutsch 的看法,解释不会因为概率变高而被证实;这里的数字属于决策这一层,记录的是你自己的判断习惯。积累二三十条以后,看你说“七成把握”的事,是不是大约七成发生了。
校准是可以练出来的。美国国家气象局的预报员每天发布降水概率。Murphy 和 Winkler 在 1977 年分析了这些预报,发现预报员说“七成会下雨”的那些日子,下雨的比例大体就在七成附近。一个常见的解释是,预报员每天写下概率,一两天之内就知道结果。多数组织里的判断,缺的正是这两样:事前写下的数字,和及时回来的结果。所以账本要尽量缩短从判断到结果的时间。
判断账本有两条纪律:条目在证据到达时就写,不要等到季度复盘;条目引用原判断的版本号,改的是那个版本上的具体主张。开放世界的判断还要带版本、有效期和复核条件。一个解释过期,不等于它过去是错的;危险的是产生数据的机制已经变了,组织却继续把旧的判断当成不带版本的事实。
本课要点
- 入账的单位通常是一条关系、一个边界或一个动作的资格。
- 解释更新、行动中止和治理升级是三种不同的触发条件。
- 事前写下判断和把握,事后回到原来的记录上改;按档对照,看自己在哪类问题上判断失准。
- 校准靠事前写下的数字和及时回来的结果;账本要尽量缩短从判断到结果的时间。
第 11 课
案例:一次尾延迟事故
- 本案练习
- 在一个相对可封闭的生产系统里,先控制影响,再用调用链、资源状态和逐级恢复接近具体的失败路径;同时避免把“关掉就好了”写成唯一的根因。
- 环境
- 相对可封闭,夹带秒杀流量和共享依赖
某电商平台的配送时效服务,原本只为购物车页面提供城市级的预计送达:全平台约四万个缓存键,命中率在 99% 以上。没有命中时,它通过一个连接池调用承运商网关:200 个连接,每次调用平均约 0.4 秒,所以每秒最多处理约 500 次。新功能在结账页显示精确到街道的“预计送达日期”,由结账服务同步调用同一个服务。功能先对 5% 的结账用户开放,跑了三天,一切正常。09:57,它被放到全量。
10:00,限时秒杀开始,结账流量达到每秒约 5,000 次。10:02,结账的中位延迟从 230 毫秒升到 260 毫秒,最慢 1% 的请求(p99)从 1.25 秒升到 11.8 秒。10:09 功能关闭,10:16 p99 回落到 1.4 秒。秒杀在 10:30 结束。
关闭功能是为了缩小伤害。事故现场要同时维持两条线:处置线负责恢复到安全状态;学习线负责保全时间线、日志和调用证据,等系统稳定以后再区分机制。
为什么说这条解释难以任意改动
这条解释里几乎每一个细节,都能用另一项独立的观察来核对。尾部变慢、中位数几乎不变:只有约一成的请求没有命中,而且结账服务是异步的,等待不影响其他请求。最慢的请求停在将近 12 秒:唯一起作用的超时是网关客户端的 12 秒。事故发生在全量以后、并且在秒杀期间:5,000 次的 11% 加上购物车的未命中超过了 500,平日 3,800 次时没有超过。灰度没有发现问题:5% 的流量离 500 次的上限很远。可以回到第九课的模拟,把这几项逐一调出来看。
把“接口变慢,是因为数据库有问题”放到这里,它一件也说明不了:只有结账路径的命中率掉了;最慢的请求恰好停在 12 秒;关掉一个和数据库无关的功能,延迟就恢复了。
恢复本身是一项新的决策
修复版本把商品组合的哈希从缓存键里去掉,键的数量降到约两百万,重放得到的命中率回到 96%;这项可选依赖加上 300 毫秒的超时预算,没命中的请求这一次不显示日期,由后台回填缓存。恢复按 1%、5%、25%、50%、全量逐级放量,每一级都要经过一个高峰时段,停止权在值班负责人手里。第二天晚高峰放到 25% 时,购物车读缓存变慢了。
这个结果没有推翻缓存键那条链路,而是暴露了第二条机制:键的数量修好以后,值的大小成了新的瓶颈。团队把这项功能的缓存迁到独立的实例,把值裁剪到约 3 KB,并设了带宽预算和限流,之后才完成恢复。
最终的记录写的是:新功能放大了缓存未命中,超过了连接池的处理能力,排队变成了尾延迟;秒杀抬高了总流量,可能是上午打满连接池的必要条件之一,贡献没有完全区分;修复版本暴露了共享缓存的带宽瓶颈;没有超时预算,让排队原样传给了用户;最慢请求的调用链因为采样方式而缺失。每一条都对应一个具体的改进:可选依赖必须有超时预算和降级路径;发布门槛加入缓存命中率和共享资源用量;灰度必须覆盖高峰;链路追踪优先采样慢请求。
本案做到了哪一步
- 主链路接近路径完整:版本、状态变化、资源等待、超时设置和恢复结果能够互相约束。
- 秒杀的贡献和采样缺口仍然未决。
- 每一级恢复都是在当时的证据下决策充分的有限动作。
第 12 课
案例:注册多了六成,付费账户反而少了
- 本案练习
- 在无法把历史重来一遍的商业系统里,把汇总的变化拆成可以比较的机制,把时间线不同的决定分开,并区分“局部干预有效”和“历史成因已经识别”。
- 环境
- 开放适应:用户、渠道和销售都会随改版调整,没有明显的对手
一家做项目任务看板的协作软件公司,一个付费团队平均每年贡献约 8,000 元。四月初,公司把网站主入口从“预约演示”改成“免费开始使用”,价格、功能和销售政策都没动。十六周后复盘时,下季度的获客预算三周后就要定,增长负责人的提案是把搜索广告的投入翻倍。会议上有三个解释:免费入口带来了大量低意向的个人用户;新用户没有经历团队协作的关键时刻;大量普通注册淹没了高意向线索,销售响应变慢。
便宜的检查先做
几天之内,团队做完了三项检查。抽样 800 个账户核对账单,新旧口径对付款率的影响不到半个百分点,纯测量的假象被削弱。销售首次响应时间的中位数从 3 小时拉长到 11 小时,这支持了销售解释的前提;但在同一意向层级内,快慢响应的账户付款率只差 2 个百分点,而且销售本来就优先联系大公司,因果贡献说不清。改版后前三周的账户已经满九十天,九十天付款率比四十二天高 1.5 个百分点,改版前也高约 1.5 个百分点:付款会晚到,但差距没有缩小,“付款只是推迟了”作为主要解释被削弱。
预算会等不了试验,先算账
产品试验从批准到出结果要将近四个月,对三周后的预算会毫无帮助。获客的决定只能基于现有的证据。
于是获客决定被拆成三层:维持当前投入;在六个广告区域中选两个多投 30%,测新增投入的注册成本;翻倍推迟到两个条件都满足以后,门槛由财务负责人解释。到试验出结果时,获客那条线的证据也到了:加投区域新增投入带来的注册贵了约二成;按九十天口径,每个付费账户的获客成本约 4,700 元,低于 5,000 元。两个门槛一个通过、一个没有通过。财务负责人批准全部区域加投 30%,翻倍继续暂缓:分区试验的证据覆盖的就是 30% 这个幅度。
只回答局部问题的试验
团队选了一个会改变近期动作的关键分歧:对声明团队用途、七十二小时内建好第一块看板的组织,一个邀请同事一起完成看板的引导,能不能提高第二位成员的真实使用,并进一步改善付款?以组织为单位随机分组,每组约 2,400 个;主指标是七天内第二位用户在看板上完成编辑、评论或任务分配;关闭试验的权力在支持与隐私负责人手里。事前写下的门槛:付款率提高不到 1.5 个百分点,就不值得保留。
结果:真实使用约 25% 对 19%,付款率约 9.9% 对 7.5%,差异 2.4 个百分点,95% 区间 +0.8 到 +4.0。它支持一个有限的结论:在试验定义的人群和版本中,这个引导提高了第二位成员的参与和四十二天付款率。它没有证明历史上的付款下降主要是协作路径造成的;一个办法在局部试验中有效,不等于历史问题是由缺少这个办法造成的。
本案做到了哪一步
- 协作引导在限定人群里的局部效果机制获得支持;对“保留引导”这个动作决策充分。
- 历史下降里各个机制各占多少,没有识别。
- 获客这一边,证据对“加投 30%”决策充分,对“翻倍”不充分。
第 13 课
案例:单看每一笔交易,都看不出攻击
- 本案练习
- 当对手会隐藏真实状态、学习规则并改变做法时,保留多轮假设,利用残差改变分析单位,并把风险控制、机制识别和对正常用户的伤害分开处理。
- 环境
- 混合:交易系统可以检查和回放,攻击者针对规则调整做法
一家数字商品平台以自己的名义对外收款,礼品卡和游戏点卡在付款后几秒内自动发货。连续十二天,发卡行的欺诈通报和客户申诉显示,未经授权交易造成的损失约为基线的三倍;正式的拒付还要几周才会陆续到来。批准率、拒绝率和风险评分的分布都没有明显跳变,而且损失集中在已经存在几个月、有过正常购买的老账户上。会议上很快有人说:“这肯定是新的评分模型漏掉了一批盗卡交易。”
欺诈控制同时面对两种错误:漏放造成资金损失,误伤会拒绝正常用户,还会污染以后的证据。标签又常常晚于价值转移。所以团队先限制高风险商品的即时发货、保全证据,把止损和识别分成两条线,没有按国家或设备类型大面积封禁。
换一个分析单位
第四轮之后,问题被改写了。原来问的是“哪一个账户信号失效了”,新的问题是“是否存在一种关系,只有把许多账户、支付工具和发货去向放在一起看时才会出现”。这叫改变分析单位。
关系图特别容易产生事后的过度拟合:先看过所有坏案例,总能找到一些共同的连线。团队做了四件事来防止这一点:在查看下一批标签之前冻结模式的定义;把冻结的模式以影子模式运行在之后十天的新交易上;让不知道图分数的复核人员独立检查原始申诉和发货记录;对一小部分交易加二次确认,看失败是零散出现,还是成批出现在同一组关系和同一个时间窗口里。结果是后者。
这组数字也要和前面对上。损失是基线的三倍,所以当前损失里约三分之一是平时就有的背景欺诈,关系模式本来就不该覆盖它们;账户接管解释了约三分之一的案例,一部分被用进了协调行动,一部分是单独的接管。58% 的覆盖率,和“模式主要抓住了新增的那部分”是相容的。
对手开始适应以后
防御上线后,直接的共享关系很快减少了。把某个设备簇或兑换去向当成永久黑名单,模式会很快失效,还会误伤正常用户。更承重的,是对手改不了、或者改起来代价很高的约束:在这个案例里,是够资格即时发货的老账户。按放宽后的规则,准备一个这样的账户,至少要 90 天和三次真实的购买。防御方向因此变成:让即时发货的资格依赖对方难以批量伪造的东西,而不只看账户年龄和购买次数。这些约束也会随对手的调整而变化,所以同样要有版本和复核条件。
本案做到了哪一步
- 跨账户协调这条机制,在冻结模式、留出时间窗口、独立复核和前瞻验证中得到了支持。
- 轻的摩擦和发货控制决策充分;按关系簇直接封号,证据不够。
- 真实身份、账户来源和全部攻击链没有识别。
第 14 课
团队共用一份判断记录
- 本课要回答
- 怎样把个人的推理,变成团队可以一起纠错的结构,同时不让流程和模板取代思考?
- 学完应能
- 设计逐层展开的记录、角色分离和独立的停止权;
- 让评审先写明环境和本轮目标,并接受“目前无法区分”作为合格的产出。
个人可以在脑子里同时保留几个解释,团队却不能依赖每个人的记忆。更好的办法,是只用一份案例记录,按风险逐层展开:低风险、可以撤回、反馈快的问题,只写现象、当前的决定、主解释、一个强敌、下一步和复盘日期;需要多人协作时,再补上测量假设、证据来源和负责人;高影响、难以撤回的决定,才展开最坏情形、审批和三类触发条件。
评审开始时,先写下环境和本轮目标:系统能封闭到什么程度,参与者会不会调整做法,由此判断当前是哪种环境;本轮目标是路径完整、机制获得支持,还是只需要足以支持某个具体的动作。这几行防住两种相反的错误:要求商业问题交出一条像程序调用链那样完整的路径;或者因为世界是开放的,允许任何故事长期不承担可以观察的后果。
一小时的评审
会前每位参与者各自写下一个解释和他最怕看到的一项观察,这样第一个开口的高管不会决定房间里有哪些候选。会上先定题、立敌、摊牌,然后对到了时限的决定做决策,最后只定下一步的试探和复盘日期。合格的产出有三种:带范围和触发条件的有限行动;写明适用边界和复核日期的暂时判断;明确写下“目前无法区分”,并安排一项能提高分辨率的工作。
当解释牵涉到责任、预算和声誉时,更有用的说法是:“解释 A 和解释 B 对接下来两周有不同的预期。我们先找一个风险可控的观察。A 被削弱了,下一步怎么变;B 被削弱了,又怎么变。”说话的技巧消除不了权力。越接近谈判、身份锁定或有对手的场合,证据的来源路径、权限分离和正式的监督就越重要。
本课要点
- 共同记录的价值,在于保存分歧、事前预期和状态变化。
- 角色分离是在承认激励冲突,尤其要保护证据的来源和停止权。
- “目前无法区分”是合格的产出;把没有区分开的解释包装成根因,是唯一不合格的产出。
第 15 课
这套方法会怎样失败
- 本课要回答
- 这套方法进入真实的组织以后,会以哪些方式被滥用、变成仪式,或者成为逃避判断的借口?
- 学完应能
- 识别六种常见的失败;
- 判断什么时候该完整使用这套方法,什么时候先行动、后复盘。
把开放世界当成封闭系统。把一次局部试验、一个回归模型或一张关系图写成完整的历史路径。修正的办法是缩小主张的范围:写明适用范围、做到了哪一步、残差、有效期和复核条件。
用“世界太复杂”为任意的故事开脱。开放增加了识别的难度,却没有取消约束。一个解释仍然要说明它在什么条件下成立,会留下什么可以观察的后果,什么结果会削弱它。
收紧得太早。新的问题常常先以异常感、比喻或不完整的语言出现。探索阶段允许解释暂时容易变;进入比较和行动阶段以后,再逐步收紧约束。
结构太多,流程代替了思考。一场评审没有带来新的区分方式,没有改变下一步,只是让文档变长了,它就没有创造价值。低风险、可以撤回、反馈立刻可见的小动作,不需要完整的流程。
指标取代了原来的目的。Goodhart 在 1975 年写道:任何观察到的统计规律,一旦被用于控制的目的,就会趋于失效。更流行的说法“当一项度量成为目标,它就不再是一项好的度量”,来自人类学家 Marilyn Strathern 1997 年对英国大学评估制度的批评。
组织不允许纠错。组织奖励隐藏坏消息、惩罚承认错误时,要问的是现实反馈有没有权力改变行动。没有这种权力,继续加强论证,可能只会让提出异议的人承担更多风险。
什么时候合上这本书
危险正在扩大、时间很短时;动作低风险、可以撤回、反馈立刻可见时;专家面对高度重复、反馈充分的熟悉模式时;探索刚开始、变量还没有稳定时;干预不合法或超出权限时,都不适合完整地走一遍流程。可以先行动,事后再复盘;可以先观察,等变量稳定了再建模;也可以请有资格的人来判断。
本课要点
- 两种相反的失败:把开放世界当成封闭系统;用“世界太复杂”为任意的故事开脱。
- 结构只在带来新的区分、有限的动作或明确的未决时才有价值。
- 组织如果不给不利信息改变行动的权力,再好的方法也会变成仪式。
结课
你自己的判断卡
- 结课任务
- 选一个你手上真实、可以安全讨论的问题,用五个动作走一遍,每个到了时限的决定各做一次决策,写成一份可以放进 Obsidian 的记录。
写完以后,再按“相对可封闭”和“开放适应”两种假设,分别重写决策那一格:哪些证据、目标和行动偏好会变?如果完全没有变化,说明环境这条线索还没有真正进入你的判断。
然后把判断卡里的第 7 格,连同事前把握,记到第十课的判断账本里。到了复盘日期,回到这张卡上去改。
结语
好解释不会让人从此不犯错。它能做的是:在相对封闭的系统里,让我们有机会重建结果是怎样产生的;在开放和对抗的系统里,让机制、适用范围、可以观察的后果和失效条件彼此约束。无论在哪种环境,它都要求竞争解释得到公平的机会,让证据能够改变具体的主张,也让行动的规模不超过我们当前知道的东西。
最难的时刻,通常在现实给出不利信息以后。这时要做的是几件具体的事:承认问题写错了,降低对一条因果关系的信心,停掉一个已经投入很多的动作,把“目前无法区分”写进正式的记录。这些事都有代价,而且代价通常落在提出原来判断的人身上。所以,评价一个判断系统,要看它能不能让错误尽早出现,有没有人能够指出错误,以及错误出现以后,有没有权力改变下一步。