知识卡片

渐进式建模打破"分析瘫痪"

普通读书笔记卡

内容

问题领域太复杂时,需求分析的开展会遇到”分析瘫痪”这类困难——书中用一个真实的反面案例说明这种困境有多严重:新加坡贷款项目涉及大范围的商业、公司和消费者贷款,融合了从信用卡到大型跨银行公司贷款的大量贷款凭证、以及从调查到完成到后台监测的广泛贷款功能;一家知名大型系统集成公司在该项目上花了两年时间,最后宣布做不下去了。而后来接手的Jeff却成功了,他成功依赖的最佳实践之一正是领域建模——进入项目不到两个月,团队就开始向客户提供可演示的特性,其中大约一个月时间用来做整体对象模型方面的工作。这种”因对关键领域问题理解不足而卡壳或争论不休”的场景在实践中很常见,比如银行系统中客户、账户、凭证的关系一旦因”一本通”“一卡通”这类新概念出现而变复杂,需求讨论就可能一而再、再而三地拖慢分析推进。破解办法是借助领域建模循序渐进地理清领域知识:在需求分析过程中,每当搞清楚一部分领域知识,就把这部分知识建模、并将模型在整个项目组公开,再搞清楚一部分、再建模、再公开——这个过程可以类比”撒上一层土、夯实了,再撒上一层土、再夯实了”的做法,而不是试图一次性想清楚整个复杂领域的全貌再动手。这个策略的核心逻辑是:领域建模把”一次性理解整个复杂领域”这个几乎不可能完成的任务,拆解成了”理解一小块→固化成模型→公开对齐→再理解下一小块”这样一个可以持续推进、随时能看到阶段性成果的循环,从而避免团队在漫无边际的讨论中原地打转。

参考来源

- 位置:《软件架构设计:程序员向架构师转型必备》第7章《领域建模》"7.2.3 分析瘫痪"节(源文件:_epub-src/OEBPS/text00010.html) - 结论依据:原文引用《敏捷软件开发生态环境》中新加坡贷款项目失败案例("一家知名的大型系统集成公司……在该项目上花了两年时间,最后宣布做不下去了")与Jeff成功案例("该团队花了大约一个月时间进行整体对象模型方面的工作")对比,并总结"可以借助于领域建模,循序渐进地理清领域知识",直接支撑本卡片结论。 - 原始内容:新加坡贷款项目是一个巨大的失败……最后宣布做不下去了……我们在需求分析过程中,每当搞清楚一部分领域知识,就将此部分知识建模并将模型在整个项目组公开,再搞清楚一部分领域知识,再建模并将模型在整个项目组公开。