不应被忽视的“领域愿景陈述”

简介: **摘要**: Domain Vision Statement(领域愿景陈述,以下简称DVS)是《领域驱动设计》一书的一种模式。在中台上下文下,DVS具有重要的意义。每个中台领域都应该创建自己的明确的DVS、达成共识,并且在认知发生更新时及时演进。## 为什么DVS是重要的我们先来看一个场景。>行业PD正在和3个领域的平台PD们在讨论一个业务需求的产品方案。看起来现有的产品能力不足以支撑

摘要: Domain Vision Statement(领域愿景陈述,以下简称DVS)是《领域驱动设计》一书的一种模式。在中台上下文下,DVS具有重要的意义。每个中台领域都应该创建自己的明确的DVS、达成共识,并且在认知发生更新时及时演进。

为什么DVS是重要的

我们先来看一个场景。

行业PD正在和3个领域的平台PD们在讨论一个业务需求的产品方案。看起来现有的产品能力不足以支撑这个需求。这时候,行业PD提出,只要往一个名为“库存”的产品中增加一个功能,就可以满足这个业务需求。
那么,库存产品该不该承接这个新功能呢?在场的负责库存产品的平台PD感觉是可以的,会议似乎达成了一致。但是,等到平台PD和技术同学去讨论方案的时候,技术同学提出,这个新的功能要求的是一个市场侧的属性,库存域不应该感知到市场侧属性,那么,究竟这个功能该不该做呢?

这类场景是业务方案设计中的典型问题。经常出现的情况有:

  • 涉及多域的需求,参与讨论的每个域都觉得自己不该做
  • 涉及多域的需求,参与讨论的两个及以上的域觉得应该由自己来做
  • 具体到某个特定的域,参与讨论的产品同学和产品负责人的意见不一致,或者产品的意见和技术同学的意见不一致,等等。

这一类问题的本质,是缺乏了领域使命的显式定义。

领域愿景陈述

领域愿景陈述(DVS)是Eric Evans在其经典名著《领域驱动设计》(蓝皮书)中提出的一种模式。它出现在蓝皮书的这个位置:

在Eric Evans本人撰写的《DDD Reference》中,DVS的解释如下:

它的核心目的很简单:一个领域应该聚焦。当需要了解领域的能力时,或者领域向前演化时,应该可以一目了然地知道什么是这个领域的核心价值和边界,什么不是。

我根据自己的经验,总结了高质量DVS的一个检查单:

  • 必须有一个领域愿景陈述。大多数时候,一句话附加一些必要的说明就够了。
  • 领域愿景陈述应该能说明该领域的显著特点和价值。
  • 领域愿景陈述需要服务于/平衡不同的关注点。
  • 领域愿景陈述应该是集体共识。
  • 尽量早的写下愿景陈述,越早越好。

尽管DVS很重要, 但是,这个模式在DDD中似乎并没有得到应有的注意。许多人有意无意地忽略了这个模式的存在。例如,红皮书《实现领域驱动设计》并没有提及该模式,而搜索互联网,涉及到DVS的概念也是非常罕见。甚至Eric Evans本人撰写的DDD Reference都没有把这个概念体现在第vii页的Domain Lanaguage Patterns图中。确实,如果只是在简单组织,或者简单场景中,领域愿景陈述或许是不言自明、口耳相传,有没有显示的说明并不那么重要。但是,在复杂组织和复杂系统中,DVS确实是一个不可或缺的概念。

在中台组织中应用DVS

中台往往涉及很多域和很多产品。为了避免在本文一开始所讲述的场景,中台组织需要为每个域,以及每个产品明确一个DVS。

这个陈述在开始时未必需要准确,但是,它应该是后续讨论的基础。在再次出现类似于领域边界的问题时,就可以在这个陈述的基础上精化。通过长期演进,领域的边界和产品的使命可以得到澄清,从而提升问题讨论的效率,也能保障产品演进的方向。

相关文章
|
7月前
|
Cloud Native Go
面试中的自我激励:如何展示你的内在驱动力
面试中的自我激励:如何展示你的内在驱动力
54 0
|
5月前
|
SQL 缓存 开发工具
CodeReview对于一个企业的重要性
odeReview 是开发过程不可或缺的重要一环,如果将代码发布比作一个工厂的流水线,那么 CodeReview 就是流水线接近于终点的质检员,他要担负着对产品质量的保障工作,将“缺陷”从众多的“产品”中挑出,反向推动“生产方”改进生产质量。
37 1
|
10月前
关于认知(高效能人士的七个习惯,刻意练习,PDCA,GTD)
关于认知(高效能人士的七个习惯,刻意练习,PDCA,GTD)
|
人工智能 架构师 程序员
十年老友记 | @边城:恰当的编程是会产生幸福感的
十年老友记 | @边城:恰当的编程是会产生幸福感的
140 0