第一部分 — 基础
信任层命题
把前两章放在一起,一个命题自然浮现。
探索性工作与监管性工作之间的高墙,由缺失的证据筑成。开源生态让 计算变成了免费的,却把证据生产留在了手工状态。行业最受信任的造 证仪式——双人编程——是匠人式的、昂贵的、缓慢的。因此:把证 据工业化的那一层,就是缺失的产品品类,而未来十年,临床软件中 的价值将向那里集中。
把它叫做信任层。它位于下方的计算引擎与上方的人类审评者之间,并 且有一份具体的、可以说出口的职责说明。
信任层的四项职责
重放。每一个交付的输出,都可以从生产那一刻锁定的参照物—— 数据快照、代码版本、环境、参数——逐比特地重新生成。重放是监管 链(chain of custody)的机器等价物。当一个数字在一年后遭到质疑 时,答案不再是一次考古发掘;它是一条命令。
独立重算。对于每一个关键数字,都存在第二条在结构上独立的抵 达路径。不是把程序复制一份再改一改——而是一种不同的推导,最好 出自不同的作者甚至不同的代码库,收敛到同一个单元格。这是双人编 程的灵魂,被保留下来,但被工业化了:比较由机器完成,逐格进行, 遵循显示精度语义,而每一处不一致都变成一条一等记录,而不是一张 便利贴。
溯源。每一个工件——数据集、图形、表格、报告、日志——都携 带一个身份(内容哈希)、一条谱系(它由哪些父工件构建而来)和一 份上下文(谁、何时、哪些版本)。由此形成的有向图就是审计追踪, 只不过它是作为工作的副产物生成的,而不是事后凭记忆写出的。
闸门。这一层有权停线。一次比较失败的报告渲染,产出的不是一 份"大体正确"的交付物;它什么都不产出,外加一份关于第一个不一 致单元格的精确说明。不能说不的信任,只是装饰。
信任层不是什么
它不是质量部门。QA 拥有判断——哪些风险要紧,哪些偏差可以接 受——而信任层的存在,是为这个判断提供完整、快速、诚实的信息。 它也不是监控仪表盘;仪表盘只是观察,闸门负责决定。它尤其不是一 层流程表演。一份无人能通过运行来证伪的文档不是证据;它是一段带 着签名栏的叙事。
这个区分之所以要紧,是因为行业里满是描述信任的工具——验证活 页夹、SOP、检查单——而生成信任的工具相对稀少。描述会朽坏; 生成会复利增长。每一次渲染都让那张图更强,而不是更旧。
为什么是现在
三股力量让这个命题恰逢其时。计算基座已经成熟而且免费,如前所 述。监管者已经与 R、Python 以及可复现生态达成和解——问题不再 是开源工具可否使用,而是如何为它们举证。而行业的人口结构现 实开始咬人:目前亲手搬运双人编程的匠人们,昂贵、稀缺,并且正在 退休,即便市场还在源源不断地产生更多试验。
怀疑者会说,厂商早就在卖"经过验证的平台"了。仔细看看被验证的 是什么:是工具,在安装时,验证一次。信任层验证的是工作, 持续地,在每一次渲染时。验证工具与验证工作之间的差别,就是检验 一台秤与称量一批货之间的差别。
检验。 问任何平台厂商一个问题:"给我看一个已交付的输出, 然后背着我改动它源数据的一个单元格,然后重新生成。"如果这个平 台不能检测并精确报告这一点——单元格坐标、两个值、两条谱系—— 它就不是信任层。它是一个附带文书工作的渲染服务。