选择能改变决定的最小可测试切片
小只有在能证明重要事情时才有用。无法改变下一步决定的小构建,只是不完整。
类型: Learn + Build 语言: Python(标准库) 前置要求: 阶段 14 第 49 课 预计时间: ~65 分钟
学习目标
- 用一个切片所证明的假设来定义它。
- 平衡结果价值、不确定性降低、工作量和后果。
- 选择可逆证据,而不是过早承诺生产环境。
- 拒绝遗漏工作流风险部分的切片。
纵向意味着端到端证据
有用的切片穿过观察结果所需的最小真实工作流。它可以在用户、数据、时长和能力上很窄;但不应删掉你正要测试的那项不确定性。
例如:
- 对十起真实事故做只读回放,可测试服务识别和操作员信任。
- 使用合成数据的精致仪表盘也许能测试理解,却不能测试数据可行性。
- 生产自动修复器同时测试一切,后果却不可接受。
先定义所需证明
取风险最高的未决假设,将它们转为所需证明集合。候选切片只有覆盖该集合才有资格。
然后按以下维度比较合格切片:
| 维度 | 方向 |
|---|---|
| 结果价值 | 越多越好 |
| 降低的不确定性 | 越多越好 |
| 工作量 | 越少越好 |
| 后果 | 越少越好 |
| 可逆性 | 越多越好 |
实验的评分刻意简单,资格门槛比算术更重要。
mermaid
flowchart TD
R[必需证据] --> C1[候选切片 1]
R --> C2[候选切片 2]
R --> C3[候选切片 3]
C1 --> G{覆盖全部证据吗?}
C2 --> G
C3 --> G
G -->|否| X[淘汰]
G -->|是| S[比较单位投入与风险获得的证据]
S --> B[构建一个切片]常见的假最小值
- 只有 UI 的最小值: 去掉了数据和运营不确定性。
- 只有基础设施的最小值: 证明技术可能性,却没有用户价值。
- 只走 happy path 的最小值: 省略了制造大部分风险的例外。
- 演示最小值: 产出有说服力的产物,却没有可复现测量。
- 平台最小值: 在一个工作流赢得资格前先造可复用机器。
增加停止规则
实现前,写下切片失败时怎么做:
- 放弃这个结果;
- 改变目标用户或情境;
- 测试另一种机制;
- 收集更好的证据;
- 进一步缩小权限。
如果每种结果都导向“继续构建”,这个切片就不是实验。
动手构建
实验按所需证明筛选候选项,对合格切片评分,并写入 outputs/slice-decision.json。
bash
python3 code/main.py
PYTHONPATH=code python3 -m unittest discover code/tests -v添加一个只证明一项所需假设的更便宜候选项。即使数值分高,它仍应不合格。
练习
- 为同一结果设计三个后果级别不同的切片。
- 在评分前说明所需证明集合。
- 移除一项能力,同时保留决定性证据。
- 为失败的试点加入停止规则。
- 找出一个应等到切片之后再做的可复用平台组件。
延伸阅读
- Barry Boehm, A Spiral Model of Software Development and Enhancement,了解如何让每个开发周期匹配它必须化解的风险。
- Lenarduzzi and Taibi, MVP Explained: A Systematic Mapping Study on the Definitions of Minimal Viable Product,了解软件产品实践中“最小”和“可行”的歧义。
拿去用
保留 outputs/slice-decision.json。它记录这个切片为何是能改变决定的最小切片。