第三部分 — 信任层的九项原则
原则六 — 以设计求诚实
大多数软件营销材料里都有一个叫"路线图"的章节,它实际上 是一个叫"愿望"的章节。这个行业的标准姿态,是模糊什么已经 存在、什么还在计划、什么只是想象。信任产品承受不起这种 姿态——不是出于道德原因,而是因为它的全部价值主张,就是 把已核验的事实与未核验的声明可靠地分开。一个对自身都夸大 其词的报告平台,也会对你的数据夸大其词;买家会立刻做出 这个推断,而且这个推断是对的。
所以:诚实不是挂在墙上的价值观宣言。它是一门带有工件的 工程纪律。
诚实账本
这门纪律有一个具体的中心:每个严肃的系统都应当公开维护 一份账本,把三种状态分开——今日已实现、有意不做、以及 路线图。这不是营销页面;它是一份以对待代码同等的严谨 写就的文档,因为阅读它的人,正在决定是否把一个申报托付 给这个系统。
第二类最能显露品格。"有意不做"的条目会写明限制以及 理由:这个后端需要沙箱拿不到的网络密钥;这条路径路由到 人工复核,因为任何无人值守的系统都不该批准自己的输出; 这段验证范围排除了那个组件,因为它的失效模式只是表面 问题。一条连同理由一起披露的限制,是在建立信任。同一条 限制若是客户在生产环境中自己发现的,则是在终结信任。
不能说谎的标签
账本之外,诚实还必须是结构性的——嵌入输出本身之中:
- 草稿输出标注为草稿。 任何经由无人监督路径产生的 东西——没有人工批准过的生成代码、由新接入的引擎渲染的 表格——都把它自己的状态写在脸上:写进清单,也写进 工件,直到有人签字为止。不标注的草稿,会在某人第一次 转发文件的那一刻,把自己洗成交付物。
- 未核验不等于通过。 每个数字都携带或继承自己的核验 状态;"无可比较"是一种可见、可计数的状态,永远不会被 悄悄等同于绿色通过。
- 合成数据的来源就是合成。 用生成数据跑的演示必须在 输出本身中说明这一点,因为一张看起来逼真的演示表格, 一旦脱离上下文被拍下来,就会变成一个伪造的临床结果, 并拥有自己的生命力。
演示陷阱
这个领域最强的诱惑,是演示一个九成真实的能力。那个悄悄 用手工补完最后一成的演示,那张只在其创造者机器上能跑的 功能截图——这些都是会复利的小谎,因为此后的每一次对话, 都会以它们为基准来校准。诚实演示的纪律是:展示活系统, 用公开数据或合成数据,让本次运行的清单清晰可见,并把 缺口当作缺口讲出来。这样卖得更慢,但采购会快得多。
它同样有复利回报。一个公开账本从未被抓住夸大的团队,会 积累起某种罕见而珍贵的东西:被善意推定的资格。在受监管 的市场里,这就是资产。
检验。 打开任何一家厂商(或你自己的)系统文档,
问一问:"这里面哪一句话,是工程团队自己都会说今天 并不成立的?" 如果你能很快找到一句,那这份账本已经 坏了。如果文档让这个问题难以问出口——没有范围声明、 没有限制说明、没有未做清单——那这也是一种回答。