知识卡片

BDUF的三大陷阱与两种变体

结构图卡 · 1958.e.2

内容

预先大量设计(BDUF,项目最初几周或几个月只做设计不做构建)有三大陷阱:好钢没用在刀刃上(设计的内容不是真正的问题所在)、纸上谈兵(图纸设计远不如写代码来得有效验证)、瞎子点灯(大量设计工作最终项目被取消,全白费)。常见的两种变体同样危险:设计臻于完美——团队拒绝在阶段间回溯,坚持把当前阶段做到极致才前进;为建模而建模——团队制作大量详尽模型只因为会做模型,而非模型真能帮到系统本身。但BDUF并非一无是处,对太空系统、辐射装置这类高风险、高安全需求的项目,前期投入精心设计仍然值得,关键是一旦核心风险解决就该转向原型或实现,而不是一路做到底。

结构图:

flowchart TD
    A[预先大量设计BDUF] --> B[好钢没用在刀刃上<br/>设计内容非真正问题所在]
    A --> C[纸上谈兵<br/>图纸设计不如写代码有效]
    A --> D[瞎子点灯<br/>项目取消则设计全白费]
    A --> E[变体:设计臻于完美<br/>拒绝回溯、追求当前阶段极致]
    A --> F[变体:为建模而建模<br/>制作模型因为会做而非有用]

参考来源

- 位置:《恰如其分的软件架构》第5章《建模建议》5.5节《避免预先大量设计》(源文件:_epub-src/OEBPS/text00052.html) - 结论依据:原文列出BDUF的三种危险(好钢没用在刀刃上、纸上谈兵、瞎子点灯)及两种变体(设计臻于完美、为建模而建模),并说明对高风险高安全项目BDUF仍可能是最佳选择,一旦关键风险解决就该转移到原型或实现。 - 原始内容:BDUF的危险包括:好钢没有用在刀刃上……纸上谈兵……瞎子点灯……BDUF包括一些变体,包括设计臻于完美(design until perfect)……另一种变体是为建模而建模。