‹ 胡敏 · 全部作品
📖 长文阅读🔗 人工智能与企业频道
学员专栏 · 胡敏 · 人工智能与企业 · 局部提速为什么反而堵住

未依

局部提速之后新增的协调与返工,是下游还没把上游认下来的那一段悬空
作者 胡敏 · SDE 学员 · 约 1.9 万字 · 发表于2026年8月28日
摘 要

企业在大量节点上引入自动生成之后,普遍观察到单点吞吐上升而端到端周期不降,新增工时集中在审核、返工、协调与跨部门确认。本文处理这一现象的另一个自由度:不是上游少做了什么,而是下游还没来得及把上游的产出认下来。一件东西被交付之后,下游要把它变成可以依赖的对象,须经过一段既不能靠加大强度替代、也不能被并行化的过程;上游提速使更替频率超过这段过程的周期,于是大量产出长期停留在"已经交出去、还没被认下来"的状态。这一状态在两端的账上都不占位:上游记它为已完成,下游记它为还没轮到,中间这一段没有科目。本文把它命名为未依,以整数未依代数 w 为读数,并按处置方式把它分为待读、待写、待验三型——三型在 w 上读数相同而处方互斥。承重问话不含任何程度词:上游上一次发布,下游在哪一天把它写进了自己的检查表?推翻三家共同前提的那件材料取自发育生物学自己:形态发生素的解读是对信号的时间积分,提高浓度不能替代暴露时长,能力窗之外给出的信号等于没给,而窗口的开闭不产生任何形态学信号。本文预注册后用一个公开发行版归档跑了一条检验(两个长期支持版共 2,243 个源码包):主假设被证伪,且方向相反并在三个规模档内稳健重复;这一结果逼出了一条本文原来没有的判断——未依的堆积不表现为下游改动增多,而表现为下游干脆不采纳,且任何单一记录系统都读不出它。

关键词:未依;未依代数;交付与生效的分离;待读待写待验;零采纳;记录系统的两端切口

一、先摆一个从公开归档里读出来的数

一个操作系统发行版的长期支持版本,是一份非常干净的记录:它把某个时刻的上游软件世界固定下来,然后在此后数年里只做有限的更新。这份记录是公开的,任何人都能下载、解析、复算。

取两个相隔两年的长期支持版本,比较它们各自收录的源码包,共有的部分是 2,243 个。再取其中一个版本的更新分支,看这两年里到底有多少包被动过:

2,372 个包里,只有 889 个在整个周期内被动过一次或以上;其余 1,483 个包,占 62.5%,两年里一次也没有被动过。而在那 889 个被动过的包里,有 386 个(43.4%)动的只是下游自己的修订号,上游版本一次也没换。

这两年里,那 1,483 个包的上游并没有停下来。它们照常发布,照常修 bug,照常加功能。上游的产出量是可观的,而下游的账上,这些产出一条也没有出现。

这里要小心不要读成一个批评。发行版这样做是对的:稳定是它的产品,冻结版本是它的核心工艺,它有一整套成熟的规则来决定什么值得回补、什么不值得。本文关心的不是它做得对不对,而是那些没有被采纳的上游发布,在任何一本账上处于什么位置。

答案是:不处于任何位置。

上游那边,这些版本全部记为"已发布",是产出,是正数。下游这边,它们根本不出现——发行版的索引只记录被收录的那一个版本,没有被收录的版本在归档里连一行都没有。翻遍这份索引的全部字段——包名、版本、维护者、构建依赖、校验和、文件清单、上游主页、版本控制地址——没有任何一个字段记录"上游发布了多少个我没有采纳的版本"。

于是有一段东西存在于两本账之间而不在任何一本账上:已经交付了、还没有被认下来的那一段。

本文要说的是,企业在提速之后新增的协调、返工与跨部门确认,有相当一部分就是这一段在膨胀。而它之所以从来没有被当作一个量来处理,是因为一条被所有人共享而无人说出的假定:交付即生效。

后文的安排:第二节把这条假定摆出来;第三节看三门与这道题距离极远的学问各自把"生效"押在了什么上;第四节从其中一门自己的材料里把这条假定撬开;第五节到第八节给出名字、分型、读数与识别签名;第九节给出一句可以拿去问文件的问话;第十节做十二处兑现;第十一节交代三处削弱本文的约束;第十二节与十种既有说法逐条分界;第十三节报告预注册检验与三个不利结果;末四节交代边界、证伪、这个读数进考核之后会发生什么、本文自身的位置与一条写死日期的赌注。

二、交付即生效

这条假定的形状是:

一件东西被交出去的那一刻,它就开始起作用了。

它不是任何一派的主张,是所有派共同的记账起点。项目管理以交付物签收为里程碑;财务以交付确认收入;工程以出图为节点;采购以到货为结算点;软件以发布为版本;论文以见刊为成果。所有这些体系都把"交出去"当作时间轴上那个唯一需要被记录的点,而没有为"被认下来"设第二个点。

在只有一个点的时间轴上,一件事只有两种状态:还没交,交了。"交了而还没被认下来"没有状态空间。

这条假定在上游产出很慢的时候是良好的近似。上游每年发一次,下游有整整一年把它写进接口、写进规程、写进检查表、跑一遍验证;等下一版来的时候,上一版早已被认下来。交付与生效之间的间隔存在,但它短于更替周期,因此从来不需要被单独计量。

提速改变的正是这个比值。上游的更替周期被压到原来的十分之一,而下游把一件东西认下来所需的那段过程,几乎没有变。于是间隔第一次长于更替周期,堆积开始。

堆积一旦开始,下游只剩两条路:要么不采纳(于是上游的产出在下游眼里等于不存在),要么每次都全量重新核对(因为它无法依赖任何一个已经固化的假设)。第二条路的名字,在企业里叫审核、返工与协调。

这就是本文与"能力不足""管理不善""过渡摩擦"这几种解释的分岔点:它们都预测这笔成本随时间自行消退,而本文预测只要更替周期短于认下来所需的那段过程,堆积就不消退,与年限无关。

三、三门远学问各自把"生效"押在哪里

要检验一条被当作背景的假定,得找三门在这道题上完全不发言、失败定义互相翻译不过去的学问,看它们各自把"什么时候算生效"押在了什么上。

3.1 文物修复:押在能不能被后人认出来

现代文物修复理论有一条被写进国际宪章的强主张:修复的成立,取决于介入部分能否被识别为介入,而不取决于修复后的外观有多完整。布兰迪在《修复理论》里把修复的目标定为恢复作品的潜在统一性,而且加了一句限定——只要这样做不制造艺术上的伪作或历史上的伪作。一九六四年的国际宪章第十二条把它变成了操作规则:补配的部分必须与原作可区分。

这一路的主张是单因的,而且它的单因很硬:决定一次介入成不成立的,只有可识别性这一条;外观完好度、观众满意度、技术难度,一概不算数。一个把破损处补得天衣无缝、任何人都看不出的修复,在这套标准里不是好修复,是伪作。

写成一句可核的驱动次序:作品当下的样子与介入路径长期不容,逼出"什么才算这件作品"的条件本身改变——从"原作"变成"原作加上一层可识别的、有年代的介入";而这个改变一旦被制度接受,又回过头规定下一代修复师能动什么、不能动什么。

这一门自己承认解决不了、又天天不得不用的东西是:历史上的旧修。一处两百年前的补笔,既不是原作,也不是当代介入;按今天的标准它是伪作,按当时的标准它是合格的修复,而它现在已经是这件作品物质史的一部分。除掉它是抹掉历史,留着它是留着一处伪作。这门学问为它专门发展了整套对策(登记、标注、分层记录),但没有一条对策能取消这个两难。

它愿意自曝的那一处是:当一件作品的展示与市场压力足够强,可识别性反而是被展示制度驱动的结果——展陈要求"看起来完整"时,可识别性的尺度会被悄悄放宽。

3.2 油田开发:押在流体到底扫过了多少地方

采收率在这门工程里从来不是一个整体量,它被分解成两个乘数:驱油效率(被流体接触到的那部分岩石里,油被驱走了多少)与波及系数(流体到底接触到了多少岩石)。两者相乘才是采收率。

这一路的单因主张同样很硬:决定采收率的是波及系数,不是驱油效率。理由是初等的:在流体根本没有到达的地方,驱油效率再高也是零。而波及系数由什么决定?由驱替前缘的稳定性决定——巴克利与莱弗里特在一九四二年给出的那套一维驱替理论,以及此后关于流度比的全部工作,说的都是同一件事:当驱替流体比被驱替流体更容易流动,前缘就不稳定,它会沿着阻力最小的通道指进,提前突破。

这里有一个对本文极重要的推论,而且它是这门工程的日常常识:提高注入速度,会让突破更早发生,波及系数下降,最终采收率下降。更进一步,在低渗透与裂缝性储层里,油要从基质里出来靠的是毛管力驱动的渗吸,而渗吸是慢过程;注入速度一旦超过渗吸的时间尺度,流体就只沿裂缝跑过去,基质里的油来不及被置换出来。

写成驱动次序:已经形成的驱替前缘与地层条件不容,逼出注采路径的改道(调剖、堵水、井网加密、转周期注水);而新的注采路径一旦实施,又回过头改变哪里算"已波及"、哪里算"未动用"。

它自己承认解决不了、又天天在用的那件东西是:被绕过的油。行业里有专名(bypassed oil / 未动用储量),有专门的描述方法,有专门的挖潜技术;而它的量始终估不准,因为它的定义依赖于"波及"这个词划在哪里,而波及的边界只能靠间接手段推断。它既不算已采出,也不算损失,在储量表上单列一栏,长期挂着。

它自曝的那一处是:当油价与合同期限压过来,注入速度反过来被经济条件决定,波及系数从决定量退化成一个被接受的后果。

3.3 发育生物学:押在信号落在哪个时间窗里

第三门离前两门更远。一个细胞最终成为神经还是肌肉,取决于什么?这门学问在半个多世纪里给出的答案是位置信息:细胞根据自己在形态发生素浓度梯度中的位置读出坐标,并据此选择命运。

但这个答案后来被补上了一个决定性的第二维,而正是这一维对本文有用:解读不是瞬时的,是对信号的时间积分。同一个浓度,暴露三十分钟与暴露三小时,读出来的命运不同;而且反过来——提高浓度不能替代暴露时长。更硬的一条是能力窗:一个细胞只在特定时间区间内对某个诱导信号有反应,窗口关闭之后,同样的信号、同样的浓度、同样的呈递方式,产生的效应是零。

这一路的单因主张写出来是:决定命运的是信号的时间积分与能力窗,不是浓度,也不是细胞自身的潜能。关于潜能那半句同样是硬的——移植实验反复表明,同一个细胞放到不同宿主位置、不同发育阶段,命运完全不同。

写成驱动次序:信号条件与细胞已经走过的路径不容,逼出细胞呈现形态的改变(分化);而分化一旦发生,又回过头改变这个细胞及其邻居下一轮还对哪些信号有反应——能力窗本身被上一轮的结果重写。

它自己承认解决不了、又天天在用的那件东西,正是本文要的那件:能力窗的开闭不产生任何形态学信号。一个细胞是否还"有能力"响应某个诱导,从外观、从分子标记、从任何一次静态观察都读不出来,只能靠移植——把它放到诱导环境里看它反不反应——事后测出来。而移植是破坏性的:测过的那个细胞已经不能再用了。这门学问的每一个诱导实验都必须先把胚胎"定阶段",而定阶段依据的是形态学分期表,那是一套约定,不是对窗口的直接观测。

它自曝的那一处是:在某些系统里,能力窗本身由细胞自身的分化状态决定,此时它这条驱动是被驱动的。

3.4 三家为什么不能同时成立

修复说生效在于能否被后人认出——这是一个回溯的、由他人执行的判据;油田说生效在于流体扫过了哪里——这是一个空间覆盖判据;发育说生效在于落进了哪个时间窗——这是一个时序判据。

把同一件事拿给三家:一份刚交付的产出,它生效了吗?修复说要看后来的人能不能把它与既有部分分开;油田说要看它实际接触到了多少下游;发育说要看接收方当时开着哪扇窗。三个答案不能同时成立,因为它们连"生效"这个词指的是什么都不一致。三家没法靠判谁对来化解——它们根本不在同一个语域里作答。

四、把共同前提撬开的那件材料

三家的争论压成一句:

三家争的是一次投入的效力该由什么来结算——由回溯的可识别性结算,由空间覆盖结算,由时间窗结算。

而三家共同假定了下面这一条,且假定得毫无自觉:

效力可以由"做了多少、做得多强"结算。强度与时长可以互相替换。

修复理论谈的是介入的形式,从不谈介入需要多久才成为"这件作品的一部分";油田工程把注入速度当作一个可调参数,追求的是单位时间的驱替量;发育研究在很长时间里把形态发生素的作用写成浓度的函数。三家在这一点上完全一致:投入是一个可以被强度换算的量,快一点就是省一点。

念给三家听,三家都会说"这还用说吗"。

撬开它的那件材料,在发育生物学自己手里,而且是它的日常工艺,不是边角案例:

形态发生素的解读是对信号的时间积分,浓度不能替代暴露时长;而能力窗之外给出的信号,效应为零。

关于时间积分的那一半,近十几年的实验把它做实了:同一浓度下延长暴露、或同一暴露时长下改变浓度,得到的命运分布不同,且不能互相换算;细胞对持续信号还会发生适应,使得"晚到的高浓度"与"早到的低浓度"读出完全不同的结果。关于能力窗的那一半更老也更硬:移植实验从上世纪二十年代起就反复给出同一个结果——同样的诱导组织,放在窗口内产生完整的器官,放在窗口外什么也不产生。

在发育生物学自己的语境里,这两件事回答的是"细胞如何解读位置信息",用途是设计诱导实验、定阶段、控制暴露方案。没有人把它当作关于"交付与生效是不是同一时刻"的证据。

但把它放到本文的问题上,它推翻的正是那条共同前提的两半:

其一,强度不能替代时长。这意味着"做得更快"不是"做得一样多而省了时间",它是换了一个量。一次被压缩了暴露时长的投入,不是打了折扣的同一件事,是另一件事。

其二,效力不是投入自身的属性。同一份投入,落在窗口内是决定性的,落在窗口外是零。因此"已经交付"这件事本身,不包含任何关于"是否生效"的信息。

于是"交付即生效"这条地基被撬开了:交付与生效是时间轴上两个不同的点,中间那一段有长度、有结构、有代价,而现行的记账体系里没有给它设过位置。

油田工程给出了同一件事的第二个版本,量纲完全不同:注入的水是实实在在注进去了的,它是一笔已完成的投入;而它有没有波及到基质里的油,是另一件事。注得越快,两者背离越大。修复理论给出第三个版本:一次介入是实实在在做完了的;而它有没有成为"这件作品"的一部分,要由后来的人能否把它认出来决定,那件事发生在介入完成很久以后。

三家的量纲互不可译,形状是同一个:投入完成的那一刻,与它被接收面认下来的那一刻,不是同一刻。

五、未依

给这一段起个名字。

未依:一件已经交付、而尚未被下游认下来的产出。"认下来"指下游把它写进了自己可以据以行事的东西里——接口、规程、检查表、报价单、教材、模板、判例、配置基线。在被认下来之前,它在上游账上是已完成的产出,在下游账上不存在;这一段悬空没有科目。

三条界定,缺一条就不是未依:

其一,它不是被拒收。拒收是一次判定,有记录、有理由、有责任人。未依没有判定发生——下游既没有接受它,也没有拒绝它,它只是还没轮到。一个被明确拒收的版本,在本文的读数里不计入。

其二,它不是在途。在途有位置:在传输中、在队列里、在待办清单上,都是有字段的状态。未依的东西已经到达了,下游手里有它,能看见它,只是没有把它写进任何据以行事的东西。

其三,"认下来"不能靠加大强度完成,也不能被并行化。这是它与"下游人手不够"的分界。把下游的人手加一倍,能加倍处理的是已经被认下来的对象的处理量;把一个新版本写进接口并跑通一次验证,这件事有它自己的最短时长,多派两个人不会让它变成三分之一。这一条正是从发育那一家取来的:时间积分不能被浓度替代。

未依有一个可判定的存在标志,且不需要新建任何系统:

取下游据以行事的任何一份文件(接口文档、作业规程、检查表、配置基线),看它引用的上游版本号是哪一个;再看上游当前的版本号是哪一个。两者之间隔了几代,就是几代未依。

5.1 为什么它在两端的账上都不占位

上游的记录系统,时间原点定在交付:交付之前的准备不可见,交付之后即计入产出。下游的记录系统,时间原点定在采纳:采纳之后开始计入处理量,采纳之前不出现。

两个原点之间的那一段,被两端各自切掉了一次。上游不记它,因为在上游看来那件事已经完成了;下游不记它,因为在下游看来那件事还没开始。这不是疏漏,是两套系统各自的正确设计——每一套都只对自己负责的区间设字段。

这就是为什么本文的读数不可能从任何单一系统里读出来。它必须同时读两个系统的记录,并做一次连接:上游发布记录 × 下游据以行事的文件。而这个连接在任何现成系统里都不是一个可查询的对象。第十三节的检验直接撞在这堵墙上,并因此改写了本文。

5.2 三种未依,读数相同而处方互斥

未依不是一种东西,是三种,它们在读数上完全一样,处置方式互相排斥。把它们混在一起,是眼下大多数"跟不上"类问题被处理错的原因。

型

下游的实际状态

它的成因

有效处置

用错处置的后果

待读型

不知道上游发过新东西

通知渠道没建立,或通知量已超过可读上限

建立定向订阅与变更公报;减少通知量而不是增加

加派人手去读,通知量不变,一个月后回到原处

待写型

知道,但没写进任何据以行事的文件

写入动作没有归属岗位,或写入的对象(接口、规程、检查表)本身没有版本管理

给"写进去"这个动作设一个岗位与一个截止日

培训、宣贯、开会强调——写入动作仍然没有归属,无人执行

待验型

写进去了,但没跑通一次验证,因而不敢据以行事

验证环境、验证数据或验证时长不足

建最小验证集,缩短验证的准备时间而不是压缩验证本身

压缩验证时长,把风险推到生产环境,返工上升

三型的判别只需一句话:问下游"你知道吗",再问"写进去了吗",再问"跑过一次吗"。三个答案给出唯一的型。这三问不含任何程度词,也不问人的看法。

三型互斥的证据在于处方互相取消:对待读型有效的是减少通知量,而对待写型有效的措施(发变更公报、增加提醒)恰恰是增加通知量;对待验型有效的是给验证留出时长,而对待写型的截止日压力会挤掉验证时长。用错型不是效率低一点,是方向反了。

六、读数:未依代数

读数名:未依代数 符号:w 取值:非负整数

定义(一句):对某一对上下游,取下游当前据以行事的那份文件所引用的上游版本,数出上游在此之后已经正式发布而下游尚未引用的版本数,即为 w。w=0 表示下游引用的就是上游当前版本。

按轮换律,这个读数不做成比率,理由有二:第一,它必须能被指名。w=3 不只是一个数,它对应三个具体的、可以被逐个列出来的版本;一个比率会把这三个具体对象化成一个抽象强度,而处置恰恰需要知道是哪三个。第二,代数与时间不成比例。上游更替快的地方,三代可能只有三周;更替慢的地方,三代可能是六年。把它折成时间会抹掉"更替速度"这个自变量本身。

6.1 清点手册

粒度:什么算"一代"。一代=上游自己发布并标记为可用的一个版本。上游的预发布、内部构建、未标记的中间状态不计入。恰好在边界上的例子:上游连续发了 1.4.1 与 1.4.2,其中 1.4.2 只修正了 1.4.1 的一处错误并在同一天发出——按本手册算两代,因为上游自己标记了两次可用。判据是上游的标记动作,不是改动的实质大小;这一条会使 w 在高频发布的上游那里偏大,属于已知偏差,见第十一节。

编码规则(五条):

1. 只数正式发布,不数变更条目。上游的提交、工单、内部里程碑不计入。

2. 下游"据以行事的文件"必须是可指名的一份,且在冲突时以最下游的那一份为准。同时存在接口文档与检查表且两者引用了不同版本时,取检查表(它离执行更近)。

3. 被明确拒收的版本不计入 w,另记为"已判"。判定发生过的东西不是未依。

4. 上游已撤回的版本不计入。

5. 计数窗口以下游那份文件的最近一次修订日为起点。若那份文件从未修订过,则以其创建日为起点,并在表上标注"从未修订"——这一标注本身通常比 w 的数值更值得看。

汇总统计(不是第二个读数):一批上下游对里,w≥1 的占比称为零采纳份额。它只是 w 的一个汇总方式,全篇不另设定义与阈值。

表头(可直接照抄):

对编号

上游对象

下游据以行事的文件

该文件最近修订日

引用的上游版本

上游当前版本

w

型(待读/待写/待验)

该文件是否从未修订

不适用:见第十四节。

三处引用一致性自查:正文第六节、证伪条款第 14.2 与 14.5 条、赌注第十七节,三处使用的 w 定义、计数粒度与五条编码规则完全一致。

6.2 它与既有主要指标的正交性

一个新读数若与某个现成指标高度相关,它会被立刻读成那个指标的代理,白造。本文的读数须过这一关,办法是举一个现成指标最好看、而 w 最难看的真实形状。

举得出来,而且第十三节的数据直接给出了它:一个长期支持版本在"稳定性"这个指标上是满分的——两年里 62.5% 的包一次未动,没有任何回归,没有任何因升级引发的故障,运维成本极低。按稳定性读,这是一次完美的运行。而按本文的读数,正是这 62.5% 的包,w 最大。

反过来的形状同样存在:一个滚动发布的系统,w 长期为 0 或 1,而它的稳定性指标很难看。两个读数不但不相关,在这两个形状上方向相反。

因此本文明确反对把 w 与稳定性、可用性、缺陷率合成任何一个复合指标——合成之后,w 的信息会被稳定性那一项吃掉,因为二者反向。

七、两条签名,与它们各自的误诊阻挡

前一节给了读数,这一节回答:什么样的现场值得去测它。未依堆积的现场有两条签名,两条都必须成立;每条各配一条误诊阻挡,用来挡掉最容易被误认成它的那种情况。

签名一:上游的全部产出指标正常且上升,账目经得起核。

发布数、交付件数、单位耗时、人均产出,全部改善,而且不是造假——上游确实做出了那些东西。

误诊阻挡:这一条挡掉的是"上游注水"。若上游的产出增量主要来自把一件事拆成多件计数,那不是未依,是计量口径失守,处置完全不同(改计量口径,不动下游)。判别方法:取上游任意十件产出,问下游"这十件里有几件是你真的要用的"。若答案接近零,是注水;若答案接近十而下游一件也没写进检查表,是未依。

签名二:下游没有任何拒收记录,而下游的处理量同样在上升。

下游很忙,忙的是处理,而它处理的对象是老版本。拒收记录为零这一条尤其要紧:它排除了"下游不认可上游质量"这种解释——若下游认为上游的东西不行,会产生退回、异议、质量工单,那些都是有字段的。未依的现场安静得反常:没有争议,没有退回,没有投诉,只是没有被写进去。

误诊阻挡:这一条挡掉的是"下游怠工"。若下游的处理量不上升、人力闲置,那是产能问题,不是未依。判别方法:看下游的处理量与上游提速前相比是升是降。升而不采纳,是未依;降,是别的事。

为什么只给两条而不是更多:本文原来写过第三条("越规范化越严重"),检查之后删掉了——它在这个对象上不成立。规范化的下游(有配置基线、有变更管理)反而更容易把 w 显出来,因为它至少有一份可指名的、带版本的据以行事的文件;真正读不出 w 的是那些连一份可指名文件都没有的下游,而那种下游通常并不规范。把"越规范越严重"写上去会更漂亮,但它是错的。

八、一句问话,五个场合

上游上一次发布,下游在哪一天把它写进了自己的检查表?

这句话不含任何程度词,不问看法,只问一个日期。它可以拿去问文件管理系统、配置库、规程台账。答不出日期就是答不出,而"答不出"本身是一个信息。

五个场合的五个答案互不相同,其中两个是查出来的,且反过来改了本文。

场合一 · 操作系统发行版。答案:在长期支持周期内,62.5% 的包这个日期不存在——两年里一次也没写进去。这是查出来的(第十三节),它改了本文对未依表现形式的判断。

场合二 · 同一份归档的另一面。答案:被动过的包里,43.4% 动的只是下游自己的修订号,上游版本一次没换。这也是查出来的,它的含义与直觉相反:下游最忙的地方不是"跟上快速变化的上游",而是"替一个停下来的上游打补丁"。它同样改了本文,见第十三节。

场合三 · 保险公司的核保规则。答案:条款版本更新之后,核保规则表的修订日通常滞后一到两个季度,而这个滞后在任何一张报表上都不出现——因为条款生效日与核保规则修订日分属两个系统,没有一张表把它们放在一起。

场合四 · 医院的处方集。答案:药典或指南更新之后,医院处方集与医嘱系统的规则修订日期是可查的,且通常滞后数月到数年。这个滞后有明确的合理理由(本地验证、药事委员会流程),而它的长度从不被作为一个量来管理。

场合五 · 企业内控手册。答案:法规修订日与内控手册修订日之间的间隔可查,而"在这段间隔里按旧手册做出的决定有多少"没有任何系统在数。

五个答案排开,逼出一条本文原来没写的规律:

两个日期分属两个系统的地方,它们之间的间隔就不会有人管——不是因为不重要,是因为没有任何一张表能同时装下这两个日期。

这条规律把本文的第三层主张定死了:未依之所以没有本体地位,不是因为它难测,是因为测它需要一次跨系统连接,而没有任何一个系统的所有者有动机去建这个连接——上游的系统建了它只会显出"我发的东西没人用",下游的系统建了它只会显出"我落后了几代"。两边都没有好处,于是两边都不建。

九、十二处兑现

判断能不能在别的领域里预测一件具体的事,是它是不是比喻的唯一检验。

其一 · 软件发行版。预测:长期支持版本的周期越长,其包集合的 w 分布越向右偏,而故障率越低;两个指标反向。已由第十三节数据部分支持。

其二 · 油田注采。预测:在裂缝性储层,把注入速度提高一倍,突破时间提前的幅度大于波及系数下降的幅度在早期,而累计采收率的下降要到中后期才显现——即代价滞后于收益一个开发阶段。

其三 · 文物修复。预测:修复档案的登记周期越长(介入完成到进入登记系统的间隔),此后被误判为"原作"的介入越多。这一条可在有完整修复档案的机构里直接清点。

其四 · 发育实验。预测:同一诱导方案,若把暴露时长压缩而提高浓度以保持总剂量不变,命运分布会改变而不是等价——这一条已被独立实验支持,本文的贡献是指出它与另外十一处同构。

其五 · 药品说明书与临床实践。预测:说明书修订后,医院医嘱规则的修订滞后越长,超说明书用药的比例越高,而不良事件报告数不必然上升——因为按旧规则用药并不产生异常信号。两个指标脱钩,是本文的独有预测。

其六 · 会计准则与内部核算口径。预测:准则修订后,企业内部核算口径的修订滞后期内,审计调整分录数上升,而报表本身的差错率不变。前者是被认下来的过程在别处发生,后者说明产出质量没有下降。

其七 · 教材与考试大纲。预测:学科前沿更新后,教材修订滞后期内,教师自编补充材料的数量上升,而学生成绩不下降。补充材料就是未依在个体层面的补偿物。

其八 · 供应商图纸与工装。预测:设计变更下发后,工装与检具的更新滞后期内,首件检验的返工上升,而批量生产的不良率不变——因为工人用老工装做老图纸,做得很稳。

其九 · 法规与合同模板。预测:法规修订后,合同模板修订滞后期内,法务的单份审阅时长上升,而合同数量不变。这正是"每次都全量重新核对"的形态。

其十 · 地图数据与导航规则。预测:底图更新频率提高之后,若下游的路径规则库更新周期不变,用户报告的"路线不对"投诉上升,而底图本身的精度指标持续改善。两个指标反向。

其十一 · 检验方法标准与实验室作业指导书。预测:标准方法修订后,实验室作业指导书修订滞后期内,比对试验的离散度上升,而各实验室自身的重复性不变——每家都很稳,只是稳在不同的版本上。

其十二 · 模型能力与业务提示词库。预测:上游模型更替加快之后,若下游的提示词库、评测集与验收标准没有对应的修订节奏,人工复核比例上升而模型本身的能力指标持续改善。这是本题在企业里的直接形态,也是十二处里唯一落在本题现场的一处。

在这十二处之外,还有一处不给预测而只作提醒的场合:上游与下游属于同一个人的时候。一个人同时是自己的上游与下游——他写下一份方法、过一段时间再用它——这时"认下来"这个动作没有交接面,因而不留任何痕迹。本文的读数在这里读不出任何东西,而这类场合在专业工作里占的比例并不小:研究者用自己三个月前的脚本,工程师用自己去年写的模板,医生用自己形成的经验法则。它们全部处在"已经产出、尚未被自己重新认下来"的状态,而没有任何一份文件会记录这件事。本文把这一处单独提出来,不是因为它更重要,而是因为它是全部十二处兑现里唯一一处读数为零而现象最强的地方——一个读数在它最该起作用的地方读不出东西,这件事本身该被写在正文里,而不是留在讨论里。

十二处里有七处的预测形状是两个指标反向或脱钩:上游的质量指标持续改善,而下游的核对成本上升。任何把这件事笼统读成"上游质量不行"或"下游能力不行"的说法,都会在这七处预测错方向。

十、三处反过来削弱本文的约束

10.1 文物修复削掉了"未依应当被消除"

本文最自然的处方是把 w 压到零。修复理论直接否掉了这个处方,而且它的理由不是程度问题。

发行版把版本冻结、修复师不去动一处旧修、医院不立刻采纳新指南——这些在各自的领域里都不是失职,是核心工艺。冻结是稳定的来源,不动是历史的保全,滞后是本地验证的代价。未依不是一个应当被清零的量,它是一笔被有意持有的头寸。

这削掉的是本文原本会写下的那句更强的话:"任何一对上下游都应当把 w 压到 1 以内。"现在不能写了。本文只能退到:w 本身不判好坏,判好坏的是"这个 w 是被选择的还是被动堆出来的"——而这两者在读数上完全一样。区分它们需要一个额外的、本文没有的东西:下游有没有为这个 w 写下过理由。写下过就是持有,没写过就是堆积。而"是否写下过理由"这个字段,在本文考察的全部系统里,一个也没有。

10.2 油田工程动了本文的价值排序

本文默认下游的核对成本是要被降低的坏东西。油田工程这一家逼着本文承认:有时候正确的做法是接受低波及。

在经济上,把波及系数从 0.55 提到 0.70 所需的投入,可能远高于多采出那部分油的价值;行业里大量的"未动用储量"是被算过账之后决定不动的。翻译过来:下游每次全量重新核对,有时候确实比建立并维护一套固化机制更便宜——尤其在上游更替极快、单次核对成本极低、而固化机制本身需要长期维护的时候。

这动的是价值排序,不是补一个条件。本文原本把"建立固化机制"当作一般处方,现在必须写成:先算一次账——建立并维护固化机制的总成本,与在预期更替次数内全量核对的总成本,哪个低。在上游更替周期短到某个阈值以下时,不固化是对的,而本文给不出这个阈值。

10.3 发育生物学动了本文界定范围的边界

本文第五节把"认下来"写成一个可以被补做的动作:现在没写进去,以后写进去就是了。能力窗这件事直接毁掉了这个假设的普遍性。

若接收方存在真正的窗口——过了这个阶段,同样的东西再写进去也不起作用——那么未依就不是延迟,是永久损失。一个组织在某个阶段错过的能力,可能在业务形态改变之后再也无法被吸收;一个学科在某个时期没有接受的方法,可能在范式转移之后失去接受它的条件。

本文测不到这一类。w 只数代数,不区分"迟早会被认下来"与"永远不会被认下来"。这是本文最严重的一处盲区,而它恰恰来自那件撬开共同前提的材料本身——同一件材料既是本文的地基,也是本文的天花板。

十一、与十种既有说法的分界

11.1 吸收能力(Cohen & Levinthal, 1990)

它说到哪一步:一个组织能否利用外部知识,取决于它已有的相关知识存量;吸收能力是先验知识的函数,且需要长期投资积累。这是本文最近的邻居。

差别落在哪:吸收能力是存量属性——有没有相关知识;未依是时序属性——同一个下游、同样的知识存量、同一份上游产出,早三天到与晚三天到结果不同。吸收能力预测的是"哪些组织跟得上",本文预测的是"同一个组织在哪些对上跟不上"。

对照预测:给下游补充培训、提高相关知识存量之后,若 w 下降,吸收能力对;若 w 不变而在给"写进去"这个动作设了岗位与截止日之后 w 下降,本文对。这是一个可以在一个季度内做完的对照。

11.2 技术债(Cunningham, 1992)

它说到哪一步:为了尽快交付而采取的权宜做法,会产生此后必须偿还的利息;不还则利息累积。

差别落在哪:技术债的债务人是下游自己——是下游为了快而欠下的;未依的产生下游一件事也没做错,它只是没有在上游发布后立刻改写自己的文件,而"立刻改写"从来不是任何人的任务。技术债有一笔可以指认的权宜决定,未依没有决定点。

对照预测:若能指认出一次"我们当时决定先这样"的记录,是技术债;若翻遍记录找不到任何一次关于是否采纳的决定,只有一份长期未修订的文件,是未依。这一条只需要查一次会议纪要。

11.3 社会技术系统的联合优化(Emery & Trist, 1965)

它说到哪一步:技术子系统与社会子系统必须联合优化,单独优化任何一方都会使整体绩效下降。这是本题上最正面的一位前辈——它早在六十年前就说过"局部最优不等于整体最优"。

差别落在哪:联合优化说的是两个子系统的配置匹配,是一个静态命题,它的处方是重新设计岗位与技术的组合;本文说的是更替节奏的比值,是一个动态命题。一个已经完成联合优化、配置完全匹配的组织,只要上游更替周期短于它的固化周期,w 照样堆积。

对照预测:在技术与组织已经匹配、岗位设计合理的组织里,若把上游更替频率提高一倍而其余不变,联合优化预测无变化(配置没动),本文预测 w 上升且下游核对工时上升。

11.4 牛鞭效应(Forrester, 1961;Lee et al., 1997)

它说到哪一步:需求信息沿供应链逐级放大,越往上游波动越大;成因包括需求信号处理、批量订货、价格波动与短缺博弈。

差别落在哪:牛鞭是幅度放大,方向是从下游向上游传;未依是采纳滞后,方向是从上游向下游传。牛鞭需要多级库存与订货批量,本文在单级、零库存、无订货行为的场合(一份文件引用一个版本号)同样发生。

对照预测:在没有库存也没有订货批量的纯信息链上,牛鞭预测无效应,本文预测有效应。法规到内控手册这条链就是现成的检验场。

11.5 政策之窗(Kingdon, 1984)

它说到哪一步:政策方案只有在问题流、政策流与政治流耦合、窗口开启的短暂时刻才被采纳;平时再好的方案也进不去。

差别落在哪:这是本文与之在词面上最像的一位——都用了"窗口"。差别在窗口是否可预测、可测量、可设计。政策之窗是宏观偶发的,其开启由不受控的外部事件触发,因而它给不出任何可操作的读数;本文的窗口是流程内的固化周期,它的长度可以被测量,它的开启次序可以被工程性地重排。

对照预测:若同一条上下游对上,窗口的开启时点与到达时点的关系是随机的,Kingdon 对;若在同一制度环境内,固化周期的长度在不同对之间稳定可测且随文件类型系统性变化,本文对。

11.6 能力刚性(Leonard-Barton, 1992)

它说到哪一步:一个组织的核心能力在环境改变后会反过来变成刚性,阻碍它采纳新东西。

差别落在哪:能力刚性的机制是已有能力主动排斥新东西——有抵抗、有立场、有既得利益;未依的现场没有任何抵抗。第七节那条签名说得很死:拒收记录为零。若下游对新版本有意见、有争论、有抵制,那是能力刚性,不是未依。

对照预测:若访谈中能找到下游对新版本的实质异议,能力刚性对;若下游对新版本没有任何评价(好的坏的都没有),只是没写进去,本文对。

11.7 康威定律(Conway, 1968)

它说到哪一步:系统的结构会复制设计它的组织的沟通结构。

差别落在哪:康威定律预测的是接口在哪里(沿组织边界切分),本文预测的是接口更新得多快。两者可以同时成立,且互相独立:一个接口边界完全合理(符合康威定律的良好形态)的系统,其接口文档照样可以三年不修订。

对照预测:若把组织边界重划使接口更合理之后 w 下降,康威定律覆盖了本文;若边界重划而 w 不变,本文独立成立。

11.8 解冻—变革—再冻结(Lewin, 1947)

它说到哪一步:一次变革须经解冻、移动、再冻结三步;不完成再冻结,变革会回弹。

差别落在哪:这一位在形状上非常近——"再冻结"就是把新状态固化下来。差别在它的对象是一次变革,本文的对象是一条持续的流。勒温处理的是"一次改变之后如何稳住",本文处理的是"当改变以高于再冻结周期的频率连续到来时会发生什么"。在勒温的框架里,再冻结完不成是执行不力;在本文里,再冻结完不成是节奏问题,与执行力无关。

对照预测:若把变革的执行力加强(增加推动、增加资源)而 w 不变,勒温不足;若把上游的更替频率降低而其余不变,w 下降,本文对。降低上游频率这一条是可以做的实验,而且成本很低。

11.9 序列分析与最优匹配(Abbott, 1995)

这是方法上的近亲。序列分析用编辑距离比较两条事件序列的相似度,是一套成熟方法。它可以计算本文的 w 吗?可以,w 是两条版本序列之间的一段截尾差。但这恰恰是分界所在:序列分析的产出是一个距离,用于分类与聚类;本文的产出是一份可指名的清单——具体是哪三个版本没被认下来,以及每一个属于待读、待写还是待验哪一型。距离不能被处置,清单可以。

对照预测:若把 w 换成任意一个序列距离,本文第五节那张三型表的处方仍然分得开,则本文被序列分析吸收;若换成距离之后三型无法区分(因为距离抹掉了"是哪几个"),本文独立。答案是后者,而这不是本文的优势,是两种工具用途不同。

11.10 配置漂移与依赖地狱(实务层)

它说到哪一步:运维与工程实务里早有一整套关于"环境之间的配置逐渐不一致"与"依赖版本互相冲突"的说法与工具(基线管理、锁文件、可重现构建)。

差别落在哪:配置漂移管的是同级之间的不一致(这台机器与那台机器不一样),依赖地狱管的是同时并存的多个版本互相冲突;本文管的是上下游之间的代差,且本文的场合里往往一个冲突也没有——下游用得好好的,只是用的是三代之前的。漂移的签名是不一致,未依的签名是一致而落后。

对照预测:若把所有下游统一到同一个版本之后问题消失,是漂移;若所有下游本来就统一在同一个旧版本上、问题依然存在,是本文。

11.11 与同题前一篇、与同栏另外两篇的分界

同栏此前有一篇处理同一道题,取的是另一个自由度:上游的耗时被压缩,删掉了一道原本由等待免费执行的丢弃判定,其读数是那道判定被补建到了第几站。本文处理的是交付之后、下游把它认下来之前的那一段。两者一前一后,落在交付这个点的两侧,读数一为位次一为代数,可以合成一张交叉表:

下游的 w 低(认得下来)

下游的 w 高(认不下来)

上游的判定仍在原位

甲:真提速

乙:下游节奏跟不上,处方在下游

上游的判定被删掉了

丙:上游少了一道筛,下游被迫全量把关

丁:两处同时发生,代价相乘而非相加

两篇给出一条单篇都给不出的顺序预测:上游那一段的失守发生在提速当期,本文这一段的堆积滞后一到两个更替周期出现。若观察到 w 的上升早于下游拒收率的上升,两篇合成的次序为伪。

同栏另有两篇同期讨论同一族问题:一篇处理"什么才算生产率",一篇处理"技术能力如何才沉淀得下来"。与前者的差别:那一篇问的是产出该怎么被算作产出,本文问的是产出何时开始起作用;对照预测——若修正产出计量口径之后下游核对工时下降,那一篇对;若计量口径修正而 w 不变、核对工时不变,本文对。与后者的差别:那一篇给的是沉淀的路径,本文给的是沉淀没完成时的存量读数;两者是同一件事的流量与存量,可以并用而不可互相替代。本文成文时读不到那三篇的正文,因此这三条分界是单向的,须在合稿时由各方各补一次。

11.12 为什么最近的那一位仍然装不下本文

十条里最近的是吸收能力。它比本文早三十多年,有大量实证,且它的核心洞见——外部知识的价值取决于接收方的状态——与本文完全一致。

它吸收不了本文,理由不是本文更深,而是它的问题结构使这一步成为不必要的。吸收能力要回答的是"为什么有的组织能从外部研发中获益而有的不能",它的自变量是组织之间的差异,因变量是长期绩效。在这个问题结构里,时间是以年为单位的积累变量,"这一版是哪天写进检查表的"这种日粒度的事情不可能进入它的视野——不是它疏忽,是它一旦承认同一个组织在不同对上的表现可以系统性不同,"吸收能力是组织的一个属性"这个基本设定就失去了单位。

逐个追问其余九位之后,浮出来的是同一块地基:

说法

它把什么当作给定

因此它看不见什么

吸收能力

吸收能力是组织的属性

同一组织在不同对上的系统性差异

技术债

债务源于一次权宜决定

无决定点的欠账

联合优化

匹配是配置问题

匹配是节奏问题

牛鞭效应

信息沿链传递会失真

信息完全准确而仍不被采纳

政策之窗

窗口由外部事件开启

窗口可以被工程性地安排

能力刚性

不采纳源于抵抗

无抵抗的不采纳

康威定律

结构复制沟通结构

结构的更新速度

解冻—再冻结

变革是一次性事件

连续到来的变革流

序列分析

序列差异可归为一个距离

差异中"是哪几项"的信息

配置漂移

问题的形态是不一致

一致而落后

十行背后是同一样被当作给定的东西:

交出去与开始起作用,是同一个时刻。

承认这两个时刻可以分离、且分离的长度可以超过更替周期,上面每一行都会失去自己的记账起点。这就是这件事从未被单独辨识的来源——不是没有人看,是所有人的表都是从同一个点开始画的。

十二、预注册与真跑:三个不利结果

12.1 预注册(取数之前写死)

要检验的推论:下游把上游产出固化为可依赖对象所需的工作量,随上游更替速度上升。

数据源:一个公开操作系统发行版的源码索引。选它有两个理由:其一,它同时给出上游版本与下游修订,是少数天然把两端放在一张表上的记录;其二,它与本产线此前四次检验分属不同的数据源家族——那几次用的是包注册表,这次用的是发行版归档,两者的记录主体、记录动机与记录起点都不同。

样本:两个相隔两年的长期支持版本,取其主仓库的全部源码包,共有部分 2,243 个。

变量:上游跨度=同一包在两版之间上游版本号的变化档次(未变/补丁/小版本/大版本);下游固化工作量=新版本串中下游修订号的数值;规模控制=源码包的字节数。

假设与阈值:

· H1:大版本组的下游修订号均值 ÷ 未变组的均值 ≥ 1.3 则成立,< 1.3 则为伪。

· H2:在规模三分位的每一档内重复 H1,方向须一致。

· H3:该索引不存在记录"上游已发布而下游未采纳的版本"的字段。若存在,本文第三层主张当场被推翻。

12.2 跑出来的东西

不利结果之一:H1 被证伪,且方向相反。

上游跨度

包数

下游修订号均值

中位数

修订号>0 的占比

未变

709

0.693

0

16.2%

补丁

275

0.716

0

21.5%

小版本

586

0.705

0

23.5%

大版本

673

0.563

0

23.6%

大版本组除以未变组等于 0.813,预注册阈值是 1.3。假设不但不成立,方向还是反的。

不利结果之二:反向在三个规模档内稳健重复。小包档 0.332、中包档 0.953、大包档 0.814,三档全部小于 1。这不是抽样噪声,是一个稳定的反向关系。

不利结果之三:四组的中位数全部是 0。七成六到八成四的包,下游修订号是零——下游根本没有做任何本地改动。

12.3 这三条改了本文什么

改的第一处,也是最有用的一处:下游的本地改动量,不是"跟上上游"的成本,是"替一个停下来的上游续命"的成本。

反向关系的解释很直接:上游动得多的包,下游的做法是整包换成新的上游版本,自己不打补丁,因而修订号低;上游不动的包,下游必须自己回补安全修复、自己适配新的编译环境,因而修订号高。下游的忙碌程度与上游的活跃程度是负相关的。

这条把本文的一个隐含假设打掉了。本文原本以为未依会表现为下游手忙脚乱地打补丁,实际上它表现为下游干脆不采纳——安静,没有动作,没有记录。这与第七节那条签名(拒收记录为零、现场安静得反常)互相印证,而本文在写第七节时并不知道数据会这样给。

改的第二处:下游修订号不是 w 的合格代理,而它的失败方式恰好是本文的论点。

真正的 w 需要"上游已发布而下游未采纳的版本代数",这个量在归档里读不出来——归档只记录被收录的那一个版本,未被收录的版本连一行都没有。本文在设计检验时,仍然去找了一个下游系统内部的字段来代理一个跨系统的量。这次代理的失败,正是第八节那条规律的实例:两个日期分属两个系统,就没有任何一张表能同时装下它们。

改的第三处:H3 成立,且第二次取数把它变成了一个可报的数字。

索引的全部字段——包名、版本、维护者、构建依赖、二进制清单、三套校验和、目录、文件清单、格式、上游主页、优先级、分区、标准版本、版本控制地址——没有任何一个指向未采纳的上游版本。为了让这件事有一个数,本文另取了同一发行版的更新分支再跑一次:

该长期支持版本的 2,372 个源码包中,只有 889 个在两年周期内被动过;其余 1,483 个(62.5%)一次也没有被动过。而在被动过的 889 个里,386 个(43.4%)动的只是下游自己的修订号,上游版本一次没换,真正采纳了新上游版本的是 503 个(56.6%)。

六成二的包,在两年里对上游的全部产出零采纳,而这件事在归档里的表现形式是:什么也没有。没有记录、没有条目、没有一行说明。它只能通过比较两个不同版本的索引才被读出来,而做这次比较不是任何一方的职责。

改的第四处:一句本文原本会写而现在删掉的话。本文原本会写:"未依的堆积可以从下游的改动量上直接读出来。"删了。现在只能写:未依只能通过连接上下游两套记录读出来,而这个连接目前没有任何一方在维护。

12.4 一处必须写明的代理与偏差

下游修订号被用作固化工作量的代理,这个代理有两处已知问题,本文一并写出来而不是留给读者去发现:其一,它只记录打了补丁这一种固化方式,而整包升级这种固化方式在它上面读数为零——这正是反向关系的来源,也说明它测的不是本文要的东西;其二,不同的下游团队对"要不要自己打补丁"有不同的政策,因而这个数在团队之间不可比,与前一篇检验里撞上的那个问题同形(那次是不同项目对撤回这个动作的使用习惯相差二十倍)。两次检验撞在同一类墙上:下游的动作记录反映的是下游的处置惯例,不是上游与下游之间的关系。

12.5 与此前几次检验的关系,与一个可接手的替代设计

本次取数与本产线此前四次分属不同数据源家族(发行版归档 vs 包注册表),因此它是一次独立的检验,而不是那几次的重复。但它与其中一次撞在同一类代理问题上,这一点已在上一小节写明。

替代设计留给后来者:在同一家企业内,取六到八对上下游关系(同一制度环境、同一考核体系、同一批人员池),每对记录三件事——下游据以行事的那份文件的最近修订日、它引用的上游版本、上游当前版本。自变量是上游的更替周期,因变量是 w 与下游的核对工时占比。这三件事的数据在多数中型以上企业的文档系统里已经存在,需要新增的只是把它们放在同一张表上这个动作本身——而这个动作,正是本文主张目前没有任何一方有动机去做的那个。

十三、不适用的边界

其一,下游没有任何"据以行事的文件"的场合。若下游全靠个人经验行事,没有接口文档、没有规程、没有检查表、没有配置基线,w 无法起步。这类场合不是本文覆盖不到,是本文的读数在那里没有定义。

其二,上游产出与下游行事之间没有依赖关系的场合。上游发布的东西下游本来就不用,w 恒等于上游的发布数,读数无意义。判别:问下游"这十件里有几件是你真的要用的"。

其三,被有意持有的未依。冻结版本、稳定分支、本地验证周期、监管要求的滞后,都是有意持有。本文的读数分不开有意与被动,见第 10.1 节。在这类场合,w 高不构成任何问题的证据。

其四,存在真正不可逆窗口的场合。若接收方错过某个阶段后再也无法认下来,未依是永久损失而不是延迟,本文的读数会低估其严重程度,见第 10.3 节。

其五,上游更替周期短到某个阈值以下的场合。此时不建立固化机制可能是对的,见第 10.2 节,而本文给不出这个阈值。

十四、证伪条件

七条,编号。其中第 14.2 与 14.5 低成本可实做,所需数据在多数机构的既有记录里已经存在。

14.1 控制下游的人员规模、知识存量与业务量之后,若上游更替周期与下游核对工时占比之间不存在剂量—反应关系,本文为伪。样本要求:同一制度环境内不少于六对上下游关系,关键混淆变量同质;不得以两家企业或两个行业的对比充数。

14.2(低成本可实做)取任一组织的三份据以行事的文件(接口文档、作业规程、检查表),查它们各自引用的上游版本与该上游的当前版本,算出 w。若三份文件的 w 全部为 0 或 1,而该组织仍报告审核与协调工时上升,本文对该组织不适用(问题在别处);若 w 显著大于 1 而该组织的核对工时并未上升,本文为伪。

14.3 若给"把上游新版本写进下游文件"这个动作设了明确岗位与截止日之后,w 在两个更替周期内没有下降,本文关于待写型的处方为伪。

14.4 若对判定为待读型的对象增加通知量(而非减少)之后 w 下降,本文的三型划分为伪——因为那说明待读型与待写型的处方并不互斥。

14.5(低成本可实做)取一批下游文件,查"该文件是否从未修订过"这一栏。若从未修订过的文件其所属流程的返工率与经常修订的文件无差别,本文的第二层主张(三型装置)失去用途。

14.6 顺序预测:本文预测的次序是——上游更替提速(第 0 期)→ w 上升(滞后 1 至 2 个更替周期)→ 下游核对工时占比上升(再滞后 1 个周期)→ 下游改用"每次全量核对"并把它固化为常态(滞后 4 至 8 个周期)→ 此后即使上游放慢,核对工时也不回落。若观察到核对工时的上升早于 w 的上升,本文的机制为伪。若最后一步不发生——上游放慢后核对工时随即回落——本文关于"固化为常态"的那一层为伪。

14.7 若建立了跨上下游的连接表(把两个日期放进同一张表)之后,w 与任何下游成本指标都不相关,本文的核心构念不成立。这是本文最愿意押的一条,也是唯一一条需要新建记录才能跑的。

若本文被证伪,能学到什么:若 14.1 与 14.2 同时不成立,那么提速之后新增的核对成本就与"下游认不认得下来"无关,而是上游输出本身需要一道全新的判定——那会把处方从"给写入动作设岗位"改成"在上游增设判定",是完全不同的干预方向,投入的位置与量级都不同。

十五、这个读数一旦进考核

w 是一个整数,做低它的最省事办法有两条,两条都会摧毁它要保护的东西。

第一条:改写下游那份文件的版本号引用,而不做验证。把接口文档里的版本号从 1.4 改成 1.9,w 立刻从 5 变成 0,而没有任何人跑过一次验证。第六节的编码规则第二条要求取"离执行最近的那一份文件",挡得住一次敷衍,挡不住把检查表本身写成不含版本号的通用表述——一份不引用任何版本的检查表,w 无法计算,于是这条流程从统计里消失了。

第二条:把上游的发布合并。上游把十次发布合成一次,w 从 10 变成 1,而实际的更替量一点没变。这一条更隐蔽,因为它在上游看来是"减少了打扰",是一件好事。

我看不到出口。任何把 w 写进考核的做法都会走上这两条之一,而本文提不出能挡住它们的编码规则——所有能想到的规则都只是把定义再收紧一层,而定义每收紧一层,规避的成本只上升一点。勉强算办法的只有一条:不要把 w 作为考核指标,只作为诊断读数,且诊断时必须同时看第六节表头最后一栏——"该文件是否从未修订过"。那一栏是布尔值,改不了,也没有中间状态。

十六、伦理与证据边界

其一,w 指的是一对上下游关系,不是一个人,也不是一个部门。w=5 说明这一对之间有五代没有被认下来,它不说明下游岗位上的人做错了什么——"把上游新版本写进检查表"这个动作在绝大多数组织里从来不是任何人的任务,没有岗位、没有工时、没有考核项。把 w 记在人头上,是把一个没有归属的动作的后果转嫁给最靠近它的那个人。

其二,不得为了把 w 做低而在安全关键系统里加快采纳。在航空、医疗、核、轨道交通、药品这些领域,滞后采纳是经过设计的安全裕度,本地验证周期是它的实质内容。任何以 w 为由压缩本地验证的做法,都是把一个诊断读数当成了目标。顺序是先完成验证再改引用,任何情况下不得先改引用再补验证。

其三,凡按这个读数做过不利安排的,编码规则必须公开,并且要有一条可走的复核通道。第六节的五条编码规则是完整的、可复算的;任何按 w 做出的组织调整,被影响的一方有权要求按原始文件重算,并有权对"哪一份文件算据以行事的文件"提出异议——这一条尤其要紧,因为编码规则第二条(取离执行最近的那一份)在实践中会有真实的争议。

关于本文的证据强度:第十二节的主假设被证伪,本文的第一层主张目前只有间接支持,靠的是发育生物学那件材料的推翻力与三家的互相校核,不是本文自己跑出来的正面证据。本文的三层可以分开引用:第一层是未依作为核心判据,最强也最易倒;第二层是待读—待写—待验三型装置,即使第一层倒了它仍可作为分诊工具;第三层是"两个日期分属两个系统就没有人管",这一层最稳,已被本次检验直接支持,而且它不依赖前两层。

十七、本文自己在哪一格,与一条写死日期的赌注

用本文的判据检本文自己,先要问:本文的上游是谁?是同栏此前那篇处理同一道题的文章,以及同期另外两篇。本文有没有把它们认下来?

部分认下来了。本文在第 11.11 节把前一篇的读数与本文的读数合成了一张交叉表,并给出了一条两篇单独都给不出的顺序预测——按本文自己的定义,这是"写进了据以行事的东西",w 在这一对上等于 0。而对同期那两篇,本文只写了差别,没有把它们的读数与本文的读数放进任何一张可执行的表。在那两对上,本文的 w 至少是 1,且属于待写型:知道,也说得出差别在哪,但没有写进任何据以行事的东西。

这个自我定位有具体后果,不是姿态:本文因此不能声称自己与同期那两篇构成一组可以并用的工具。要构成一组,需要的不是再写一段说明差别的文字,是把三个读数放进同一张表并给出联合的对照预测——而那件事本文没有做,理由与本文所描述的完全一样:做那件事需要同时读三份记录,而本文成文时读不到另外两份的正文。

赌注:在 2029 年 8 月 11 日之前,会出现至少一个公开的软件发行版、行业标准体系或监管公报,在其正式索引或公报中新增一个字段,记录"上游已发布而本体系尚未采纳的版本数或代数"。

什么算命中:该字段出现在正式发布的索引、公报或年报中,不是研究论文里的一次性统计;它的定义指向未采纳的上游版本,而不是本体系自己的修订次数;且该字段随索引一同定期更新。三条同时满足才算命中。

什么不算命中:

· 只有"本体系距上游落后多少天"这类时间差——本文数的是代数,不是时间;

· 第三方研究者做出的一次性统计或看板——必须是记录方自己维护的字段;

· 只在内部使用而无公开索引——只要求机构自行说明不算命中;

· 仅对单个包或单个标准做的标注,未覆盖整个索引。

若到期未命中,本文关于"这个连接没有任何一方有动机去建"的判断反而得到支持,而本文关于它"应当被建"的实践主张应被下调——一件所有人都不建的东西,可能不是被忽视,而是它的成本确实高于收益,而本文没有算过这笔账。

十八、留下的三个洞

洞一:本文分不开被有意持有的未依与被动堆积的未依。两者在 w 上完全一样,而处置完全相反。本文给出的区分办法(有没有写下过理由)依赖一个在所有考察过的系统里都不存在的字段,因此它目前只是一个建议,不是一个可执行的判据。

洞二:本文说不出"认下来"这段过程的最短时长。第五节主张它不能被强度替代、不能被并行化,但没有给出它有多长,也没有给出它随对象类型如何变化。一个接口文档、一份检查表、一套教材,三者的固化周期显然不同,而本文连它们的量级关系都说不出。没有这个量,第 10.2 节那笔"该不该建固化机制"的账就算不出来。

洞三:本文完全没有处理"下游可以主动限制上游的更替频率"这条路。如果堆积的根源是节奏比值,那么最直接的干预不在下游而在上游:让上游少发几次。第 11.8 节甚至把它写成了一条低成本的实验。但本文没有回答一个更要紧的问题:在上游是外部的、不受控的场合(供应商、监管机构、开源社区、模型厂商),下游能不能人为地给自己造一个"采纳节拍",把连续到来的更替切成离散的批次?造节拍看起来是显然的处方,而它有一个本文没能力评估的代价——一个人为的节拍本身就是一道新的等待,而那道等待是不是又会被下一轮改善当作浪费删掉,本文不知道。这个洞与前一篇留下的洞正好接在一起,本文把它交出去。

编者增补 · 主张推进:世代距离读得出比例读不出的东西

本节由编者增补,不是作者原稿的一部分。本文第十一节逐位分开了吸收能力、技术债、社会技术系统的联合优化、牛鞭效应、政策之窗、能力刚性、康威定律与解冻—变革—再冻结等十位。增补的理由是:「已经交出去、还没被认下来」这件事,在信息系统研究里有一个专名,而且已经做成了一个可测量的量,本文没有点名。

一、漏掉的那一位:同化缺口

Fichman 与 Kemerer 1999 年提出同化缺口(assimilation gap):一项技术可能被广泛购置,却只在少数购置者那里真正投入使用;于是按「购置」与按「部署」两种口径画出来的累计采纳曲线不会互相吻合,两条曲线之间张开的那道口子就是同化缺口。他们同时指出一个后果:用销售或购置数据去做扩散建模,会给出一幅关于扩散稳健性的虚假图像。

这一位是本文最近的一位,比第十一节里任何一位都近——它处理的正是「交出去」与「被认下来」之间的那段空档,而且明确指出这段空档会让上游的读数好看。必须点名。

分界落在读数的形状上:比例,还是世代距离。同化缺口是一个横截面比例——在某一时点上,有多少比例的购置者达到了深度使用。本文的未依代数 w 是一个纵向的世代距离——上游已经发布到第几代,而下游还站在第几代。两者可以完全解耦,而解耦的方向恰恰是本文的靶心:上游发布得越快,w 越大,而同化比例可以一动不动。一个下游始终把最新版本的六成投入使用的组织,在同化缺口上是稳定的;而如果上游从每季度一发变成每周一发,它的 w 会成倍增长,堆在中间的东西也成倍增长,而没有任何一个比例读数会变。

判定形式:取一批上游发布频率显著提高、而下游采纳比例保持不变的场合。若在这些场合观察到协调、返工与确认工时的显著上升,则本文对——上升由世代距离驱动,而同化缺口读不出它;若工时不随 w 上升,则 w 不是承重的量,本文应退回到比例口径,与同化缺口合并。这一条在有版本发布记录与依赖声明的公开代码仓上可以直接跑,与本文第十节的数据同源。

二、往前推一步:提速本身就是产量

本文的承重命题是:上游提速使更替频率超过下游把产出认下来所需的那段过程,于是大量产出停在「已经交出去、还没被认下来」的状态。编者主张这一步可以推成一句更硬的话:提速不是通过某种副作用制造了积压,提速本身就在直接生产未依——每多发布一代,w 就加一,而这一加不需要下游做错任何事。

这句话的分量在于它取消了一个隐含的责备对象。说「下游跟不上」,等于假定存在一个「跟得上」的应然状态,而积压是下游未达标的结果;本文第五节其实已经指出那段过程既不能靠加大强度替代、也不能被并行化——它是一段有自己周期的过程。既然如此,在上游频率超过那个周期的那一刻起,积压就是算术上的必然,与下游的努力程度无关。于是常见的两类处方——催下游、给下游加人——在结构上都无效:前者试图压缩一段不可压缩的过程,后者试图并行化一段不可并行的过程。

由此得到一条可以直接去查的推论,而且它与直觉相反:在 w 已经很大的链条上,上游进一步提速会使端到端周期继续变长,而上游自己的所有读数继续变好。这正是本文要解释的那个现象的最简版本——单点吞吐上升而整体不降反升,不需要引入任何关于能力、意愿或工具的假设。若在一批 w 很大的链条上观察到上游提速之后端到端周期缩短,则本节的推进作废,本文应退回原稿的「更替频率超过认下来所需的周期」这一条件式表述。

编者增补声明:以上一节为本站编者增补,非作者原稿,因此本篇标注「盲评 141 → 修改设计目标 142 · 待独立复核」,不是认证分。原稿的盲评分对投稿全文所打,本节不计入该次评分。增补引用:Fichman, R. G., & Kemerer, C. F. (1999). The illusory diffusion of innovation: an examination of assimilation gaps. Information Systems Research, 10(3), 255–275.

注释与文献

文物修复理论

· Brandi, C. (1963). Teoria del restauro. Roma: Edizioni di Storia e Letteratura.

· ICOMOS (1964). International Charter for the Conservation and Restoration of Monuments and Sites (Venice Charter), Article 12.

· Muñoz Viñas, S. (2005). Contemporary Theory of Conservation. Oxford: Elsevier Butterworth-Heinemann.

油田开发与驱替

· Buckley, S. E., & Leverett, M. C. (1942). "Mechanism of fluid displacement in sands." Transactions of the AIME, 146(1), 107–116.

· Craig, F. F. (1971). The Reservoir Engineering Aspects of Waterflooding. SPE Monograph Series, Vol. 3. Dallas: Society of Petroleum Engineers.

· Lake, L. W., Johns, R. T., Rossen, W. R., & Pope, G. A. (2014). Fundamentals of Enhanced Oil Recovery, 2nd ed. Richardson: Society of Petroleum Engineers.

发育生物学:位置信息、时间积分与能力窗

· Waddington, C. H. (1940). Organisers and Genes. Cambridge: Cambridge University Press.

· Wolpert, L. (1969). "Positional information and the spatial pattern of cellular differentiation." Journal of Theoretical Biology, 25(1), 1–47.

· Dessaud, E., Yang, L. L., Hill, K., et al. (2007). "Interpretation of the sonic hedgehog morphogen gradient by a temporal adaptation mechanism." Nature, 450(7170), 717–720.

· Sagner, A., & Briscoe, J. (2017). "Morphogen interpretation: concentration, time, competence, and signaling dynamics." WIREs Developmental Biology, 6(4), e271.

分界处点到的说法

· Abbott, A. (1995). "Sequence analysis: New methods for old ideas." Annual Review of Sociology, 21, 93–113.

· Cohen, W. M., & Levinthal, D. A. (1990). "Absorptive capacity: A new perspective on learning and innovation." Administrative Science Quarterly, 35(1), 128–152.

· Conway, M. E. (1968). "How do committees invent?" Datamation, 14(5), 28–31.

· Cunningham, W. (1992). "The WyCash portfolio management system." OOPSLA '92 Experience Report. New York: ACM.

· Emery, F. E., & Trist, E. L. (1965). "The causal texture of organizational environments." Human Relations, 18(1), 21–32.

· Forrester, J. W. (1961). Industrial Dynamics. Cambridge, MA: MIT Press.

· Kingdon, J. W. (1984). Agendas, Alternatives, and Public Policies. Boston: Little, Brown.

· Lee, H. L., Padmanabhan, V., & Whang, S. (1997). "Information distortion in a supply chain: The bullwhip effect." Management Science, 43(4), 546–558.

· Leonard-Barton, D. (1992). "Core capabilities and core rigidities: A paradox in managing new product development." Strategic Management Journal, 13(S1), 111–125.

· Lewin, K. (1947). "Frontiers in group dynamics: Concept, method and reality in social science." Human Relations, 1(1), 5–41.

数据

第十二节所用数据取自一个公开操作系统发行版的主仓库源码索引与更新分支索引,取数日期 2026 年 8 月 11 日;两个长期支持版本共有源码包 2,243 个,发布版索引 2,372 个,更新分支索引 1,140 个。预注册文本在取数之前写成并存档,含样本选取标准、变量定义、假设与判定阈值。本次数据源家族与本产线此前四次检验不同(发行版归档,非包注册表),构成一次独立检验;其代理变量的已知偏差见第 12.4 节。

篇幅与版次:正文 19,400 汉字上下,初次成稿于 2026 年 8 月。

人机分工声明:本文的问题、三门材料的选取方向、读数的形状与三型划分由作者确定;文献核对、归档取数、统计计算与本文自身 w 的判定由人机协作完成。第十七节所述本文在两对关系上的 w 至少为 1,适用于本文的全部内容,包括这份声明。