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

简介: **摘要**: 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。

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

相关文章
|
11天前
|
开发者 C++
开发者 动机VS自律 孰轻孰重
开发者在追求卓越的过程中,内在动机与自律习惯都起着至关重要的作用。内在动机如同强大的引擎,驱使开发者探索新技术、攻克难题;而自律则像精准的时钟发条,确保代码质量和任务按时完成。两者相辅相成,缺一不可。动机赋予开发者前进的动力,而自律则保障其在面对挑战时不偏离轨道,持续提升自我。对于开发者而言,两者共同作用,才能实现不断成长与进步。
|
30天前
|
定位技术
项目干系人沟通技巧:心理学观点
和项目干系人的有效沟通需明确沟通目标、分析干系人影响力及需求,运用心理学效应如框架效应、社会认同、同理心、互惠原则和锚定效应,以促进项目顺利进行。
46 3
|
14天前
|
人工智能 自然语言处理 算法
“幽灵职位”泛滥:招聘广告背后的真相与求职者的困境
“幽灵职位”泛滥:招聘广告背后的真相与求职者的困境
|
4月前
|
测试技术 UED 开发者
《敏捷测试价值观、方法与价值观》读书笔记(9)
本章节聚焦于非功能性测试,尤其深入探讨了可用性测试的重要性和实施方法。首先,阐述了可用性原则如简洁设计、一致性及高效性等,并强调用户而非开发者才是评判应用易用性的关键。接着介绍了可用性测试的不同技术和环境需求,包括卡片分类、结构化评估等方法,并讨论了测试实验室的具体配置。此外,详细说明了测试过程中的计划、执行、分析阶段,涵盖了从测试目标设定到测试结果优化的全流程。同时,还提供了测试参与者招募标准、测试材料准备及执行过程中注意事项的具体示例。最后,指导如何整合与分类测试结果,以及生成可用性测试报告的方法。
28 0
|
7月前
|
Devops 测试技术 持续交付
软件测试中的敏捷实践:从理论到应用
在软件开发领域,敏捷方法论的兴起已经彻底改变了项目的开发和测试流程。本文将深入探讨如何在软件测试中实施敏捷实践,以及这些实践如何提高产品质量和团队效率。通过引用最新的行业报告、科学研究和统计数据,文章旨在为读者提供一套清晰的指导框架,帮助他们在软件测试过程中实现敏捷性。
110 0
|
7月前
交付成果 提高IT领导力的七大窍门
交付成果 提高IT领导力的七大窍门
|
Cloud Native Go
面试中的自我激励:如何展示你的内在驱动力
面试中的自我激励:如何展示你的内在驱动力
109 0
关于认知(高效能人士的七个习惯,刻意练习,PDCA,GTD)
关于认知(高效能人士的七个习惯,刻意练习,PDCA,GTD)
|
决策智能
博弈论(六)——产品经理从来不做亏本的博弈
博弈论(六)——产品经理从来不做亏本的博弈
123 0
【观点】培养软件工程思想
导读:原文作者changeword在博客园中写了一篇文章《培养软件工程思想》,在他看来,软件工程是一门学问,如何才能培养软件工程思想需要一步一步的去实践出来,以下是作者总结出来的心得。 软件工程是一门研究用工程化方法构建和维护有效的、实用的和高质量的软件的学科。
883 0

热门文章

最新文章