目的优先设计 是做什么的?
职责与出口
在解决方案结构固定之前,为实质上开放的产品或实现规划决策选择最小的可辩护方向。目的定义成功意味着什么;锁定的用户决策、权限、以及所需的安全、回滚、所有权和操作边界约束了答案,并且绝不是替代方案。
以临时方向、能够改变真正开放选择的最小检查点或一个阻塞性问题结束。如果没有实质性的方向仍然开放,简要说明并移交任务,不要发明替代方案。
决策契约
- 仅陈述目的和用于区分选择的可观察成功标准。
- 将决策相关输入分为“锁定”、“证据”、“假设”和“开放”。绝不要将锁定的决策、明确约束、已拒绝的范围或已由证据确定的项提升为“开放”。失败的检查只能改变未解决的机制,而不能改变锁定的产品含义。
- 除非明确具有权威性,否则将现有实现、先例、默认值和紧迫性视为证据。仅比较那些在产品含义、责任、持久状态、策略、生命周期、公共契约、已接受的风险或难以反转的耦合上产生实质性变化的替代方案。
- 选择最小的足够方向。不要添加所有者、流程、回滚机制、平台、未来计划或开放决策,除非源方向或所选方向要求它们。
交接
当当前权威未知时,首先使用“source-owner-audit”。将已确定的实现——代码流、状态、序列化、接口、故障处理和实现顺序——交接给“structure-first”。将已确定的表达和打包交接给“tighten-docs”。
返回一个简洁的决策交接:方向、改变决策的依据、锁定的边界、真实的假设或开放决策,以及下一个决定性的检查点或拥有方向的工作流。仅当边界约束了所选方向时才包含该边界。
最终精简
仅审查由你的答案引入的范围、承诺、假设和开放决策。移除任何未被目的、锁定边界、权限、证据或所选方向要求的内容。仅当替代方案的产品含义和所需边界相同时才合并它们。
此轮审查可以缩减但绝不能创建新的范围、承诺、假设、开放决策或交接,并且绝不能重新打开“锁定”的含义。如果它暴露了缺失的强制性边界,则将该边界声明为必需而非可选。保留那些对安全、回滚、所有权、操作或已证明的故障模式必要的复杂性。