知识卡片

用逻辑论证证明架构价值高于行为价值的反直觉结论

普通读书笔记卡

内容

业务部门通常认为系统能正常工作比易于修改更重要,开发人员也常常跟随这种态度,但[[软件的两个价值维度行为价值与架构价值]]给出的定义能推翻这个直觉:如果一个程序目前能正常工作、但无法被修改,那么一旦需求变更,它就不再能正常工作,也无法通过修改让它重新正常工作——这个程序的价值最终会归零;反过来,如果一个程序目前不能正常工作、但很容易修改,那么把它改好、并随需求持续演进都会很容易,这个程序就会持续产生价值。这个推论未必能说服所有人(毕竟理论上没有绝对不能修改的程序),但现实中确实存在变更成本远超变更价值、以至于事实上无法更改的系统——这类案例每个从业者都遇到过。更讽刺的是:业务部门嘴上会说”我们当然想要将来能灵活变更需求”,但当某次变更的工作量预估大大超出他们预期时,他们又常常对系统混乱到无法变更的状态感到愤怒——这暴露了业务部门在事前和事后对”架构灵活性”这件事评价标准的不一致,恰恰说明这不该是由业务部门来权衡的事。

参考来源

- 位置:《架构整洁之道》第2章《两个价值维度》"哪个价值维度更重要"(源文件:_epub-src/text/part0010_split_002.html) - 结论依据:原文用"能工作但不能改则价值归零、不能工作但易改则能持续产生价值"的逻辑推导反驳"系统能工作比易修改更重要"的直觉,并指出业务部门在事前轻视灵活性、事后又因变更成本过高而愤怒的矛盾态度,直接支撑本卡片结论。 - 原始内容:如果某程序可以正常工作,但是无法修改,那么当需求变更的时候它就不再能够正常工作了……因此,这个程序的价值将成为0……如果你的预估工作量大大超出他们的预期,这帮家伙通常会对你放任系统混乱到无法变更的状态而勃然大怒。