一个人做了十五年,攒下厚厚一叠笔记、几千条记录、几十个文件夹。从任何账面上看,他都是这一行里积累最厚的人之一。
问他一个具体的问题,他能翻出七八条相关的东西。但如果再追一句——这七八条里,有哪几条是三年前就该扔掉的? 他答不上来。
不是他不诚实,是他从来没有做过这个动作。 他这十五年只有一个方向:增加。看到好的就存,想通一件事就记,别人说得对就抄下来。十五年里,他没有删过任何东西。
于是他手上那一叠,实际上是三样东西混在一起:
· 一部分仍然成立;
· 一部分已经不成立,但他不知道(世界变了,或当初就错了);
· 一部分从来就不是他的(抄来的、别人的、他自己没验过的)。
而这三样在外观上完全一样。 它们排在同一个列表里,用同样的字体,被同样地检索出来。当他翻出七八条时,他无法分辨自己拿到的是哪一种。
这一章要论证的是:他的问题不是攒得不够多,是从来没有代谢过。
本章是全书第九章。 前面几篇分别处理了保护(篇一、二)、平台(第七章)、形态(第二章)、清场(第三章)、条目(第一章)、检验(第八章)。这一章处理库这一层:它怎么长,怎么老,以及一个成熟的库应当是什么样子。
结论先摆出来,因为它反直觉:
知识不是攒出来的,是代谢出来的。一个成熟的库不应该继续变大——它应当规模稳定,而内容持续被替换。
判定对象:一个知识库在一段时间内是否在生长。
判据(三条,全部必须满足):
其一·有不可还原的新增。 新长出来的东西,不能被追溯为旧条目的组合。只是把已有的东西换个说法、拆细、重排,都不算。
其二·新增接入了结构。 新条目与旧条目之间产生了依赖关系。孤立的新条目不算生长,它只是变多。
其三·有对应的代谢。 同期有条目被撤回或收窄。只增不减的库不在生长,它在肿胀。
三条的关系是合取,不是择一。 缺任何一条,那段时间的变化都不计入生长——第三节会说明缺不同条对应的三种不同状态。
一个必须先声明的排除:条目数不是判据。 一个从 100 条涨到 300 条的库,可能一天都没长过;一个稳定在 80 条的库,可能每个月都在长。这个排除是全文的地基,不接受它的读者可以在这里停下。
一个库的生命力,不由它长了多少决定,由它每单位时间能杀掉多少决定。
这句话的依据是一个生物学事实,但它不是一个类比论证(第二十八节会处理类比的限度):
生命的标志从来不是长大。肿瘤也在长大,而且长得比正常组织快。 健康组织的标志是有凋亡——该死的细胞会死,新的补上,整体规模稳定而内容持续更换。
对应到知识上:
判负与撤回不是知识库的损耗,是它的凋亡机制。没有凋亡的增长就是肿瘤。
这句话有一个可以当场使用的推论:如果要给一个库设一个最简单的健康检查,不要看它有多大,看它上个月删掉了多少。
前者任何一个收藏夹都能做到;后者需要判据、需要检验、需要有人愿意承认自己错过。而这三样恰好是这个形态的全部难处。
为什么积累会成为默认,值得说一句:因为增加是可展示的,删除不是。你不会在任何地方看到"本月为我删除了 37 条过时判断"被当作成绩——无论对个人还是对产品都一样。积累是一个被环境奖励的行为,代谢不是。
第一节那三条判据,缺不同的条对应三种不同的状态。它们在账面上都表现为"变多了",而只有一种是生长。
其一·位移(缺判据一:新增可被还原)
新条目可以由旧条目重构——换个说法、拆成两条、加个例子、换个领域重新表述一遍。
库变大了,前沿没有动。 这就像一堆积木换了摆法:块数没变,看起来是个新东西。
判别:请一个不知情的人,用你的旧条目去重构新条目。重构得出来的那部分是位移,重构不出来的那部分才是新东西。
位移不是没有价值——把一件事说得更清楚是有用的。但它不产生新的可被驳倒的东西,因此不计入生长。
其二·堆积(缺判据二:新增不接入结构)
新条目确实是新的、不可还原的,但它与库里任何东西都没有关系:撤掉它,一条都不动;撤掉别的,它也不动。
库变大了,结构没有长。 这种库的特征是:你可以随时往里加,也可以随时往外拿,而整体从不改变形状。它无法被整体推翻,因而也无法被整体检验——每一条都对,而整体什么也不是。
判别:新增条目里,有多少条写得出"本条依赖/依赖本条"。
其三·生长(三条全满足)
不可还原、接入结构、且同期有代谢。
这三条同时满足时发生的事情是:库的形状变了。不只是多了一块,而是原有的一部分因为这一块而必须调整——有的被收窄,有的被撤回,有的因为它而重新连线。
"形状变了"是生长的外在特征,也是最容易观察的一个。 如果一年下来,你的库只是变长了而没有变形,那一年大概率没有长。
前两条判据必须相乘,不能相加,这一点值得单列。
单条新增的生长贡献 = 不可还原性 × 接入度
· 不可还原但不接入(堆积型):一条孤立的新洞见。贡献计为零——不是因为它没价值,是因为它对这个库的结构没有产生任何作用,明年撤掉它也不会有任何影响。
· 接入但可还原(位移型):一条与很多东西相连、但可以从旧条目推出来的表述。贡献同样计为零——它连接的是已经连着的东西。
· 两者都高:真正的生长。它带进来一个新的东西,并且这个东西迫使原有结构调整。
相乘的效果是让前两种在账面上归零,而这正是想要的:它们在感觉上都像是在进步(一个是想通了新东西,一个是把旧东西理清楚了),而账上应当分得清楚。
一个诚实的补充:接入度需要时间。一条今天立的新条目,可能三个月后才显出它撑着什么。所以生长量的统计应当滞后一个季度——用上一季度的新增,在这一季度算它的接入度。当季算当季,会系统性低估生长。
把上面几节做成一个可取值的量。
净生长率 G =(本期不可还原且已接入的新增数 - 本期新增的"应撤未撤"数)÷ 期初承重条目数
三个要素:
· 分子第一项:真正长出来的(第四节两条件相乘之后的);
· 分子第二项:本期新变成"该撤而没撤"的存量(第六节详述)——这是负债,必须扣;
· 分母:期初的承重条目数,不是全部条目数。用承重数做分母,是为了防止用一堆不承重的条目稀释比率。
判读:
· G > 0:库在净长;
· G ≈ 0:稳态——这不是坏消息(第十八节专论);
· G < 0:库在净萎缩。这有两种完全相反的原因:要么你停产了,要么你在做一次大清理。必须看代谢率才能分辨(第十九节)。
取值周期建议按季度,理由见上一节那个滞后。
本章没有取过 G 的值。 全文出现的所有比例与阈值都是拍的——第三十一节正式认下。
净生长率里那个减项,是本章认为最被忽略的一件事。
多数人对"过期的条目"的直觉是:它是中性的存量——虽然没用了,但放着也没坏处。
这个直觉是错的,理由有三条:
其一·它会被调用。 一条过期的条目不会自己标记为过期。它照常出现在检索结果里,照常被当作依据。它不是躺在角落里,它在工作。
其二·它会被依赖。 别的条目会引用它、建立在它之上。过期条目上盖起来的东西,会跟着它一起塌(第九节)。
其三·它会占用维护预算。 每一次复检、每一次连锁检查、每一次碰撞选靶,都要把它算进去。它消耗的是最稀缺的那种资源——你的注意力。
所以:应撤未撤的条目不是零,是负数。 它在账上必须作为负债处理,这就是 G 那个减项的来源。
怎么统计:每期复检时,把判定为"应当撤回但尚未处置"的条目计入。注意是"已经判定应撤"的那些——尚未被发现的过期条目不在统计内(它们是隐性负债,靠复检去发现)。
一个从会计来的类比,也仅止于类比:一个只记资产不记负债的账本,账面永远好看。多数人的知识库正是这样一本账。
条目会死,而死法有三种,处置完全不同。分不清死法,就会用错处置。
第一种·条件漂移:世界变了,这条判断赖以成立的条件不再匹配。
这是最常见的一种,也是最危险的,因为它完全静默。
· 判断本身没错——它在当初那个条件下确实成立;
· 现在也没有人反驳它——因为没有人在检验它;
· 它只是慢慢地不再适用了,而没有任何机制会来通知你。
例子的形状都一样:一条关于某类客户的判断,那类客户的构成变了;一条关于某个工具的判断,那个工具升级了;一条关于教学节奏的判断,学生的注意力习惯变了。
为什么它比"被证明错了"更危险:被证明错了会有一个明确的时刻,你会知道要处置它。而漂移没有时刻——它是一个渐变过程,每一天都只比前一天差一点点。
唯一的防法是第一章七件里的第 6 件:保质期,而且是触发式的。
· 定期式("每年复检")能防一部分;
· 触发式("当某某条件变化时立即复检")才是对准的——因为漂移的原因不在日历上,在条件上。
一条实践判据:给条目写保质期时,问一句——这条判断最依赖外部世界的哪一件事?那件事变了,就是复检的触发点。
第二种·被超越:出现了一个更好的替代品,继续用这条不再合算。
这一种与第一种的分别很要紧:条件漂移是它不再成立;被超越是它仍然成立,但已经不值得用。
处置也因此不同:
· 条件漂移 → 撤回(它错了);
· 被超越 → 降级或归档(它没错,只是有了更好的)。
为什么要分开:因为被超越的条目有一种特殊的用法——当那个更好的替代品在某些条件下不可用时,它会回来。所以它不该被彻底撤销,而应当降级为"备用",并写明"在何种情形下重新启用"。
这一种死法在今天来得特别快,理由在第四章:被超越的速度已经快过被抄袭的速度。对个人库的直接含义是:任何一条"我总结出来的方法",都要假定它有一个不长的领先期。
一个诊断技巧:定期问一句——如果我今天从零开始,还会得出这条吗? 不会,那它可能已经被超越了,只是你没注意,因为你是一路跟着它走过来的。
第三种·地基塌陷:它依赖的条目被撤回了,于是它跟着失效。
这是三种里最危险的一种,因为它是连锁的,而且不会自己报警。
假设你撤回了条目 A。而 B 依赖 A、C 依赖 B。在多数人的操作里,撤 A 就是删掉 A 那一行,然后结束。 B 和 C 照常留在库里,照常被检索、被调用、被依赖——而它们的地基已经没了。
塌陷的三种形态:
· 完全塌陷:B 的成立完全依赖 A,A 一撤 B 立刻不成立 → B 必须一起撤或重建;
· 部分塌陷:B 依赖 A 与 D 两条,A 撤了 D 还在 → B 需要收窄,范围缩到 D 支撑得住的那一块;
· 不受影响:B 只是引用过 A,不依赖它 → 无需处置,但要修改引用。
三种必须逐条判定,不能一刀切。
为什么它比前两种更危险:前两种的失效范围是一条;这一种的失效范围是一片,而那一片可能包括你库里最承重的几条——因为承重条目往往建立在基础条目之上,而基础条目正是最容易被撤回的(它们最老、最早立、最可能漂移)。
前面三节讲的是三种死法,它们有一个共同前提:这条曾经活过。 而库里还有两类条目不满足这个前提,处置也完全不同。它们在多数库里占的比例可能比三种死法加起来还大。
其一·从未活过:立了条,从未被调用过。
它没有过期——因为它从来没有到过在役状态。它可能完全正确、条件写得也齐,只是从立条那天起,一次也没有被用过、被依赖过、被碰撞过。
这不是死,是没出生。 处置也因此不同:
· 不进撤回记录(撤回记录是给活过的东西留的资历,它没有资历);
· 降格回未立条区(第一章第二十二节那个区),标一句"立于某年,未曾调用";
· 不计入库的规模,也不计入撤回。
为什么必须单独处理它:如果把这类条目当作正常条目撤回,撤回记录会被大量"其实什么也没发生"的条目稀释,而撤回率这个读数就废了——它本该反映"活过又被杀掉"的比例。
一个诊断价值:从未活过的条目占比,是"立条太随意"最直接的证据。 这个比例高,说明你在记录一些自己其实用不上的东西——通常是从别处看来的、当时觉得有道理的东西(第一章说的"收藏")。
其二·说不清:不确定还成不成立。
不是漂移(你说不出条件哪里变了),不是被超越(没有更好的替代),也不是被驳倒——就是不确定。你已经很久没用过它,也想不起当初它为什么成立,但直觉上又不愿意撤。
这类条目在真实的库里可能占相当大的比例,而本章前面几节没有为它们设状态。 现在补上:
设一个"存疑"状态:不在役、不撤回、不计入承重、但保留在库中并标注入疑日期。
三条配套规矩:
· 存疑条目不得被依赖——别的条目不许把它列为"本条依赖"。这是最要紧的一条:它防止不确定的东西继续充当地基。
· 存疑不是永久状态:入疑满一年仍未被澄清(既没被重新验证,也没被撤回),自动降格为未立条。
· 澄清的办法只有一个:用它一次。 拿它到一个真实场合去用,成了就恢复在役并补一条来源事件,不成就撤回。
为什么要给一个自动降格的期限:因为"存疑"这个状态天然舒服——它让你既不必扔掉,也不必负责。没有期限,整个库会慢慢滑进存疑状态。
上一节直接推出一条操作纪律,而它是本章最实用的一条:
撤回不是删一行,是一次波及计算。
撤回一条时,必须做三步:
第一步·查依赖。 找出所有"依赖本条"的条目(第一章七件里的第 7 件就是为这个准备的)。如果第 7 件没写,这一步做不了——这是牵连那一件在实践中最重要的用途。
第二步·逐条判定塌陷形态(上一节三种)。
第三步·处置并留痕。 完全塌陷的一起撤,部分塌陷的收窄,不受影响的改引用。每一条的处置都要记,因为下一次撤回可能又会波及它们。
这三步的成本,正是第十七节说的维护成本的主要来源——而且它随牵连度上升。一条撑着二十条的基础条目,撤它一次的成本远高于立它一次。
由此得到一条反直觉的建议:
越是基础的条目,越要在立条时就写清楚成立条件——因为它将来被撤回时的波及成本最高。
多数人的做法相反:基础的东西"显而易见",所以写得最粗。结果是最该被精确的那几条最含糊,而它们撑着整个库。
一个减轻办法:对最基础的那几条,主动做一次"假想撤回"演练——不真撤,只走第一、二步,看会波及多少、多深。这个演练一年做一次,成本很低,而它会暴露你库里最脆的那条链。
一条纪律,防止上面这些变成一场破坏。
撤回的条目不删除,进撤回记录。
留着它的三个理由:
其一·它是你的资历。 第一章说过:失败记录不是污点,是资历。一个库的撤回记录,是它被真正使用过、被真正检验过的唯一外部可见的证据。
其二·它防止重复犯错。 一条被撤回的判断,如果没有记录,几年后你很可能会再想出一遍——因为当初让你想出它的那个直觉还在。撤回记录会告诉你:这条走过,在某某地方失效了。
其三·它可能复活。 尤其是被超越那一种死法(第八节):当替代品在某些条件下不可用时,旧条目回来。此时它不是重新发明,是重新启用——而且带着它当初的失败记录,比第一次更精确。
撤回记录该记什么(四项,一行写完):
条目原文/撤回日期/撤回理由(三种死法的哪一种)/复活条件(若为被超越,写明什么情况下重启;若为漂移或证伪,写"无")。
第四项是这份记录最值钱的地方,也是多数人不会写的一项——因为撤回的时候,人只想着结束这件事,不想着它还会回来。
一个反向的警告:撤回记录不该变成一个第二仓库。如果一个人的撤回记录比在役条目还多几倍,而他还经常去里面翻找,那说明他撤得太随意——真正该撤的东西,撤了就不该常回去看。
"什么时候该撤"这个问题,有一个行当已经系统地做了几十年——图书馆的馆藏除籍。它的方法可以整套借过来,而且比从头设计更可靠。
它的框架叫 CREW,意思是"持续审查、评估与除籍"(由德州州立图书馆整理成手册,早期版本出自上世纪九十年代,后有修订版)。它的第一条主张就与本章一致:
除籍不是一次性的大扫除,是一个持续进行的过程。
而它最好用的是那个三段式公式,写作 X/Y/MUSTIE:
· X = 出版年限(超过多少年的);
· Y = 未被使用的年数(多少年没被借过的);
· MUSTIE = 六条质量判据(下一节详述)。
三者合取才进入待撤。 例如某个门类写作 5/3/MUSTIE,意思是:出版五年以上、且三年没被借过、且符合六条判据中的任一条——才可以考虑撤下来。
这个"三者合取"的设计极其聪明,值得说清楚它防的是什么:
· 只看年龄 → 会撤掉那些老而经典、仍在被使用的;
· 只看使用频次 → 会撤掉那些不常用但关键时刻必需的;
· 只看质量判据 → 会变成主观判断,且工作量无边。
三者合取,把三种误撤同时挡住了。
改造成条目版:
N 年前立条 / M 年未被调用 / 且符合撤回判据任一条 → 进入待撤复检
两个参数怎么定:按你所在领域的变化速度。变化快的(技术、市场、工具相关)取 2/1;变化慢的(关于人、关于方法本身)取 5/3。这个参数本身也该有保质期——领域变快了,参数要收紧。
必须注意"进入待撤复检"而不是"直接撤"。 公式的作用是筛出候选,判定仍然要逐条做(还要走第十节那个波及计算)。把公式当成自动执行的规则,会撤掉一批不该撤的。
这一节要记的分离线:图书馆撤的是副本(书还在世上,只是不在这个馆),所以误撤的代价有限;个人库撤的是唯一记录,误撤的代价高得多。这正是本章坚持"撤回记录不删除"(第十一节)的原因——用留档来补偿这个差别。
图书馆那六条判据的首字母缩写是 MUSTIE。六条里有四条可以直接搬,一条要改造,一条在 AI 时代有了全新的分量(下一节专论)。
| 原判据 | 图书馆的意思 | 条目版 |
|---|---|---|
| M 误导 | 内容已过时或不准确 | 条件已不成立而仍在被引用——对应条件漂移(第七节) |
| U 破损 | 书页残破、无法修补 | 表述已无法被理解——含糊到你自己都读不懂当初写的是什么 |
| S 被超越 | 有了新版或更好的书 | 有了更好的版本——对应第八节,处置是降级不是撤销 |
| T 琐碎 | 无实质价值 | 牵连度为零、且从未被调用——它撑不着任何东西,也没人用过 |
| I 不相关 | 不再符合读者需求 | 已不在你现在的问题域里——你转行了,或者关注点变了 |
| E 别处可得 | 可从别馆借到 | 裸模型已能给出同等质量的答案——下一节专论 |
关于 U 那一条的改造,值得说一句:图书馆的"破损"是物理的,而条目的"破损"是表述的。一条几年前写的条目,如果现在读起来完全不知道当初在说什么、条件里的那几个词指的是哪些情形——那它在功能上已经和一本散架的书一样了。
这一条最容易被漏,因为它不涉及对错:那条判断可能完全正确,只是你已经读不懂它。处置办法是重写而不是撤回——但如果重写不出来(因为你也想不起当初的意思了),那就必须撤,而且要在撤回记录里注明"表述失效",提醒自己以后写清楚些。
六条的用法:与上一节的公式合取使用——先用年龄与调用频次筛出候选,再用六条逐条判定。六条中命中任一条即进入待撤,然后走第十节的波及计算。
六条里的最后一条,在今天有了图书馆界当初不可能预见的重量,值得单独一节。
图书馆的原意:这本书别的馆有,读者需要时可以调借,所以我们不必占架位。
条目版的意思是:这条判断,裸模型已经能给出同等质量的答案——那么把它留在你的个人库里,你得到了什么?
回答是:什么也没得到,而且付了三笔成本。
· 它占位置;
· 它要被维护(复检、连锁检查、碰撞选靶时都要算它);
· 最要紧的一笔:它稀释了你的库。 当一个库里混着大量"模型也能答"的条目,你就无法从库的规模判断自己到底有多少真东西。
这一条直接接上第七章那个落差读数:
一条条目的存在价值,等于它相对于裸模型的落差。落差为零的条目,无论多正确,都该撤出个人库。
而这一条最狠的地方在于:这条判据的阈值会随着模型变强而自动上移。
· 今年模型答不上来的,明年可能答得上;
· 于是每一次基底大版本更新,都应当触发一次"别处可得"的批量复检。
这就是第七节说的触发式保质期的一个最重要的具体形态:基底换代=一次全库的除籍触发事件。
一个必须说的反面:这一条极容易被用过头。"模型也能答"与"模型能答得一样好"是两件事——它可能给出一个形似的答案而缺了你那条的成立条件(因为条件是你自己撞出来的,它没有)。
所以判据要写严一点:
不是"模型能不能给出这个结论",是"模型能不能给出这个结论及其成立条件"。
多数情况下它给得出结论,给不出条件。 而按本书一贯的判断,内容本来就在条件里不在结论里——所以真正符合"别处可得"而应当撤出的条目,比初看上去少得多。
一个库不只有大小,还有年龄分布——条目按立条日期排开,是什么形状。这个形状比总数说明的问题多得多。
三种典型形状:
其一·全是新的(近一年内立的占绝大多数)。
两种完全相反的可能:
· 好的那种:你在做一次彻底的换血,老的都撤了;
· 坏的那种:你根本没有积累——每年立一批,每年不了了之,第二年重新开始。
分辨方法:看撤回记录。 有大量撤回记录 → 是换血;撤回记录为空 → 是没积累(老的不是被撤了,是被遗忘了)。
其二·全是老的(近两年几乎没有新增)。
这一种没有歧义:停产了。 而按第五章的赛跑(入库速度必须大于萃取速度),停产的库会被慢慢掏空。注意这种库的外观最好看——它稳定、完整、每条都经过时间检验。它只是不再长了。
其三·金字塔(新的多,越老越少,最老的那几条最承重)。
这是健康形状,而且它的机制很清楚:新条目多,但其中大部分会在头一两年被撤回或被证明是位移;扛过来的少数进入承重层,越老的越可靠——因为它们经过的检验更多。
判据不是"应该是金字塔",而是"应该有形状"。
一个所有年龄段数量差不多的库(矩形分布),说明每一年立的东西都以同样的比例活下来了——这在检验真的发生的情况下几乎不可能。矩形分布通常意味着一件事:没有人在杀。
年龄结构的动态版本,借自人口学里最基本的那件工具。
存活率 S(t):立条 t 年之后仍在役的比例。
取值很简单:按立条年份分组,数每组现在还剩多少。三条曲线值得对照着看:
曲线甲·陡降后平缓(第一年死一半,之后每年只死一点)。
这是最健康的形状。 它说明:立条门槛不高(所以第一年淘汰多),而扛过第一年的确实经得起用。这与科研、创业、育种的存活曲线是同一个形状——大量试,快速淘汰,少数活下来。
曲线乙·几乎不降(五年后还剩九成)。
两种可能,都不好:要么立条门槛高到几乎不会错(那说明你只记那些绝对安全的东西,也就是废话),要么根本没有在检验。分辨方法:看这些老条目的抗攻次数(第八章)。抗攻次数为零而存活率极高 → 后一种。
曲线丙·线性下降(每年匀速死掉一批)。
说明淘汰不是由检验驱动的,而是由别的东西驱动的——通常是遗忘或者转行。这不是代谢,是流失。 分辨方法:这些消失的条目,有没有进撤回记录?没有 → 是流失不是撤回。
一条关于阈值的诚实话:上面那些"死一半""剩九成"都是我拍的形状描述,没有任何实测数据支持。真正该做的是先取值,画出自己的曲线,再看它属于哪一种——而不是拿本章的描述去套。
一个几乎没人算过的账:一个人的库能长多大?
限制不是存储,是维护。逐项算:
其一·复检成本,随条目数线性增长。
每条每年复检一次,每次哪怕只花 10 分钟,200 条就是 33 小时——差不多一整周的工作时间,只用来复检。
其二·连锁检查成本,随牵连度增长。
每撤一条要做波及计算(第十节)。牵连越密,撤一条的成本越高。 一个 200 条、平均每条牵连 3 条的库,一次撤回要检查的直接与间接影响可能涉及十几条。
其三·碰撞成本,随承重条目数增长。
按第八章的建议,承重条目要定期碰撞。每场碰撞加上事前声明与事后处置,一小时起。
三项加起来,一个 200 条规模的库,年维护成本在 100 小时上下——每周两小时。这还没算生产新条目的时间。
由此得到一个上限的估算:
对一个业余投入(每周 3–5 小时)的个人,库的可维护上限大约在 100–300 条之间。
这个估算很粗(第三十一节会认下),但它的方向是可靠的:维护成本随规模上升,而可投入的时间不随规模上升。 总有一个点,维护会吃掉全部产能。
过了那个点会发生什么? 不是崩溃,是静默退化:复检开始跳过、连锁检查开始省略、碰撞只挑容易的。库照常变大,而它的每一条都越来越少被真正维护。
这个退化不会报警——账面上一切正常,条目数还在涨。这是本章认为最危险的一种失败,因为它发生在"我做得很好"的感觉里。
上一节那个上限,推出本章最反直觉、也最重要的一个结论。
一个成熟的库不应该继续变大。它应当规模稳定,而内容持续被替换。
理由有两层:
第一层(算术的):规模有可维护上限(第十七节)。超过之后继续增加,等于用维护质量换条目数量。
第二层(更根本的):规模不是资产,份量才是。 第一章给过:份量 = 牵连度 × 抗攻次数。一百条口号不如五条被打过的判断——而后者的规模只有前者的二十分之一。
所以成熟形态的三个特征:
· 总数稳定(进出大致相抵);
· 平均份量上升(新进来的比出去的更承重、更抗打);
· 换血持续发生(每年有相当比例被替换)。
这与生物学那个类比恰好对上:一个成年人的体重稳定,而他身上的细胞在持续更换。体重不变不等于什么都没发生,恰恰相反——它意味着代谢正在按该有的速度进行。
这个结论的实践含义很具体,而且会让很多人不舒服:
如果你的库还在稳定变大,那说明你要么还年轻(未到上限),要么没有在杀。
而多数人属于后者。 分辨方法在下一节。
一个必须澄清的地方:稳态不适用于起步阶段。一个刚开始的库当然应该快速变大——第十五节那个金字塔的底座就是这么来的。稳态是成熟形态,不是起步形态,把它用在起步阶段会扼杀积累。
区分"稳态"与"停滞"的那个读数。
换血率 r = 本期被替换的条目数 ÷ 期初条目数
其中"被替换"包括三种:撤回、重写(表述失效后重立)、以及被更好的版本取代。
判读,与总数结合看:
| 总数 | 换血率 | 状态 |
|---|---|---|
| 稳定 | 高 | 稳态——健康的成熟形态 |
| 稳定 | 低 | 停滞——什么都没发生 |
| 上升 | 高 | 成长期(起步阶段应当如此) |
| 上升 | 低 | 肿胀——只进不出(最常见) |
| 下降 | 高 | 大清理(可以,但要看清理之后能不能长回来) |
| 下降 | 低 | 萎缩——停产且在流失 |
这张表是本章最实用的一张。 它说明一件事:总数这个数字单独看毫无意义——同一个"总数稳定",可能是最健康的状态,也可能是最停滞的状态,分辨全靠换血率。
换血率的合理区间是多少? 我不知道,没有数据。但可以给一个方向性的判断:
· 换血率为零是红灯,无论总数如何——它意味着这段时间里没有任何一条被认为需要替换,而这在一个真正被使用的库里不可能发生;
· 换血率过高(比如超过一半)也可疑——那说明立条太随意,大部分东西活不过一年,应当抬高立条门槛而不是继续换。
取值周期建议按年,不按季度。 季度太短,很多条目还没到显出问题的时候。
把前面的读数组合起来,可以给三种最常见的库画像并开处方。这一节是全文最实用的部分。
画像一·仓库型(最常见)
读数特征:总数持续上升、换血率接近零、位移占比高、年龄分布呈矩形、老条目命中撤回判据的比例极高。
这就是序里那位师傅。 它的欺骗性在于:每一项单独看都不像问题——总数在涨是好事,没撤回说明没犯错,条目按年份均匀分布看起来很稳定。
处方(按顺序):
· 先做第二十七节那个下午的最小实测——不实测,你不会相信自己的库有多少该撤的;
· 不要一次性大清理(第三十节那个误用),改为每季度处理一个门类;
· 先补第 6、7 两件(保质期与牵连)——没有它们,代谢在机械上就做不了。
画像二·标本型
读数特征:总数稳定、换血率也接近零、存活曲线几乎不降、抗攻次数普遍为零。
这一种最容易被误认为是稳态(第十九节那张表就是为分辨它而做的)。它与稳态在总数上完全一样,区别只在换血率。
它的成因通常是:这个人已经不再用这个库了。库停在了他停下的那一天,而它看起来完好无损。
处方:不必整理,先回答一个更前面的问题——这个库还要不要用。 要用,从最承重的三条开始碰撞(第八章),让它重新动起来;不要用了,整体归档比逐条维护更诚实。
画像三·流水型
读数特征:总数波动、换血率很高(超过一半)、存活曲线陡降且不平缓(第二年、第三年还在大量死)、位移占比低。
这一种是真的在动,但动得不健康:条目活不过两年,说明立条门槛太低——大量还没成形的东西被当成条目立了进去,然后一批批死掉。
它的代价不是浪费,是信噪比:库里始终混着大量半成品,你无法从库中找到可靠的东西。
处方:抬高立条门槛,不是降低换血率。 具体做法是把大部分东西留在未立条区(第一章),等能说出边界了再立条——这会让总数下降而存活率上升,两个数一起改善。
三种画像的共同提示:没有一种能靠"更努力地记录"改善。 仓库型要杀,标本型要动,流水型要慢——三种处方里没有一种是"多记一些"。
最直接的反驳:你说成熟的库不该变大——这听起来像是在给不再进步找一个体面的名字。 一个真正在长的人,为什么不能既保持质量又不断增加?
这一条必须认真对待,因为它有一半是对的。
对的那一半:稳态确实可能是停滞的伪装。上一节那张表就是为了防这一点——总数稳定而换血率低,那就是停滞,不叫稳态。两者在总数上完全一样,在换血率上截然不同。
不对的那一半:认为规模可以无限增长而质量不降,这在算术上不成立(第十七节)。维护成本随规模上升,可投入时间不随规模上升。 一个人要么承认上限,要么在到达上限后接受静默退化——而后者不会有任何提示。
但这个反驳逼出一个我原来没写的区分,应当补进来:
规模上限是对一个人而言的。一个小共同体的上限更高,因为维护成本可以分摊。
按第二章的判断,这个形态的最小可运行形态更可能是五到十五人的小共同体而不是个人。在那种规模下,可维护的条目数可以到一千量级——因为复检与连锁检查可以分工。
所以准确的说法是:稳态是"给定维护能力下的"稳态。 维护能力提高(加人、加工具、加自动化),上限就上移,库可以再长一段。但对任何固定的维护能力,上限都存在,而且到达之后必须转入换血。
这个修正让本章的主张变弱也变准:不是"成熟的库不该变大",是"库的规模由维护能力决定,而不是由你想记多少决定"。
第二条反驳:你今天撤掉的,可能三年后正好用得上。知识的价值往往在很久之后才显现,而撤回是不可逆的。
这一条本章有现成的回应,但回应之后还剩一个真问题。
回应:撤回不是删除(第十一节)。撤回的条目进撤回记录,带着撤回日期、撤回理由与复活条件。尤其是"被超越"那一种死法,本来就该写明复活条件。
所以严格地说,本章没有主张任何东西被销毁——它主张的是下架:从在役状态移到记录状态。在役与在档的区别是:在役条目会被调用、被依赖、被维护;在档条目不会。
但回应到这里还剩一个真问题,必须承认:
在档的东西,实际上很难被想起来。
一条进了撤回记录的条目,三年后即使真的重新适用了,你多半不会想起去翻它——因为让你想起它的那个触发点,恰恰是你已经不再拥有的那个思路。
这个问题的部分解法有两条,都不彻底:
其一·写复活条件时,写成可触发的形式。 不写"以后可能有用",写"当某某条件重新出现时启用"——这样它就与第七节那个触发式保质期挂上了钩,有机会在条件重现时被翻出来。
其二·撤回记录也要定期翻。 建议一年一次,与年度复检同批做。成本不高,因为撤回记录应当远小于在役库(若不是,说明撤得太随意,见第十一节末)。
不彻底的部分留在账上:会有一些东西被永久丢失,而你不会知道丢了什么。 这是代谢的固有代价——任何一个会杀东西的系统,都会误杀。 本章认为这个代价小于不杀的代价(那会让整个库慢慢失去可信度),但这是一个判断,不是一个证明。
第三条反驳:判定一条是否该撤,靠的还是你自己。而人最不愿意撤的,恰恰是自己投入最多、最引以为傲的那几条——它们往往也是最老、最可能过期的。
这一条是三条里最难回应的,而且它有一个具体的形状:沉没成本会让最该撤的东西最难被撤。
能做的有四条,效力递减:
其一·用公式筛,不用感觉筛。 第十二节那个三段式公式的最大价值就在这里——它把"该不该考虑撤"这一步从判断变成了机械筛选。你仍然要逐条判定,但候选名单不是你挑的,这挡住了"我不去想它就不用撤"这条最常见的逃避路径。
其二·让外部来提名,自己来处置。 这与第二章那条线一致:推翻权公有,撤回权私有。 别人可以指出"这条看起来已经不成立了",进入待处置;处置由你做,但必须留痕(接受/不接受+理由)。
其三·看拒绝率。 如果外部提名的待撤条目里,你拒绝了绝大部分——那个比率会暴露你(第八章的拒绝率)。这不能强制你撤,但它能让你看见自己在做什么。
其四·假想撤回演练(第十节末)。不真撤,只算波及。对最引以为傲的那几条做一次,你会发现两件事之一:要么它确实撑着很多(那它值得那个位置),要么它其实什么也没撑着,只是你喜欢它。
四条都用上,仍然挡不住一个铁了心不撤的人。 本章对此没有解法——这是这套东西建立在自律之上的部分,而自律没有替代品。 能做的只是让不自律的后果变得可见。
生长与检验是两件事,但它们必须咬合。咬合点在三处:
其一·碰撞产出条件,条件驱动收窄。
第八章末尾那句判据在这里回收:一个季度下来一条条件没改,那这一季的碰撞全是零。 反过来说——碰撞的产出,正好是生长的输入。 没有碰撞的库,第一节判据三(有代谢)无从满足。
其二·选靶按份量,而份量随生长变化。
承重条目会变——新条目接进来,某些老条目的牵连度会上升。所以碰撞的选靶名单要随生长更新,不能一年用一份。 建议每季度重排一次。
其三·撤回触发新的碰撞需求。
第十节那个波及计算里,被判为"部分塌陷需要收窄"的条目,收窄之后应当重新碰一次——因为它的成立条件变了,原来的抗攻记录不完全适用了。多数人会跳过这一步,于是库里存在一批"名义上抗过攻,实际上抗攻记录对应的是旧版本"的条目。
一条合并的实践建议:把年度复检、除籍筛选、碰撞选靶三件事排在同一个时间窗里做。它们共享同一份份量排序与同一份年龄数据,分开做会重复三遍同样的清点。
把全文的动作排进日历。分散做比集中做省力,而且集中做会退化成一年一次的大清理(第三十节那个误用)。
每季度(半天)
· 跑除籍筛选:三段式公式出候选名单(第十二节)——这一步可交给机器(第二十五节);
· 逐条判六条判据(第十三节),命中的进待撤;
· 对待撤条目做波及计算(第十节三步),逐条处置并留痕;
· 重排份量顺序,更新下一季的碰撞选靶名单(第二十三节接口二);
· 取三个读数:换血率、净生长率、应撤未撤存量。
每年一次(一天)
· 画年龄分布与存活曲线(第十五、十六节)——一年画一次足够,季度画看不出变化;
· 翻一遍撤回记录,看有没有条目的复活条件已经满足(第二十一节);
· 清理存疑区:入疑满一年未澄清的,自动降格为未立条(第九之二节);
· 做一次假想撤回演练:挑最承重的两三条,只算波及不真撤(第十节末)——这一步最能暴露库里最脆的那条链;
· 重设除籍公式的参数:领域变快了就收紧 X 与 Y(第十二节)。
每次基底大版本更新时(触发式,两小时)
· 跑一遍"别处可得"复检(第十四节):哪些条目现在裸模型已经能连条件一起给出?注意判据要严——不是"能给出结论",是"能给出结论及其成立条件"。
一条关于顺序的经验:第 5 步(取读数)要放在处置之后,不能放在处置之前。先取读数再处置,人会不自觉地为了让数字好看而调整处置——这是所有自评体系的通病,排一下顺序就能挡掉大半。
总时间账:四个半天加一天加两次触发,一年约 25–30 小时。对照第十七节那个 100 小时的维护成本估算,这份日程只覆盖代谢部分,不含复检与碰撞本身。
如果时间只够做一件事,做第 3 步(波及计算)。 因为它是唯一一件做不了就会导致连锁失效的——其余各步做不了,损失是渐进的;这一步做不了,损失是成片的。
生长这一层依赖条目那一层的哪几件(第一章七件):
| 七件 | 在生长里的用途 |
|---|---|
| 1 主张 | — |
| 2 成立条件 | 收窄的对象;漂移判定的依据 |
| 3 来源事件 | 判断是"生长"还是"位移"的凭据(抄来的不算长) |
| 4 失败记录 | 抗攻次数的来源,进而决定份量 |
| 5 归属 | 撤回权在谁手上——没有它,撤不动 |
| 6 保质期 | 除籍公式里的年龄参数;触发式复检的触发点 |
| 7 牵连 | 波及计算的全部依据——没有它,第十节做不了 |
这张表说明一件事:七件里的第 6、7 两件,在条目那一层看起来最像可有可无的形式要求,到了生长这一层却是承重的——没有第 6 件就没有除籍触发,没有第 7 件就无法撤回。
由此得到一条给第一章的补充:如果一个人只打算立条不打算维护,那第 6、7 两件确实可以省;但省了它们的库,几年后会无法代谢。 而无法代谢的库,按本章的判据,就不是活的。
延续第一章那张分工表,落到生长这一层。
能做,而且应当交给它做的三件:
其一·除籍候选筛选。 第十二节那个三段式公式是纯机械的(年龄、调用记录、判据命中),完全可以自动跑,每季度出一份候选名单。 这一件人做既慢又容易漏掉自己不想看的那些。
其二·波及计算。 撤一条时找出所有依赖它的条目——这是人力最不愿做、也最容易漏的一件,而它是纯图遍历。
其三·位移检测。 判断一条新条目能不能由旧条目重构(第三节判据一)——让它拿着旧条目试着重构新条目,重构得出来的就是位移。这一件人几乎做不了,因为人对自己新写的东西有天然的新鲜感。
不能做的两件:
其一·判定该不该撤。 筛选可以自动,判定不行——因为判定依赖你知道这条现在还成不成立,而那需要你在场的经验(第一章的第 3、4 件)。
其二·承担撤错的后果。 撤回权私有的理由在这里同样成立:撤错了要由一个会疼的主体承担,否则撤与不撤没有分别。
一条值得指出的不对称:AI 在生长这一层能做的事,比它在立条那一层能做的更多。因为生长的多数动作是遍历、比对、按规则筛选——这些正是它强的地方。
而这条不对称有一个直接的实践含义:很多人的库之所以不代谢,不是因为不知道该代谢,是因为代谢的机械工作量太大。 那部分工作量现在可以被拿掉——代谢的门槛比过去低了很多,而这正是这个形态在今天才可能的原因之一。
把这一章讲给不做知识工作的人听,用一个衣柜。
一个从不扔衣服的人的衣柜,会经历三个阶段:
第一阶段:东西越来越多,但还找得到常穿的那几件。感觉是"我很有准备"。
第二阶段:常穿的那几件被埋进去了,每次找要翻很久。于是他开始只在最外面那一层挑——衣柜的实际可用容量,缩小到了最外面那一层。
第三阶段:他记不清里面有什么了。买了重复的,因为不知道自己已经有;穿不到旧的好东西,因为找不到。 衣柜看起来很满,实际能用的比一个只有二十件衣服的人还少。
一个知识库的三个阶段完全一样,只是没有物理空间提醒他。衣柜会挤到关不上门,库不会——它可以无限地看起来很好。
这个类比里最要紧的一句:
第三阶段的人,不是"东西太多",是"不知道自己有什么"。
而这正是序里那位十五年的师傅的处境——他能翻出七八条,却分不清哪几条早该扔掉。
衣柜的解法人人都知道:每季度整理一次,规矩也很朴素——
· 一年没穿过的(未被调用);
· 破了补不好的(表述失效);
· 有了更好的替代(被超越);
· 已经不合身了(条件漂移)。
这四条就是第十三节那六条判据的一半,而且是几百年来所有人都在用的。
唯一的差别在最后一句:衣服扔了就扔了,而条目要留档——因为条目可能会复活(第十一节),而衣服不会。
顺带说清那个反直觉的结论:一个衣柜整理得好的人,他的衣柜不会一年比一年大。它稳定在一个数量上,而里面的衣服每年都在换。没有人会因此说他"停止进步了"。
六个读数,前三个必测:
| # | 读数 | 定义 | 判读 |
|---|---|---|---|
| 1 | 换血率 r | 本期被替换的条目 ÷ 期初条目 | 为零是红灯;与总数变化合看(第十九节那张表) |
| 2 | 净生长率 G | (已接入的不可还原新增 - 新增应撤未撤)÷ 期初承重条目 | 旗舰读数;季度取值,滞后一季算接入度 |
| 3 | 应撤未撤存量 | 已判定应撤但未处置的条目数 | 这是负债,不是中性存量 |
| 4 | 存活曲线 S(t) | 立条 t 年后仍在役的比例 | 陡降后平缓=健康;几乎不降=没在检验 |
| 5 | 年龄分布形状 | 条目按立条年份的直方图 | 矩形分布=没有人在杀 |
| 6 | 位移占比 | 可由旧条目重构的新增 ÷ 全部新增 | 过高=在原地把旧东西重说 |
最小实测(一个下午,不需要工具):
· 列出近一年新增的所有条目,逐条问:"这条能不能用我一年前就有的东西推出来?"——算位移占比;
· 列出近一年撤回或重写的条目,除以期初总数——算换血率;
· 按立条年份数一遍,画个直方图——看年龄分布形状;
· 随机抽 10 条三年以上的老条目,逐条问第十三节那六条判据——看有几条命中。
第 4 步通常是最刺激的一步。 多数人会发现:三年以上的老条目里,命中撤回判据的比例远高于自己的预期——而它们一直好好地待在库里,还在被引用。
本章没有做这四步中的任何一步。 全文所有关于比例、形状、阈值的说法全部是机制推理,没有一个数据支持——第三十一节正式认下。
一|图书馆的馆藏除籍(CREW 方法与 MUSTIE 判据)。这是本章最贴切、也借得最多的一家。
第十二、十三节的公式与六条判据全部来自这里,已在正文注明。分离线两条:其一,图书馆撤的是副本(书还在世上,只是不在这个馆),个人库撤的是唯一记录,误撤代价高得多——本章用"撤回记录不删除"来补这个差;其二,图书馆的判据面向读者需求,条目版面向成立条件——"是否还有人借"与"是否还成立"是两回事。〔已实搜核验:CREW 的含义与来源、三段式公式 X/Y/MUSTIE 的用法、MUSTIE 六条的原始定义。〕
二|生物学的新陈代谢与细胞凋亡。 本章第二节那句承重命题借了它的形象。必须写清的分离线:这是一个类比,不是一个论证。 生物体的凋亡由基因程序控制,知识库的撤回由人的判断控制——前者的可靠性来自机制,后者的可靠性来自自律(第二十二节承认这一点无解)。任何试图从生物学推出"知识库应当如何"的论证都不成立;本章只借它的形象,不借它的权威。
三|人口学的存活分析与生命表。 第十六节那条存活曲线直接借自这里。分离线:人口学的存活曲线描述的是不可控的死亡(衰老、疾病),而条目的"死亡"是被决定的——所以本章的存活曲线更接近产品的淘汰曲线而非人口的生命表。这个差别很要紧:它意味着曲线的形状反映的是你的杀伐标准,不是外部规律。〔按通行表述引述,未复核。〕
四|软件工程的技术债与重构。 占了"未处理的旧东西是负债而非中性存量"这一格——第六节那个负债项与技术债是同一个思路。 分离线:技术债的成本是可运行的(代码不改会越来越难改),条目的成本是认知的(过期条目会被当作依据)。而后者更隐蔽,因为代码会报错,条目不会。〔常识性判断,未做文献核验。〕
五|生态学的干扰与演替。 占了"适度的扰动优于零扰动"这一格——对应本章"换血率过低与过高都不好"(第十九节)。分离线:生态学的干扰来自外部(火、风、洪水),本章的撤回来自内部决定。同样是那条"机制 vs 自律"的分界。〔按通行表述引述,未复核。〕
六|知识老化与文献半衰期研究。 占了"知识有可测的老化速度"这一格。分离线:那一路测的是公共知识的引用衰减(一篇论文多久不再被引),本章测的是个人条目的在役状态。两者不可互推——一条早已无人引用的公开知识,可能在你的具体条件下仍然成立。〔按通行表述引述,未复核。〕
七|Popper 一路的知识增长观(猜想与反驳)。 占了"知识通过淘汰错误而增长"这一格,与本章第二节高度一致。分离线:那一路的淘汰发生在公共领域(理论被公开反驳),本章的淘汰发生在个人库内部且不必公开。这个搬迁的代价已在第八章算过(攻深上限 D*=3)。〔按通行表述引述,未复核。〕
八|库恩一路的范式更替。 占了"整体结构的替换而非逐条修补"这一格。分离线:那一路描述的是共同体层面的结构替换,本章处理的是个人库层面的条目代谢。但有一处值得借而本章没有展开:一个库也可能需要整体重建而不是逐条撤回——当地基条目大面积塌陷时,逐条处置的成本会高于重建。 本章没有给出这个临界点,是一处缺口。〔按通行表述引述,未复核。〕
九|遗忘的心理学研究。 占了"人会自动丢失记忆"这一格。分离线:遗忘是被动流失且不留痕(第十六节那条曲线丙),本章的撤回是主动的且留档。两者的区别正是本章与"任其自然"的区别——多数人的库实际上是靠遗忘代谢的,而遗忘不区分该留的和该走的。
十|自家前面各章(同作者,同日)。 本章第二十三、二十四节是与第六、七篇的接口。全书各章同源同日,不能互相当作独立证据。
没有被占的两处(本轮实搜未见等价物):
· 把"应撤未撤"作为负债项计入生长率,以及由此得到的净生长率 G;
· "成熟的库应当规模稳定而持续换血"这个结论,以及区分稳态与停滞的换血率读数。
一(打击范围:全文的核心结论)。 若长期跟踪表明,持续变大而不代谢的库,与规模稳定持续换血的库,在产出质量上没有差异,则代谢没有价值,第二、十八节作废,全文降格为一种整理偏好。这是最根本的一条,也是最难测的。
二(打击范围:第十七、十八节的上限论)。 若维护成本被证明可以随规模亚线性增长(例如自动化把复检与波及计算的成本压到接近零),则规模上限大幅上移,"成熟的库不该变大"这个结论失效。这一条我认为相当可能发生——第二十五节已经说了 AI 在这一层能做的比在立条那一层更多。它一旦发生,本章最反直觉的那个结论就作废了。
三(打击范围:第三节的三种增长)。 若"位移"被证明与"生长"在长期产出上等价——即把旧东西重新表述一遍,其价值不低于长出新东西——则判据一不成立。
四(打击范围:第九、十节的连锁)。 若实测表明撤回一条的实际波及极小(绝大多数条目的依赖关系很浅),则波及计算是过度设计,第十节那三步可以简化。
五(打击范围:第十二节借来的公式)。 若三段式筛选在条目上误报率极高(筛出的候选绝大多数不该撤),则借用失败,须重设参数或改用别的筛法。
一条不作废声明:即使以上全部成立,第六节那个"应撤未撤是负债不是中性存量"仍然独立成立——它不依赖任何关于生长速度或规模上限的主张。
假设最强的反驳成立——自动化把维护成本压到接近零,规模上限大幅上移:
· 第十七、十八、十九节全废(上限、稳态、换血率的判读);
· 第二节的承重命题受损但不全废:代谢仍然必要(过期条目仍然是负债),只是不再需要用规模稳定来换维护质量;
· 第三至六节不受影响(三种增长的分辨、判据相乘、净生长率、负债项)——它们与规模无关;
· 第七至十一节不受影响(三种死法、连锁责任、撤回记录)——它们是机制描述;
· 第十二、十三节不受影响——那是借来的成熟工具,不依赖本章任何主张。
所以本章最脆的是它最反直觉的那部分(稳态),而最稳的是它借来的那部分(除籍方法)与最机械的那部分(三种死法与波及计算)。这个分布是诚实的:越是我自己想出来的,越容易倒。
如果本章完全成立,最值得警惕的误用是什么?
把代谢做成一场大清理,然后停下。 一次性地删掉一大批,感觉极好——而按第十二节借来的那个方法,第一条主张就是"除籍不是一次性的大扫除,是持续进行的过程"。
一次大清理之后停下,比从不清理更糟:因为它给了你一个"已经整理过了"的印象,而库会从那一天起重新开始积累。
一、六个读数一个都没测过。 换血率、净生长率、应撤未撤存量、存活曲线、年龄分布、位移占比——取值方法都写了,一次没跑。 全文关于"第一年死一半""五年剩九成""100–300 条上限"的数字全部是我拍的。这一条与前面各章的自曝第一条是同一笔债,而它在本章里更重——因为本章是一篇关于"怎么测量一个库的健康"的文章,而它自己没有测过任何一个库。
二、维护成本那笔账算得很粗。 第十七节那个"每条每年 10 分钟"是我随手设的,没有任何依据。整个上限估算建立在这个数字上,如果实际是 3 分钟,上限就是三倍。
三、"位移"与"生长"的区分在实践中可能远比我写的模糊。 第三节要求"请一个不知情的人用旧条目重构新条目"——而重构成不成功本身是一个判断,两个人可能给出不同结论。我没有给这个判断任何操作化的标准。
四、生物学类比我做了限制,但可能限制得不够。 第二十八节第二家写明了"这是类比不是论证",但全文的语气仍然从那个类比里借了不少说服力——"肿瘤""凋亡""换血"这些词本身就在做论证工作。读者应当把这些词全部替换成中性表述后,重读一遍第二、十八节,看结论还剩多少。
五、库恩那一处缺口我知道而没有补。 第二十八节第八家已写:一个库何时该整体重建而不是逐条撤回,本章没有给出临界点。 这是一个真实的缺口,而且它可能比逐条代谢更重要——因为地基大面积塌陷时,逐条处置的成本会高于重建。
六、第二十二节那条无解我承认得太快。 "自律没有替代品"这句话可能是懒惰的——也许存在制度性的办法(比如把撤回权做成需要两个人共同确认,或者把库交给一个会定期强制清理的流程),而我没有认真设计过。
七、全书各章同源同日,不可互证。
八、利益冲突不可自证。
九、有一层我没有处理:本章假定"该撤"是一个可以判定的事实。但很多条目处在"说不清还成不成立"的状态——不是漂移了,也不是被超越,就是不确定。这类条目该怎么办? 撤了可能误撤,留着又是负债。我没有为它们设一个状态,而它们在真实的库里可能占很大比例。
回到序里那位师傅。
他的问题不在于攒得不够多,也不在于他不够勤奋——他这十五年一天没停过。 问题在于他这十五年只有一个方向。
一个只进不出的库,会经历三件事,而这三件都不会报警:
· 它变大了,所以感觉上是在进步;
· 它混进了越来越多不再成立的东西,而这些东西照常被调用;
· 到某一天,他自己也分不清手上哪些是真的了——而这一天没有任何标志,它是渐渐到来的。
本章全部的主张可以压成一句:
一个库的生命力,不在它记住了多少,在它敢扔掉多少。
这句话在生物学里是常识——健康的组织有凋亡,成年人的体重稳定而细胞在持续更换。它在图书馆学里也是常识——一个馆藏更新的小图书馆,胜过一个堆满过时书的大图书馆。
它唯独在个人知识这件事上,还不是常识。 因为增加是可展示的,删除不是;因为记住感觉像成长,扔掉感觉像损失;因为没有任何人会因为你删掉了三十七条过时判断而称赞你。
而这恰恰是这个形态最难的地方,也是它与"收藏"分道扬镳的那个岔口:
收藏的人问:我又多了什么。
做这件事的人问:我这个月杀掉了什么。
两个问题在第一年区别不大。十五年后,一个人手上是一座仓库,另一个人手上是一套还活着的东西。