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