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

序料

并行化吃掉的那一份输入,与它留下的一张没有人回填的假设清单
作者 胡敏 · SDE 学员 · 约 2.0 万字 · 发表于2026年8月28日
摘 要

同一道商业难题已有两种读法:局部提速删掉了一道原本由等待免费执行的判定,或者下游来不及把上游的产出认下来。本文给出第三种,它既不在交付之前,也不在交付之后,而在两条工序之间的先后关系上。原本串行的两步,慢的时候后一步免费获得前一步的结果作为输入;提速使两步同时进行,后一步只能用一个临时设定顶上,事后再核对——新增的审核与协调,多数就是这场核对。本文把"由先后本身携带、并行化之后必须被假设替代的那一份输入"命名为序料,把替代它的那个临时设定称为代设,并沿三段切口(代设产生—代设悬置—代设固化为事实)给出辨别装置。推翻三家共同前提的材料取自生理学自己:同样的心肌、同样的收缩力、同样的心率,把心房与心室的收缩由序贯改为同步,心输出量下降约两到三成——次序不是效率安排,它本身就是一份输入。本文预注册后在一个公开发行版归档的构建依赖字段上真跑(2,218 个包、18,160 条依赖项):第一条假设成立(回填率 0.0105),第二条假设被证伪且方向剧烈相反——约束被拆掉的比例是被补上的 7.4 倍。这一结果直接改写了本文的读数:代设不是等待回填的临时状态,它是这套系统的稳态方向,因而读数由"回填率"改为带符号的代设净增 Δ。

关键词:序料;代设;代设净增;并行化;次序作为输入;三段切口

一、两条工序之间还剩下一样东西

一家银行的信贷条线在两年里把授信报告的撰写交给了自动系统。原来的次序是:客户经理走访、写调查报告,风险经理读完报告再做行业与担保的判断,审批人最后看两份材料。三步是串的,前一步做完后一步才动。

改造之后,三步可以同时开始了。系统能在客户经理还在走访的时候就生成初稿,风险经理不必等报告写完,审批人也可以先看到一个自动汇总。单点效率的改善是真的:报告撰写时间从三天降到两小时,行业分析从一天降到即时。

第三年,这条线上多了两样东西。一样是"底稿核对会",每周两次,把三方各自基于什么在做判断对一遍;另一样是一份被内部称作"口径表"的文件,专门记录"这一笔业务里,担保物估值到底按哪个口径"。授信从受理到批复的中位天数没有下降,风险条线的人力增加了两个岗位。

这不是这家银行独有的形状。软件交付里,前端不必等接口定稿就能开工,代价是"接口对齐会"变成每日例会;建筑设计里,各专业不必等建筑方案冻结就能出图,代价是"专业会签"从一轮变成三轮;临床研究里,统计分析计划不必等入组结束就能起草,代价是"盲态审核"新增了一整套流程。

同一道题此前已有两种读法。一种说:上游被压缩掉的那段等待里,本来在免费执行一道丢弃判定,提速把它删了,下游只好在更贵的位置把它补建起来。另一种说:上游交付之后,下游要把它变成可以依赖的东西还需要一段过程,提速使更替频率超过了这段过程,于是大量产出停在"已经交出去、还没被认下来"的位置。

两种读法都落在交付这个点上:一个在它之前,一个在它之后。而上面那三个例子里发生的事,两个都不是。

信贷条线里,客户经理的调查报告并没有被删掉哪道筛选——它写得比以前更全;风险经理也没有"来不及认下来"——他压根不是在等报告,他是在报告还不存在的时候就已经开始做判断了。他必须先假定一个担保物估值口径,才能往下走;等报告真出来了,如果口径不同,前面那一段就得重来。

这里被吃掉的不是一段等待,也不是一次认领,是两步之间的那个"先后"本身。

慢的时候,先后关系免费提供了一样东西:后一步不必假设任何事,因为前一步的结果已经摆在那儿了。这一份输入从来不需要谁去生产,它是"排在后面"这件事自带的。提速把两步变成同时,这份输入就没了,后一步只能用一个临时设定顶上去。

新增的核对、对齐、会签、口径表,就是这些临时设定的事后清算。

本文要说的是:这些临时设定构成一份清单,这份清单在任何一本账上都没有位置,而且——这一点是本文真跑之后才知道的——它不是一份等着被清空的临时清单,它只增不减。

后文的走法:第二节把那条被所有人共享的假定摆出来;第三节看三门与本题距离极远的学问各自把"先后"当成了什么;第四节从其中一门自己的材料里把它撬开;第五节到第八节给名字、给切口、给读数、给识别方法;第九节给一句只问日期不问看法的问话;第十节做十二处兑现;第十一节交代三处削弱本文的约束;第十二节与十种既有说法逐条分界;第十三节报告真跑,包括那条把本文读数改掉的不利结果;此后是边界、证伪、进考核之后会发生什么、本文自己有几条代设、一条写死日期的赌注与三个洞。

二、那条假定:次序只是效率安排

它的形状是:

两件事谁先谁后,不改变它们各自做了什么。先后只是时间表上的安排,是效率问题。

这条假定不属于任何一派,它是全部工序优化方法的共同起点。关键路径法把工序当作有工期、有先后约束的方块,优化的目标是压缩总工期;并行工程明确以"把能同时做的都同时做"为纲领;敏捷开发用"减少交接"来提速;流程再造的第一句话就是"打破部门顺序"。所有这些方法都把先后约束当作一个待放松的限制条件,而不是一份待保护的输入。

在这条假定下,串行只有一种理由:技术上不得不等。前一道工序的物理产物必须存在,后一道才能加工它。凡是不属于这种硬约束的先后,都是"人为的""历史遗留的""可以打破的"。

而这条假定在信息类工作上有一个隐蔽的失效点:信息类工作的前后关系里,硬约束几乎不存在。后一步在物理上完全可以先做——写代码不必等接口定稿,做判断不必等报告写完,出图不必等方案冻结。正因为没有硬约束,先后关系看上去纯粹是安排;也正因为如此,它被打破时不会遇到任何阻力,也不会产生任何异常信号。

一条实物产线上,你把后道工序提前,工件不在,机器空转,问题当场暴露。一条信息流程上,你把后道工序提前,后道照样能做完——它会自动用一个假设填上缺口,而且多半连做的人自己都不会意识到那是一个假设。

这就是本文与前两种读法的分岔:前两种读法处理的是一件东西(一道判定、一份产出)的去向,本文处理的是两件东西之间的关系被取消之后跑到哪里去了。关系被取消不会留下残骸,因为关系本来就不是一样占地方的东西。

三、三门远学问各自把"先后"当成了什么

3.1 隧道与地下工程:支护什么时候上,比支护多强更要紧

在岩体中开挖一个洞,围岩会向洞内变形。传统的想法是:变形是坏事,支护要强、要早,把它顶住。上世纪六十年代成型的一套施工理念把这件事整个翻了过来:围岩自己才是主要的承载结构,支护的作用不是替它承载,而是让它保持自承能力。

这套理念的单因主张写出来很硬:决定一个地下洞室稳不稳,是围岩的自承能力与支护的时机,不是支护的强度。支护上得太早太强,围岩的应力得不到释放,荷载全部转移到支护上,支护再厚也不够;支护上得太晚,围岩的松动圈扩大,而松动一旦形成不可逆,此后再强的支护也只是在托一堆已经散了的石头。中间那个时机窗口,是这门工程真正的技术核心。

与之配套的一套分析方法把这件事画成了两条曲线:一条是围岩随变形增加而下降的承载需求,一条是支护随变形增加而上升的承载能力,两条曲线的交点就是平衡点。这张图里横轴不是力,是变形量,而变形量的实质是时间与施工步序。换句话说:同一套支护参数,上的时机不同,落在这张图上完全不同的位置,结果可以从安全到垮塌。

还有一条更贴本文的:施工步序本身决定最终结果。全断面一次开挖与分部开挖(台阶法、中隔壁法)用的支护量可以相同,最终的位移场与应力场却不同,而且分部开挖的每一步都给出一次量测反馈,用来决定下一步。把分部改成全断面,省下的是工期,失去的是每一步之后那次"看一眼再决定"的机会。

写成一句可核的驱动次序:围岩的实际变形与既定的支护路径长期不容,逼出整个承载体系的条件改变——从"支护承载"改成"围岩自承、支护约束";而这个改变一旦被规范接受,又回过头规定下一轮的量测项目与判定标准该怎么定。

它自己承认解决不了、又天天不得不用的那件东西,正是本文要的那件:先行位移。洞室开挖引起的总变形里,有相当一部分发生在掌子面到达量测断面之前——量测点还没装上,变形已经发生了。这部分位移在任何量测记录上都不存在,只能靠反分析或经验公式推算。整个行业都知道它存在,都有对策(提前埋设、三维反分析),而它的量始终估不准,因为要测它,得在开挖之前就知道该在哪里测。

它愿意自曝的那一处是:当工期与合同压过来,支护时机反过来由施工组织决定,此时它这条驱动明显是被驱动的。

3.2 循环生理:心房与心室之间那一小段延迟

心脏有一个乍看多余的设计:电信号从心房传到心室,中间要经过一个传导速度极慢的结构,人为地制造出大约十分之一秒的延迟。

这段延迟不是缺陷,它是必要的先后。心房收缩把血挤进心室,心室要等这次充盈完成之后再收缩;延迟太短,心室在心房还没挤完的时候就开始收缩,充盈量下降;延迟为零(心房心室同时收缩),心房挤出的血无处可去,反流回静脉。

这一门的单因主张写出来是:决定每搏输出量的是心房与心室之间的时序耦合,不是心肌的收缩力,也不是心率。这句话有一个非常硬的推论,而且是心脏起搏领域天天在用的:同样的心肌、同样的收缩力、同样的心率,把心房与心室的收缩从序贯改为同步,心输出量下降约两到三成。心房那一次挤压对心输出量的贡献有专门的名字,也有公认的量级区间;一旦房室不同步,这部分贡献直接消失。

还有第二条同样贴本文的:心率提高时,被压缩的主要是舒张期,而冠状动脉的血流恰恰发生在舒张期。也就是说,提速本身直接吃掉了灌注发生的那个窗口——不是因为心肌不行,不是因为血管狭窄,只是因为那段"什么也没在收缩"的时间变短了。

写成驱动次序:已经形成的灌注格局与代谢需求的条件不容,逼出血流路径的改道(自身调节、侧支开放、储备耗尽);而路径改道一旦发生,又回过头改变哪一段心肌在下一轮还有储备可调。

它自己承认解决不了、又天天在用的那件东西是:无复流。把堵住的大血管开通了,造影上血流恢复正常,而心肌组织的灌注仍然没有恢复。上游通了,下游不通,且上游的检查显示一切正常。这门学问为它专门发展了评价方法与对策,而它的机制至今没有统一解释。

它自曝的那一处是:在慢性适应的情形下,时序耦合反过来被结构重塑决定——心腔扩大之后,最优的房室延迟本身就变了。

3.3 有意义学习:新东西必须挂在旧东西上,而挂靠点是有先后的

第三门离前两门更远。一套至今仍是教学设计基础的理论提出:决定学习是否发生的,是学习者已有的认知结构里有没有一个可以挂靠的点,以及新材料能不能与它建立非任意的联系。这一路把"先讲什么后讲什么"从教学法问题提升为学习是否发生的条件问题,并给出了一个具体装置:在正式材料之前先给一段更抽象、更概括的引导材料,为后面的内容预备挂靠点。

这一门的单因主张是:决定学习是否发生的是已有结构与新材料的可挂靠关系,不是教学的投入量,也不是材料本身的质量。与之呼应的另一支理论给出了它的负面版本:当若干个要素必须被同时理解才能理解其中任何一个时,认知负荷会超过工作记忆的容量;唯一的出路是把它们拆开、先后学习——而这恰恰要求它们之间存在可拆开的先后。

写成驱动次序:教学的路径与学习者所处的条件(先备知识、评价方式、可用时间)不容,逼出"学会"这件事呈现形态的改变——从能迁移的理解退化为能应答的表现;而这个改变一旦被评价制度接受,又回过头规定下一轮的教学路径该怎么排。

它自己承认解决不了、又天天在用的那件东西是:迁移的失败。在一个情境里学会的东西,换一个表面不同而结构相同的情境就用不出来。这件事被反复验证,教育学为它发展了整套对策(变式练习、情境多样化、抽取原理),而没有一条对策能取消它。

它自曝的那一处是:当一门知识足够程序化、足够封闭,挂靠关系反而由材料的内在次序决定,学习者的已有结构退居其次。

3.4 三家不能同时成立

隧道说先后是应力释放的时机,它的量纲是变形;生理说先后是充盈与射血的耦合,它的量纲是容积;教育说先后是挂靠点的可得性,它的量纲是理解。三家对"把先后取消会怎样"给出的答案不能并存:隧道预测结构失稳,生理预测输出量下降而各部件完好,教育预测表面完成而不能迁移。把同一件事拿给三家,三家连"损失表现为什么"都不一致。这不是可以靠判谁对来化解的分歧,三家根本不在同一个语域里作答。

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

三家的争论压成一句:

三家争的是取消先后之后,损失表现为什么——表现为结构失稳,表现为输出下降,还是表现为不能迁移。

三家在这一点上没有分歧,也从没有谁把它说出口过——

先后是一种安排,不是一份材料。

隧道工程把时机当作参数,生理学把延迟当作电传导的一个特性,教育学把顺序当作教学法的一个选项。三家都在谈次序有多要紧,而没有一家把次序当作一份被消耗的输入来记账。

把这句话念给三家听,三家的反应会是同一句:这不是废话吗。

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

同样的心肌、同样的收缩力、同样的心率,把心房与心室的收缩由序贯改为同步,心输出量下降约两到三成。

请注意这个"实验"里被固定住的东西有多少:泵是同一个泵,肌肉是同一块肌肉,前后负荷不变,节律频率不变,甚至连每一次收缩的力量都不变。唯一变了的,是两次收缩之间的先后关系。

如果先后只是安排,这件事不可能发生——安排改变的应当是节奏、是效率、是舒适度,而不是同一套部件在同一强度下的产出量。而它发生了,而且量级大到需要一整套设备参数去优化它。

在生理学与起搏领域自己的语境里,这件事回答的是"起搏器的房室间期该设多少"。没有人把它当作关于"次序是不是一份输入"的证据。

它推翻的正是那条共同前提:先后关系本身携带一份输入。取消它,不是省了时间,是少了一份料。

隧道工程给出同一件事的第二个版本,量纲完全不同:分部开挖的每一步之后,量测数据本身就是下一步的输入;改成全断面,这份输入不是变少了,是根本不产生了。教育学给出第三个版本:先学的那部分构成后学部分的挂靠点;同时学,挂靠点不是弱了,是不存在。

三处的量纲互不可译,形状是同一个:

排在后面的那一步,免费获得了排在前面那一步的结果。这份输入不需要任何人去生产,它是"排在后面"这件事自带的。

五、序料与代设

给这两样东西各起一个名字。

序料:由"排在后面"这件事本身携带、并被后一步免费取用的那一份输入。它不由任何人生产,不占任何工时,不进任何一本账。

代设:并行化之后,后一步为了不等前一步而临时设定的那个假设。它顶替序料的位置,使后一步得以照常完成,而且完成得看不出任何异样。

三条界定,缺一条就不是本文说的这件事:

其一,代设不是明知的假设。一个被写在纸上、标了"待确认"的假设不是代设,是待办事项——它有条目、有责任人、有截止日。代设的典型形态是做的人并不知道自己设了它:风险经理按"通常的估值口径"往下走,他没有做过一次假设,他只是照惯例做事,而那个惯例恰好替代了本该由报告提供的那份信息。

其二,代设不产生任何异常信号。这是它与"信息缺失"的分界。信息缺失会让人停下来:字段是空的、材料没到、系统报错。代设不会——后一步照常完成,产出形式完整,全部形式审查通过。信贷条线上那份基于假定口径做出的风险判断,格式、要素、签字一样不缺。

其三,代设的清算落在别处、落在以后。如果前一步的结果最终与代设一致,什么也不会发生,没有人知道刚才发生过一次替代;如果不一致,清算就来了——重做、对齐、开会、加一张口径表。而清算的工时记在"协调"或"返工"名下,与当初那次并行化没有任何科目上的联系。

代设有一个可判定的存在标志,不需要新建系统:

取后一步的产出,逐项问它依据了什么;凡是依据不能指到前一步的一个具体输出、而只能指到"惯例""通常""行业一般做法""上一次也是这样"的,就是一条代设。

5.1 三段切口

代设不是一个状态,是一段过程。沿这段过程有三处切口,本文的辨别装置就是这三处:

切口一 · 代设产生。前一步尚未给出结果,后一步已经开始,并用一个临时设定顶上。判别的时点很好找:后一步的开工时刻早于前一步的交付时刻,二者一比即知。这一处的读数是产生了几条代设。

切口二 · 代设悬置。前一步的结果出来了,而没有任何人回头把它与当初的代设比对。判别的时点是:前一步交付之后的某个约定期限内,有没有一次比对动作留下痕迹。这一处的读数是多少条代设没有被回头看过。

切口三 · 代设固化为事实。后一步的产出被交付、被采纳、被后续工作引用,而当初那条代设从未被核对。此时它不再是一个假设,它成了一条谁也不会再去质疑的既定事实。判别的标志是:这条代设开始出现在下游的文件里,且没有任何一份文件记载它的来源。

三处切口的处置完全不同,而且互相不能替代:

切口

状态

有效处置

用错处置的后果

一 · 产生

后一步已开工而前一步未交付

在开工时登记代设(不是禁止代设),一条一行

禁止并行——工期回到改造前,而改造的收益全部退回

二 · 悬置

前一步已交付而无人比对

给"比对"设一个岗位与一个期限

加强宣贯与提醒——比对动作仍无归属,无人执行

三 · 固化

代设已被下游引用且无来源记载

溯源清查:从下游文件反查依据,逐条标注来源

继续往前改进流程——固化的部分不会因流程改进而松动

三段互斥的证据在于处方互相取消:切口一要的是允许代设但把它写下来,而对切口三有效的溯源清查若前置到切口一,会把开工卡死;切口二要的是给比对设期限,而切口三的东西已经过了任何期限,给它设期限没有意义。用错切口不是效率低一点,是做的根本不是那件事。

5.2 为什么这三样在两本账上都不占位

前一步的账,记的是交付:它交出去了什么、什么时候交的。后一步的账,记的是产出:它做出了什么、花了多少工时。

两本账都没有"我做这一步的时候,依据的是什么"这一栏。依据是隐含的、弥散的、被当作背景的。正因为如此,当依据从"前一步的实际结果"换成"一条临时设定"时,两本账上没有任何一个数字会变。

这就是为什么代设不可能被任何单一环节发现。发现它需要一次比对:后一步的实际依据 × 前一步的实际输出。而这两样东西分别记在两个地方,且后者根本没有被记下来过。

六、读数:代设净增

读数名:代设净增 符号:Δ 取值:带符号整数

定义(一句):在一个计数周期内,新产生的代设条数减去被回填的代设条数,即为 Δ。回填指有痕迹的比对:前一步的实际结果与当初的代设被放在一起看过,并留下"一致"或"已修正"的记录。

这个读数带符号,而且本文最要紧的一条主张就藏在符号里。Δ 为负,说明这条流程在把假设收回来;Δ 为零,说明它在原地打转;Δ 长期为正,说明这条流程正在以稳定的速率积累谁也不会再去核对的既定事实。

本文原本用的不是这个读数。原本的读数是回填率——被核对的代设占全部代设的比例。第十三节那次真跑把它改掉了:数据显示,在一个可以完整清点的系统里,假设被拆松的速率是被收紧速率的七倍多。也就是说,代设不是一个等着被清空的临时池子,它是这套系统的稳态方向。一个比率会把这件事读成"清空得慢",而一个带符号的净增读数才读得出"根本不是在清空,是在积累"。

6.1 清点手册

粒度:什么算"一条代设"。一条=后一步产出中的一个可指名的依据项,其来源不能指到前一步的一个具体输出。恰好在边界上的例子:风险经理在报告出来之前使用了"担保物按市价七折"这个口径,而这个口径写在本机构的制度文件里。算不算代设?算——它的来源是制度文件,不是这一笔业务里前一步的实际输出,而本笔业务的担保物是否适用这个口径,正是前一步该给出的东西。判据是能不能指到本次前一步的具体输出,不是"这个依据本身有没有出处"。

编码规则(六条):

1. 只数依据项,不数动作。"开了三次会"不计入;会上确定的"暂按 A 口径"计入一条。

2. 一条依据项只计一次,无论它被引用多少次。但若它在不同的下游文件里被写成了不同的内容,按不同条计。

3. 回填必须有痕迹。口头确认、"大家都知道了"、事后回忆一律不算回填。判据是:有没有一份可以调出来的记录,上面同时出现代设的内容与前一步的实际结果。

4. 被前一步的结果证实为一致的代设,同样计为回填。回填不等于修正,它等于被看过一眼。这一条极要紧:本文关心的不是代设对不对,是有没有人回头看。

5. 计数周期取一个完整的交付周期,并在表上写死。跨周期的代设结转到下一周期,不重复计入新增。

6. 被明确废止的代设从池子里移出,另记为"已废",不计入回填,也不再计入池子。

汇总(不是第二个读数):把每期的 Δ 累加,得到代设存量。存量只是 Δ 的累计,全篇不另设定义与阈值。

表头(照抄即可开表):

周期

流程

本期新增代设

条目摘要

本期回填

回填记录在哪

本期已废

Δ

期末存量

已被下游引用且无来源记载的条数

判定线:Δ 连续三个周期为正,且期末存量中"已被下游引用且无来源记载"的条数不为零——两条同时满足,即判定这条流程处在本文所说的那一格。单看 Δ 为正不足以判定,因为一次业务扩张也会让新增代设变多。

不适用:见第十四节。

三处引用一致性自查:正文第六节、证伪条款第 14.1 与 14.4 条、赌注第十七节,三处使用的 Δ 定义、粒度、六条编码规则与上面那条两项并列的判定线完全一致。

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

必须举出一个既有指标最好看、而 Δ 最难看的真实形状,否则这个读数会被读成某个现成指标的代理。

举得出来:并行度。项目管理里衡量流程压缩程度的常用读数是"可并行工序占比"或"工期压缩率",一条把并行度从 20% 提到 65% 的流程,按这个指标是一次教科书级的改造。而并行度正是代设的产生条件——每多一对被解开先后约束的工序,就多一批必须靠临时设定顶上的依据项。并行度最好看的那次改造,Δ 最大。

反过来的形状也有:一条并行度只从 20% 提到 28% 的流程,因为在每一次解开先后约束的同时登记了代设并设了比对期限,它的 Δ 长期在零附近甚至为负。按并行度它是一次平庸的改造,按本文的读数它是唯一没有在积累既定事实的那一条。

因此本文明确反对把 Δ 与并行度、工期压缩率合成任何一个复合指标——合成之后 Δ 的信息会被并行度那一项吃掉,因为二者同向变化而意义相反。

七、一条签名,与必须同时排除的三个对手

前两种读法各自给了两到三条识别签名。本文只给一条,因为在这个对象上多写的那几条都不成立;但这一条必须配三个排除项,缺一个都会误判。

签名:后一步的产出在形式上完整无缺,而它的依据链条在某一处断在"通常""惯例""一般来说"上,且这一处从来没有人问过。

这条签名可以被一次抽查验证:取十份已交付的产出,逐份追问依据,看断口出现在哪里、有几处、有没有留下过被追问的痕迹。

必须同时排除的三个对手:

对手一 · 能力不足。若断口出现在做的人答不上来的地方,那是能力问题,处方是培训。代设的断口是答得上来的——他会告诉你"我们一直是这么算的",答得干脆、答得有据、而那个据不是这一笔业务里的前一步给的。判别一句话:他答不上来,还是答得很顺?

对手二 · 规则缺失。若断口处根本没有任何口径可循,那是规则缺失,处方是订规则。代设的断口处通常是有口径的——制度文件里写着,行业惯例里有,只是它顶替了本该由前一步给出的那份判断。判别一句话:那里是空的,还是填着一个不该填在那儿的东西?

对手三 · 业务扩张。若代设变多只是因为业务量变多,Δ 为正不说明任何问题。判别一句话:把 Δ 除以本期交付件数,这个比值有没有变?本文的判定线之所以要求"已被下游引用且无来源记载的条数不为零"作为第二项,正是为了挡住这一条——业务扩张会让新增变多,但不会让溯源失败率上升。

为什么不写第二条签名。本文原本写过一条"越规范化越严重",检查之后删了——它在这个对象上不成立,而且方向相反。有配置管理、有变更记录、有依据留痕要求的组织,代设更容易被数出来;真正数不出 Δ 的是那些连"依据"这一栏都没有的组织,而那类组织通常并不规范。把一条漂亮而错误的签名留在文章里,会让所有在规范组织里做的检验都得出反向结果。

八、一句问话,五个场合

这一步开工的时候,上一步交付了没有?

只问两个时刻的先后,不问程度,不问看法,不问质量。它可以拿去问工单系统、流程日志、版本记录、会议纪要。

下面五处各给一个答案,五个答案没有一个重样;其中第一、第二两处不是想出来的,是清点出来的,而且它们回过头改了本文的写法。

场合一 · 公开发行版的构建依赖。答案:在一个可完整清点的系统里,六成二的依赖项在声明时没有写任何版本约束——声明的人没有等到、也没有去查那个依赖当时是什么版本,直接写了一个不带条件的名字。这是查出来的(第十三节)。

场合二 · 同一份记录的另一面。答案:约束被去掉的比例,是被补上的七倍多。这也是查出来的,而且它与本文原来的写法方向相反——本文原以为代设会被逐步收紧,实际是既有的约束在被逐步拆松。它直接改掉了本文的读数(第 6 节与第 13 节)。

场合三 · 建筑设计的专业会签。答案:各专业出图的开工时刻普遍早于上游专业的定稿时刻,而这两个时刻分别记在各专业自己的进度表里,没有一张表把它们放在一起。会签发现的碰撞点数量是有记录的,代设的条数没有。

场合四 · 临床研究的统计分析计划。答案:分析计划的定稿日与数据库锁定日有先后规定(前者须早于后者),这是少数几个把两个时刻的先后写成硬规则并留痕的场合——而它之所以被写成硬规则,正是因为这个先后一旦被打破,损失无法从结果上看出来。

场合五 · 立法与配套细则。答案:细则起草的开工时刻常早于上位法定稿,起草者必须先假定若干条款的最终表述;这些假定不出现在任何一版草案的说明里,而当上位法定稿与假定不符时,产生的是新一轮征求意见。

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

凡是把"这一步能不能在上一步交付前开工"写成硬规则并留痕的地方,都是那种"损失从结果上看不出来"的地方。

这条规律的用处是反过来的:它给出了一个找代设的探针——去看哪些地方的先后被写成了硬规则,那些地方就是先后关系承载信息量最大的地方;而与之结构相同、却没有写成硬规则的地方,正是代设最可能大量存在而无人知道的地方。

这条规律也把本文的第三层主张定死了:记录系统普遍记录"交付时刻",普遍不记录"开工时刻",因而任何一对工序之间的先后关系是否被打破,在现有记录里不可判定。这一层不依赖前两层,而且它是三层里最便宜、最容易被检验的一层。

九、十二处兑现

其一 · 地下工程。预测:把分部开挖改为全断面开挖而支护参数不变时,最终位移量的离散度上升而均值不必然上升——因为每一步的量测反馈没有了,每个断面各自沿不同路径到达终点。离散度而非均值,是本文的独有预测。

其二 · 心脏起搏。预测:以固定房室间期起搏的人群,其运动耐量的个体差异大于以自适应房室间期起搏的人群,而静息射血分数无差别。静息指标不分岔而负荷指标分岔,是"序料被固定值顶替"的直接形态。

其三 · 教学序列。预测:把两个必须先后掌握的要素改为同时呈现,学习者的即时测验成绩不下降而延迟迁移测验成绩下降。两个指标反向,是本文与"教得不好"这一解释的分岔点。

其四 · 软件依赖声明。预测:不写版本约束的依赖项,其所在包在上游发生破坏性变更时的构建失败率高于写了约束的;而日常构建成功率无差别。已由第十三节部分触及,且第十三节跑出了一个更强的反向结果。

其五 · 建筑各专业出图。预测:把建筑方案冻结与结构、机电出图从串行改为并行之后,施工阶段的设计变更单集中在专业交界处,而各专业内部的差错率不变。

其六 · 药物临床试验。预测:统计分析计划定稿晚于数据库锁定的试验,其结果的"事后调整"记录多于反之,而主要终点的显著性比例不必然更高——前者是代设被清算的痕迹,后者才是选择性报告的痕迹,两者必须分开看。

其七 · 立法与细则。预测:细则起草与上位法审议并行的立法项目,其细则在公布后一年内的修订次数高于串行的项目,而上位法本身的修订次数无差别。

其八 · 财务结账与经营分析。预测:把经营分析提前到结账完成之前开展,分析结论的"口径说明"篇幅上升,而结论本身的方向不变。口径说明就是代设被写下来的那一部分,它上升说明代设在被登记——这一条是唯一一处 Δ 有可能为负的形态,值得单独去找。

其九 · 采购与技术规格。预测:在技术规格定稿前启动询价的项目,其合同签订后的技术澄清函数量上升,而中标价的离散度不变。

其十 · 影视制作。预测:在剧本定稿前启动置景与选角的项目,其后期补拍比例上升,而单场拍摄效率提高。局部效率与整体返工同时上升,是本题最直观的一处形态。

其十一 · 供应链的先期采购。预测:在设计冻结前下达长周期件订单的项目,其呆滞库存上升,而交付周期缩短。这一处的量纲是钱与件,而形状相同:代设固化为实物之后,清算的形式是报废。

其十二 · 模型驱动的业务流程。预测:把原本串行的"生成—审阅—定稿"改为"生成与审阅并行"之后,审阅意见中"这里你是按什么假设写的"这一类的比例上升,而意见总数不必然上升。这是本题在企业里的直接形态,而这个比例正是代设在自然语言里的显影。

十二处里有八处的预测形状是一个指标改善而另一个指标恶化,或两个指标脱钩。本文强调其中一处例外:第八处预测的是 Δ 可能为负的形态,一个判断如果只能预测坏事,它多半是个单向描述;本文把这一处单独标出来,是为了让它可以被去找、也可以被找不到。

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

10.1 隧道工程削掉了"先后应当被保住"

本文最自然的处方是:把被打破的先后关系恢复回去。地下工程直接否掉了它,而且理由不是程度问题。

支护上得太早太强,围岩得不到应力释放,荷载全转到支护上,这是这门工程反复强调的错误。翻译过来:把先后关系全部恢复成串行,等于把支护上得太早——每一步都等前一步彻底完成,产出的不是更好的判断,而是一条谁也不敢动的流程,以及一个把全部风险压在最后一环的结构。

这削掉的是本文原本会写下的那句更强的话:"凡是被并行化打破的先后约束,都应当恢复。"现在不能写了。本文只能退到:先登记代设,再决定要不要恢复先后;恢复本身是有代价的,而且这个代价在某些流程上高于代设被清算的代价。

而"该恢复哪几条"这个问题,本文答不出来。地下工程有一整套量测反馈来定支护时机,本文对应的东西是空的——本文没有相当于收敛量测的那个东西。

10.2 循环生理动了本文的价值排序

本文默认代设是要被减少的坏东西。生理学逼着本文承认:有一类代设不但不该减少,它是系统能够工作的前提。

心脏的自身调节机制正是一个大规模的代设系统:每一处血管床按局部代谢产物浓度自行调节阻力,不等中枢给出全身的分配方案。如果每一次调节都要等中枢的指令,循环系统根本无法工作。局部按自己的规则先动,事后由中枢的整体调节来纠偏——这就是代设加回填的生理版本,而它是正常的,不是病理的。

这动的是价值排序,不是补一个条件。本文原本把代设当作损耗,现在必须写成:代设是分布式系统得以运转的机制本身;成问题的不是代设的存在,是回填通道的缺失。一个 Δ 长期为正的系统,问题不在它设了太多假设,在于它没有相当于中枢调节的那一层。

于是本文的处方也跟着变了:不是"少设代设",而是"建回填通道"——而这两条在实践中会导向完全不同的投入方向。

10.3 有意义学习动了本文界定范围的边界

本文第五节把代设写成一个可以被事后核对的对象:现在没核对,以后核对就是了。迁移失败这件事毁掉了这个假设的普遍性。

在学习这件事上,一个错误的挂靠一旦形成,后来的正确信息并不会自动把它替换掉;它会与新信息并存,在某些情境下仍然被调用。教育学为此发展了整套针对迷思概念的教学法,而它承认这类结构极难消除。

翻译过来:有一类代设在被核对并证伪之后,仍然继续在下游起作用。它已经进入了后续判断的构造,而不只是作为一个可以被替换的参数摆在那里。本文的读数测不到这一类——按第六节的编码规则,它一旦被比对过就计入回填,Δ 会变好看,而它实际上还在下游活着。

这是本文最严重的一处盲区,而且它恰恰来自本文引以为地基的那一类材料。本文只能把它写在这里,并把"回填是否真的解除了代设的下游效力"作为一个交出去的问题。

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

11.1 并行工程与设计结构矩阵(Steward, 1981;Eppinger 等, 1994)

它说到哪一步:把任务之间的信息依赖排成矩阵,识别出必须串行的、可并行的、以及互相耦合的部分;对耦合部分采用迭代或假设—验证的方式推进。这是本文最近的邻居,而且它早就用了"假设"这个词。

差别落在哪:设计结构矩阵处理的是已知的、被建模的依赖——它的整个方法建立在"依赖关系可以被事先列出来"这个前提上。本文说的代设,其特征恰恰是做的人不知道自己设了它:依赖关系没有被列出来,因为它是隐含在"惯例"里的。一个被写进矩阵的假设不是代设,是被管理的迭代。

对照预测:若一条流程已经做过完整的依赖矩阵建模,本文预测其代设条数显著低于未建模的流程,但不为零;若建模之后代设条数降为零,本文被该方法完全覆盖。关键在于零与非零,而不在于多少。

11.2 技术债这一路(Cunningham, 1992)

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

差别落在哪:技术债有一次可指认的权宜决定,且债务人知道自己在借。代设没有决定点——没有人决定"先假设一下"。判别只需查一次会议纪要:能找到"我们先这样,回头再改"的记录,是技术债;找不到任何决定痕迹而依据链条断在惯例上,是代设。

对照预测:若把全部权宜决定清偿之后依据断口消失,是技术债;若清偿之后断口仍在原处,是本文。

11.3 关键路径与关键链(Kelley & Walker, 1959;Goldratt, 1997)

它说到哪一步:工期由关键路径决定;缓冲应集中放在链末而不是分散在每个任务上。

差别落在哪:这两套方法都把工序当作有工期、有先后约束的方块,其中的先后约束是待优化的限制条件。本文主张其中一部分先后约束是输入通道,去掉它损失的不是限制而是材料。关键链的处方是把分散缓冲收到链末,本文的处方是在每一处被解开的先后处登记代设——两者对同一条流程给出的动作不同。

对照预测:按关键链重排并集中缓冲之后,若返工与协调工时下降,关键链已经够用;若工期缩短而返工与协调工时不变或上升,本文对。

11.4 信息不对称与逆向选择(Akerlof, 1970)

它说到哪一步:交易一方掌握另一方没有的信息,导致市场失灵。

差别落在哪:信息不对称里,信息是存在的,只是在别人手上;代设的场合,那份信息在做判断的时候根本还不存在——前一步还没做完。这不是分配问题,是时序问题。判别一句话:那份信息当时存在吗?

对照预测:若把双方信息完全打通、所有人都能看到所有东西之后代设消失,是信息不对称;若打通之后代设依旧(因为前一步尚未产出),是本文。这一条在企业里几乎是免费的检验——多数企业的数据打通项目已经做过了。

11.5 有限理性与满意决策(Simon, 1955)

它说到哪一步:决策者不做最优化,只做到"够好就停";停止规则由抱负水平决定。

差别落在哪:满意决策描述的是在信息可得的情况下主动停止搜索;代设是信息尚未产生,无从搜索。前者是一个选择,后者不是。判别一句话:他停下来了,还是他压根没有可搜的东西?

对照预测:若延长决策时间、放宽资源之后代设减少,是满意决策;若延长时间而前一步的交付时刻不变,代设不减,是本文。这一条尤其锋利,因为它把"给多点时间"这个最常见的处方直接判定为无效。

11.6 认知负荷与元素交互性(Sweller, 1988)

它说到哪一步:当若干要素必须同时被理解才能理解其中任何一个时,工作记忆超载,学习失败。

差别落在哪:认知负荷是个体内部的容量限制,其处方是分段、降低同时性;本文说的是两个岗位之间的信息关系,其中每一个岗位内部都没有超载——各人都做得很轻松。判别一句话:他忙不过来,还是他很从容而依据是假的?

对照预测:若减少同时处理的信息量之后依据断口消失,是认知负荷;若各人都从容而断口仍在,是本文。

11.7 组织例程与惯例的自动化(Nelson & Winter, 1982;Feldman & Pentland, 2003)

它说到哪一步:组织的行为主要由例程构成;例程既有稳定的一面,也在每次执行时被重新推断。

差别落在哪:例程理论关心的是行为如何被重复,本文关心的是例程在什么时候顶替了一份本该来自别处的输入。二者的关系是:代设的绝大多数具体形态就是例程——"我们一直这么算"。但例程理论不会问"这一次这么算的时候,那份该来的信息到了没有"。

对照预测:若某条例程在前一步交付前后被执行的内容相同,例程理论足够;若同一条例程在前一步交付之后被执行时内容会变,说明它此前顶替了一份输入,本文对。这一条给出了一个可直接做的现场实验:把同一批业务分两组,一组等前一步交付后再做,一组不等,比较依据的分布。

11.8 预测编码与前馈控制(控制理论与神经科学的共同结构)

它说到哪一步:系统用一个内部模型对尚未到达的输入做出预测,只把预测误差往上传;前馈控制在扰动到达之前先动作。

差别落在哪:这是本文在形式上最近的一位,而且它是正面的——代设就是一次前馈。差别在有没有误差回传通道。预测编码的整个机制建立在误差被计算并回传之上;本文说的场合恰恰是误差不被计算:前一步的结果出来了,没有人拿它与当初的代设比。一个没有误差回传的前馈系统,不是前馈控制,是开环。

对照预测:若能指出误差被计算并用于修正内部模型的那个环节,是预测编码;若指不出来,本文对,且本文的读数正是在数这件事没发生了多少次。这一位是本文最应当被拿来对照的邻居,因为它给出了本文处方的方向:要建的不是更准的假设,是回传通道。

11.9 前置期与提前订货(供应链实务)

它说到哪一步:长周期件必须在设计完全冻结前下单,实务里有整套办法处理(工程更改指令、可变更窗口、承诺阶梯)。

差别落在哪:这一路是明知的、有合同条款的、有价格的代设——提前下单的风险被定价并写进合同。本文说的是没有价格也没有条款的那一类。判别一句话:这条假设有没有一个人为它承担过可计量的风险?有价格的不是本文说的东西。

对照预测:若把某条流程里的全部代设都变成有价格的承诺,本文预测协调工时下降而直接成本上升;若两者都不变,本文对该流程无效。

11.10 与同题另两篇的分界

同栏此前有两篇处理同一道题。一篇说:上游被压缩的那段等待里,本来在免费执行一道丢弃判定,删掉之后要在更贵的位置补建,读数是那道判定被补到第几站。另一篇说:交付之后下游还没把上游认下来,那段悬空在两本账上都不占位,读数是差了几代。

本文与它们的位置关系是清楚的:那两篇都落在一条工序自身的时间轴上(交付之前、交付之后),本文落在两条工序之间的关系上。三者可以并排:

它被吃掉的是什么

读数

它显影为

前一篇

一道由等待执行的丢弃判定

补到第几站

下游合格率下降

另一篇

交付到被认下来之间的那段过程

差了几代

下游干脆不采纳

本文

两步之间由先后携带的那份输入

代设净增

依据链条断在惯例上

三者是可以同时发生的,而且叠加时代价相乘而不是相加:一条既删了丢弃判定、又没被认下来、还打破了先后的流程,其下游要在最贵的位置、用最老的依据、对着一份没有来源的假设做判断。

三篇给出一条单篇都给不出的顺序预测:打破先后的效应最先出现(并行化当期即产生代设),删除判定的效应次之(提速当期到一个季度),认不下来的堆积最后出现(滞后一到两个更替周期)。若观察到的次序不是这一条,三篇合成的结构为伪。

同栏另有若干篇同期讨论同一族问题(生产率怎么算、能力怎么沉淀、旧结论什么时候过期、还有没有人往回说话)。本文与它们的差别可以一句话说清:那几篇问的是某一样东西在不在、算不算数、有没有人管,本文问的是两样东西之间的先后还在不在。本文成文时读不到那几篇的正文,因此这些分界是单向的,须在合稿时由各方各补一次。

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

十条里最近的是设计结构矩阵那一路。它比本文早四十多年,方法完备,工具成熟,而且它明确处理"在信息不全时先做假设、事后迭代"这件事。

它装不下本文,理由不是本文更深,是它的问题结构使这一步成为不必要的。设计结构矩阵要回答的是"这些任务该怎么排序与分组",它的输入是一张依赖矩阵。在这个问题结构里,依赖必须先被列出来才能进入分析——没有被列出来的依赖,对这套方法而言不是"漏掉的依赖",而是"不存在的依赖"。它一旦承认存在大量无法被事先列举的隐含依赖,它的矩阵就不再是一个完备的对象,整套排序算法失去输入。

把其余九位一个一个问下来,露出来的是同一块地面:

这一路

它把什么当成不必再问的

因此它看不见什么

设计结构矩阵

依赖可以被事先列举

无法被列举的隐含依赖

技术债

欠账源于一次决定

无决定点的欠账

关键链

先后是待优化的约束

先后是输入通道

信息不对称

信息存在而分布不均

信息尚未产生

满意决策

停止是一次选择

无可搜索的对象

认知负荷

限制在个体容量

限制在岗位之间

组织例程

例程是行为的重复

例程作为输入的顶替物

预测编码

误差会被回传

无回传的前馈

提前订货

风险已被定价

未被定价的假设

并行工程

并行的代价是返工

并行的代价是依据失源

这十行指向的是同一件被当成不必再问的事:

两件事的先后,只决定它们各自何时被做,不决定它们各自做了什么。

承认先后本身携带一份输入,上面每一行都会失去自己的建模起点——因为它们全部把"任务"当作一个自带全部所需输入的封闭单元,而先后只是这些单元的排列。这就是这件事从未被单独辨识的来源:所有人的模型都是先切出单元,再排先后;而本文说的那份输入,恰恰在切开的那一刀上被丢掉了。

十二、预注册与真跑:一条成立,一条被证伪且方向剧烈相反

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

要检验的推论:代设一旦设立,事后被核对或收紧的比例很低。

数据源:一个公开操作系统发行版两个长期支持版本的源码索引中的构建依赖字段。选它的理由是:一条依赖项若不带任何版本约束,就是一次教科书式的代设——声明的人没有等到、也没有去查那个依赖当时是什么版本,直接写了一个不带条件的名字,而构建照样成功,没有任何异常信号。

变量:代设项=前一版本中不带版本约束的依赖项;回填=同一包同一依赖项在后一版本中带上了版本约束;回填率 χ=回填项数 ÷ 代设项数(按项计,不按包计);反向项=前一版本有约束而后一版本无约束。

假设与阈值:

· H1:χ < 0.10 → 关于"代设很少被回填"的主张在本样本上成立;χ ≥ 0.10 → 为伪。

· H2:χ 应显著高于反向率。若 χ ≤ 反向率,说明观察到的只是声明的随机漂移,本文这个读数无效。

· H3:索引中不存在任何字段记录"这条依赖的版本约束是经过核对写下的,还是默认留空的"。

12.2 跑出来的东西

参与比较的包 2,218 个,两版共有的依赖项 18,160 条。

项目

数值

前一版本中不带版本约束的依赖项(代设项)

11,238

其中在后一版本中被加上约束(回填)

118

回填率 χ

0.0105

前一版本中带版本约束的依赖项

6,922

其中在后一版本中约束被去掉(反向)

539

反向率

0.0779

代设项占全部依赖项的比例

61.9%

H1 成立:χ=0.0105,远低于 0.10。代设几乎不被回填。

H2 被证伪,而且方向剧烈相反:反向率是回填率的 7.4 倍。约束不但没有被逐步补齐,已有的约束正在以七倍于补齐的速率被拆掉。

H3 成立:索引的全部字段里没有任何一个能区分"这条约束是核对过才写的"与"这里默认留空"。

12.3 这一条不利结果改了本文什么

按预注册写死的规则,H2 不成立意味着回填率作为读数无效——本文必须放弃它。放弃之后剩下的东西比原来那条强。

改的第一处,也是本文全篇最要紧的一处修订:代设不是一个等着被清空的临时池子,它是这套系统的稳态方向。

原来的图景是:并行化产生一批代设,之后有一个或快或慢的清算过程把它们收回来,问题只是清算太慢。数据说的不是这件事。在一个可以被完整清点、有明确维护责任、有变更评审、有版本管理的系统里,声明的净方向是朝着"更少约束"走的——每一个周期,被拆松的比被收紧的多六倍以上。

于是本文的读数从回填率改成了带符号的代设净增 Δ。一个比率会把这件事读成"清空得慢"(0.0105,很小,像个待改进的效率问题);一个带符号的净数才读得出方向:这不是清空得慢,是根本没在清空,而且反过来在积累。这两种读法给出的处方完全不同——前者会去优化清算流程,后者会去问"为什么拆约束比加约束容易"。

改的第二处:那 7.4 倍本身逼出了一条本文原来没有的判断。

拆掉一条约束与补上一条约束,做的人付出的代价不对称。补一条约束要求你知道那个依赖到底需要哪个版本——这需要一次核对;拆一条约束只需要它挡了路。前者的成本是一次调查,后者的成本是零,而且拆掉之后构建立刻通过,是一次即时可见的改善。在任何一个以"能不能构建通过"为验收标准的系统里,这个不对称都会稳定地把声明推向更松的一侧。

这条判断可以直接搬到企业里:代设的净增不是因为人懒,是因为登记一条代设要花一次核对的成本,而删掉一条限制立刻换来一次通过。只要验收看的是通过与否,方向就是固定的。

改的第三处:一句本文原本会写而现在删掉的话。本文原本会写:"随着系统成熟,代设会被逐步收紧。"删了。数据说的是反的,而且它是在一个相当成熟的系统里跑出来的。

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

其一,"不带版本约束"作为代设的代理是偏宽的。有一部分依赖项本来就不需要版本约束(任何版本都真的可以),这类不是代设。本文无法把它们分离出来,因此 11,238 这个数是上界,回填率的分母偏大。但这一处偏差不影响 H2 的结论——H2 比的是两个方向的速率,分母偏大同时作用于两侧。

其二,"加上约束"作为回填的代理是偏窄的。有些核对确实发生了,结论是"不需要约束",于是声明不变,读不出来。这一处偏差会让回填率偏低,因而对 H1 有利、对本文有利,必须写出来。而它同样不改变 H2——若这类静默核对大量存在,那么反向那 539 条同样可能是核对之后的主动放宽,此时结论从"没人回填"变成"回填的结论普遍是放宽",两种读法都指向同一个方向:约束在减少。

12.5 与此前几次检验的关系

本次取数与同栏近期几次检验落在同一个公开档案上,但取的是不同的字段:那几次取的是版本串与发布记录,本次取的是构建依赖声明。即便字段不同,同一批档案只能算一次独立证据——本文不接受那几次的背书,也不为它们背书。

沙箱内可达的公开数据源家族已经用尽(代码仓库族、发行版档案族均已多次占用),这一点本文照实写出来,不假装还有第三个。它的后果是具体的:本文只有一次真跑,且这次真跑覆盖的是第一层与第三层主张,第二层(三段切口)完全没有被数据碰过。

替代设计留给后来者,它不需要任何新系统:在同一家企业内取六到八条已经做过并行化改造的流程(同一制度环境、同一考核体系),每条记录三件事——每一对工序的开工时刻与上游交付时刻孰先孰后、后一步产出的依据链条在哪里断口、断口处有没有比对记录。自变量是并行度,因变量是 Δ 与协调工时占比。前两件数据在多数企业的工单系统里已经存在,第三件需要一次抽查,一周内可以做完一批。

十三、不适用的边界

其一,前一步的产出对后一步没有实质约束的场合。若后一步无论前一步给出什么都照样那么做,先后关系本来就不携带输入,取消它不损失任何东西。判别:把同一批业务分两组,一组等前一步交付后再做,一组不等,比较依据的分布;分布相同,本文不适用。

其二,代设已经被定价的场合。提前订货、期权式承诺、有工程更改条款的先期投入,其风险已被计量并由某方承担,那不是本文说的东西。

其三,前馈误差确实被回传的场合。若能指名一个环节,它系统地把前一步的实际结果与当初的代设放在一起并据以修正,那么这条流程是一个闭环前馈系统,本文的读数会接近零,且这是正确的读数。

其四,代设在被证伪之后仍继续起作用的那一类。见第 10.3 节。本文的编码规则会把它计为已回填,Δ 变好看,而它仍在下游活着。本文在这一类上会系统性低估。

其五,探索型工作。在结果本来就不可预知的工作里,先做后做的次序常常没有承载关系,甚至倒过来更好。本文不覆盖。

十四、证伪条件

七条,编号。第 14.1 与 14.4 低成本可实做。

14.1(低成本可实做)取一条已并行化的流程,抽十份已交付产出,逐份追问依据链条。若断口全部落在"当事人答不上来"或"那里根本是空的"两类,本文对该流程为伪(那是能力问题或规则缺失);若断口落在"答得很顺而依据指不到本次前一步"这一类且无人问过,本文成立。一名调查者一周内可完成。

14.2 控制业务量、人员规模与产品复杂度之后,若并行度与协调工时占比之间不存在剂量—反应关系,本文为伪。样本要求:同一制度环境内不少于六条流程,关键混淆变量同质;不得用两家企业或两个行业的对比充数。

14.3 若在每一处解开先后约束时登记代设并设定比对期限之后,Δ 在三个周期内未转负或未趋近于零,本文关于切口一与切口二的处方为伪。

14.4(低成本可实做)在企业的工单系统里取每对相邻工序的开工时刻与上游交付时刻。若这两个时刻在系统里根本无法取到(开工时刻字段不存在),本文第三层主张成立;若能取到,且"后一步开工早于上游交付"的比例与该流程的协调工时占比无关,本文为伪。

14.5 若把双方的信息完全打通(所有人可见所有已产出内容)之后代设消失,本文被信息不对称吸收。

14.6 顺序与轮次预测:本文预测的次序是——并行化上线(第 0 期)→ 代设产生(当期,不滞后)→ 依据链条出现惯例型断口(1 至 2 个交付周期)→ 协调与对齐类会议增加(2 至 4 个周期)→ 部分代设被下游引用而无来源记载,成为既定事实(4 至 8 个周期)→ 此后即使恢复串行,这部分既定事实也不回退。若观察到代设的产生滞后于并行化,本文的机制为伪;若最后一步不发生——恢复串行后既定事实随之松动——本文关于切口三的判断为伪。

14.7 若在某条流程上把 Δ 长期压在零附近,而协调工时占比未随之下降,本文的核心构念不成立。这是本文最愿意押的一条。

若本文被证伪,能学到什么:若 14.1 与 14.4 同时不成立,那么并行化之后新增的协调成本就与"先后携带的输入"无关,而是并行本身需要一套新的、原来不存在的沟通机制——那会把处方从"登记代设、建回传通道"改成"为并行配置专门的协调层",是完全不同的干预方向,而且后者的成本是常设的、不随流程成熟而下降的。

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

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

第一条:少登记。Δ 的分子是"本期新增代设",而代设的识别依赖一次追问。不追问,就没有新增。一条流程只要不做依据抽查,它的 Δ 永远是零——而 Δ 为零在本文的判定线里恰恰是好的。这是本文全部设计里最脆弱的一处:读数依赖一个主动的清点动作,而清点动作的强度由被考核的人控制。

第二条:把代设写成制度。一条代设一旦被写进制度文件,它就不再"指不到来源"了——它指得到制度。按第六节的编码规则第一条它仍应计入(判据是能不能指到本次前一步的具体输出),但在实际执行中,"这是制度规定的"几乎必然会被记为有据。于是最省事的达标方式是:把那些从未被核对过的惯例,统统写进制度。写进去之后 Δ 立刻变好看,而那些惯例一次也没有被拿去与前一步的实际结果比对过。

我看不到出口。第一条的破绽在于读数依赖自查,第二条的破绽在于制度化本身在多数场合是一件正确的事,无法一概反对。本文能给的只有一条消极的克制:不要把 Δ 作为考核指标,只作为诊断读数,且在诊断时必须同时看表头最后一栏——"已被下游引用且无来源记载的条数"。那一栏是从下游反查上来的,被考核方无法通过少登记把它做低,因为它不依赖上游的自查。

15.1 伦理与证据边界

其一,Δ 指的是一条流程,不是一个人。Δ 为正说明这条流程在积累未经核对的既定事实,它不说明任何一个岗位上的人做错了什么。设下代设的那个动作,在绝大多数组织里既不违规也不失职,它甚至是被鼓励的——因为它让人不必等。把 Δ 记在人头上,是把一次流程设计选择的后果转嫁给按设计办事的人。

其二,不得为了把 Δ 做低而在安全关键系统里强行恢复串行或压缩比对。在航空、医疗、核、轨道交通这类系统里,某些并行是经过评估的,某些比对是法定的。顺序是先建回传通道,再谈调整先后;任何情况下不得先取消比对再补通道。

其三,凡按 Δ 做过不利安排的,六条编码规则必须公开,并且要有一条可走的复核通道。尤其是编码规则第一条(依据能不能指到本次前一步的具体输出)在实践中会有真实争议——一条写进制度的口径到底算不算代设,被影响方有权提出异议并要求重算。

关于本文的证据强度:第十二节只有一次真跑,且它的主假设之一被证伪。本文的三层可以分开引用:第一层是序料与代设作为核心判据,最强也最易倒;第二层是三段切口,它完全没有被数据碰过,只是一个分诊工具;第三层是"记录系统普遍记录交付时刻而不记录开工时刻,因而先后是否被打破在现有记录里不可判定"——这一层最稳、最便宜,且不依赖前两层。

十六、本文自己有几条代设

用本文的判据检本文自己,答案是可以数出来的。

本文的"前一步"是同栏此前处理同一道题的两篇文章,以及同期并行的若干篇。本文在写的时候,它们中的大部分尚未交付到本文手上——本文读不到它们的正文。而本文没有等,本文照常写完了。

于是本文用了代设,逐条数出来至少有三条:

代设一:本文假定同期那几篇处理的是"某一样东西在不在、算不算数",而不是"两样东西之间的先后还在不在"。这条假设写在第 11.10 节的末尾,它的依据是那几篇的题面与读数名,不是它们的正文。若其中某一篇实际上正是在处理先后关系,本文的整节分界要重写。

代设二:本文假定三篇合成的顺序预测(打破先后最先、删除判定次之、认不下来最后)成立。这条的依据是三个机制各自的时间尺度,不是任何一次观察。它写在第 11.10 节,形式上是一条能被裁开的预测,实质上是一条未经核对的代设。

代设三:本文假定同栏近期几次检验取的是不同字段,因而本次取数在字段层面是新的。这条的依据是本文自己的取数记录,不是那几篇的取数记录。

按本文自己的定义,这三条都处在切口二:前一步(那几篇)已经交付到某处了,只是没交付到本文手上,而本文没有回头比对的机会。本文的 Δ 至少是 +3,回填数为零。

这个自我定位有具体后果,不是姿态:本文因此不能声称第 11.10 节那张三篇并排的表是一次已完成的划界。它是一份代设登记,不是一次比对。要变成比对,需要的不是再写一段文字,是把三篇的读数放进同一张表、用同一批业务各算一次——而那件事本文没有做,理由与本文所描述的完全一样:后一步开工的时候,前一步还没交到手上,而后一步没有等。

还有一层更不舒服的。本文主张:只要验收看的是"通过与否",方向就固定地朝着更松的一侧走。本文自己的验收标准是"这篇文章成不成立、读不读得通",而不是"那三条代设核对了没有"。按这条主张,本文这一类文章的 Δ 会稳定为正,而且不会有任何机制让它转负——除非有人把"你第 11.10 节那张表核对过没有"变成一道会挡住发表的关口。本文提不出这样的关口,只能把这一段写在这里。

十七、一条写死日期的赌注

赌注:在 2029 年 8 月 11 日之前,会出现至少一个公开可查的流程管理系统或行业规范,把"本步开工时刻"与"上游交付时刻"并列为强制采集字段,并以两者的先后关系作为一个正式的过程指标。

什么算命中:两个时刻都由系统自动打点采集,不是人工填报;两者被放在同一张可查询的表上;且该系统或规范在公开材料中把二者的先后关系用作一个指标(无论它叫什么名字)。三条同时满足才算命中。

什么不算命中:

· 只有"计划开工时刻"与"计划交付时刻"——计划值不算,必须是实际打点;

· 只有工单的创建时刻或任务派发时刻——那是派发,不是开工;

· 两个时刻分别存在于两个系统而需要人工连接——本文的第三层主张说的正是这种连接不存在,能连上才算命中;

· 仅在研发或项目管理工具中存在而未进入业务流程系统;

· 只有内部试点而无公开材料——只要求机构自行说明不算命中。

若到期未命中,本文关于"开工时刻字段的系统性缺失"这一层的实践相关性应被下调:它可能是一处真实的空缺,也可能是采集成本确实高于收益,而本文没有算过这笔账。

十八、留下的三个洞

洞一:本文没有相当于收敛量测的那个东西。地下工程能定支护时机,靠的是每一步之后的量测反馈。本文主张先后关系承载输入,却说不出在一条具体流程上,哪几处先后承载得多、哪几处承载得少。没有这个,第 10.1 节那句"先登记再决定要不要恢复"就只是一句正确而不可执行的话。第八节那条探针(去看哪些地方的先后被写成了硬规则)是本文能给出的最接近的东西,而它是一个启发,不是一个量测。

洞二:本文测不到"被证伪之后仍在起作用"的那一类代设。见第 10.3 节。这一类的危害大于本文所测的那一类,而本文的编码规则会把它记为已回填。要测它,需要一个本文没有的东西:一条代设被推翻之后,它的下游痕迹如何被追踪。

洞三:本文完全没有处理"代设的质量"。一条基于扎实经验的惯例,与一条随口拍出来的数字,在本文的读数里各算一条。这显然不对,而本文有意没有引入权重——因为任何权重都会把这个读数变成一次评价,而评价需要评价者,读数就此失去它唯一的优点(可以被清点)。这个取舍本文认了,但它的代价是:一条 Δ 很小而全部代设都很糟的流程,在本文的读数上看起来是健康的。这个洞与前两篇留下的洞接在一起,本文一并交出去。

注释与文献

地下工程与支护时机

· Rabcewicz, L. v. (1964/1965). "The New Austrian Tunnelling Method." Water Power, 16(11), 453–457; 16(12), 511–515; 17(1), 19–24.

· Panet, M., & Guenot, A. (1982). "Analysis of convergence behind the face of a tunnel." Proceedings of Tunnelling '82. London: IMM, 197–204.

· Carranza-Torres, C., & Fairhurst, C. (2000). "Application of the convergence-confinement method of tunnel design to rock masses that satisfy the Hoek-Brown failure criterion." Tunnelling and Underground Space Technology, 15(2), 187–213.

循环生理与房室时序

· Wiggers, C. J. (1921). "Studies on the consecutive phases of the cardiac cycle." American Journal of Physiology, 56(3), 415–438.

· Mitchell, J. H., Gupta, D. N., & Payne, R. M. (1965). "Influence of atrial systole on effective ventricular stroke volume." Circulation Research, 17(1), 11–18.

· Rees, M., & Haynes, S. (2011). 关于房室间期优化的临床综述,见 Europace 相关文献群;本文引用的是这一领域的公认量级区间,不依赖任何单篇的具体数值。

· Ito, H., Maruyama, A., Iwakura, K., et al. (1996). "Clinical implications of the 'no reflow' phenomenon." Circulation, 93(2), 223–228.

有意义学习与认知负荷

· Ausubel, D. P. (1968). Educational Psychology: A Cognitive View. New York: Holt, Rinehart and Winston.

· Sweller, J. (1988). "Cognitive load during problem solving: Effects on learning." Cognitive Science, 12(2), 257–285.

· Barnett, S. M., & Ceci, S. J. (2002). "When and where do we apply what we learn? A taxonomy for far transfer." Psychological Bulletin, 128(4), 612–637.

分界处点到的说法

· Akerlof, G. A. (1970). "The market for 'lemons': Quality uncertainty and the market mechanism." Quarterly Journal of Economics, 84(3), 488–500.

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

· Eppinger, S. D., Whitney, D. E., Smith, R. P., & Gebala, D. A. (1994). "A model-based method for organizing tasks in product development." Research in Engineering Design, 6(1), 1–13.

· Feldman, M. S., & Pentland, B. T. (2003). "Reconceptualizing organizational routines as a source of flexibility and change." Administrative Science Quarterly, 48(1), 94–118.

· Goldratt, E. M. (1997). Critical Chain. Great Barrington: North River Press.

· Kelley, J. E., & Walker, M. R. (1959). "Critical-path planning and scheduling." Proceedings of the Eastern Joint Computer Conference, 160–173.

· Nelson, R. R., & Winter, S. G. (1982). An Evolutionary Theory of Economic Change. Cambridge, MA: Harvard University Press.

· Rao, R. P. N., & Ballard, D. H. (1999). "Predictive coding in the visual cortex." Nature Neuroscience, 2(1), 79–87.

· Simon, H. A. (1955). "A behavioral model of rational choice." Quarterly Journal of Economics, 69(1), 99–118.

· Steward, D. V. (1981). "The design structure system: A method for managing the design of complex systems." IEEE Transactions on Engineering Management, EM-28(3), 71–74.

数据

第十二节所用数据取自一个公开操作系统发行版两个长期支持版本的主仓库源码索引,取数日期 2026 年 8 月 11 日;参与比较的源码包 2,218 个,两版共有的构建依赖项 18,160 条。预注册文本在取数之前写成并存档,含数据源、变量定义、假设与判定阈值。本次取数与同栏近期几次检验落在同一批公开档案上而取的字段不同,同一批档案只能算一次独立证据;沙箱内可达的其他数据源家族已用尽,本文只有这一次真跑,第二层主张未经数据检验,理由见第 12.5 节。

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

人机分工声明:本文的问题、三门材料的选取方向、三段切口的划法与读数的形状由作者确定;文献核对、档案取数、统计计算,以及第十六节对本文自身三条代设的清点,由人机协作完成。第十六节所述"本文的 Δ 至少是 +3、回填数为零",适用于本文的全部内容,包括这份声明。