问题驱动设计与领域驱动设计的区别 - abdullin


着眼于真正的问题,解决方案才会有更大的生存和成长机会。我应该做的:研究现实世界,倾听人们的问题,并挖掘它们的背后。然后,在编写太多代码行之前找到验证我的解决方案的方法。
如果过多地关注工程,则可能忽视更多地专注于识别问题和迭代地制定解决方案。
编码应该在解决方案设计之后开始。设计应该在与人交谈并确定问题之后开始。所有三个都应该迭代。
围绕“产品设计”和“客户开发”有一个巨大的研究领域。
 
领域驱动设计
领域驱动设计 (DDD) 适用于已存在了的领域。顾名思义,它由领域驱动。我们与利益相关者和领域专家合作以达成共识、阐明地图、管理复杂性并提供解决方案。
用马可的话来说:
领域驱动设计社区的主要焦点是试验、开发和采用方法来了解客户的目的空间和所有利益相关者的需求。
映射地图可能不确定,但业务已经存在,并且是可行的。探索是发生在这些已经存在的业务边界内,并且是向内进行的。
从这个角度来看,问题空间就被定义了。DDD 配备了完善的工具,可以在这种环境中解决复杂性并交付业务价值。
DDD 有助于构建可能的最佳解决方案。
 
问题驱动设计
来自比利时 DDD 社区的Tom Janssens表达了这一点:
在 DDD 中,我们倾向于假设客户共享的问题是指定好了的。但是当你经营一家企业时,事实证明这是不正确的......
想象一下,您需要写一本新书、打造一款可持续的产品或协助一家公司探索新的商机。领域不确定。有无数的选项可供选择。有些会是可行的,有些则不会。这是一片混乱,充满了可能性。
问题驱动设计的目的是冒险进入这个全新的“有龙”的领域并建立一个新的可行领域。
“生存能力”可以意味着任何事情:养家糊口、建立声誉、做社会公益、创造大企业。这些是限制条件。
鉴于这些限制,我们与潜在客户交谈,发现他们的问题,并深入研究这些发现。
我们确定并挑选可以以可行方式解决的问题。然后我们形成一个解决方案并找到最短路径来验证它。
我们越早发现我们的方法中的缺陷 - 越好。这意味着,我们可以从现实的愤怒中节省时间和金钱,并开始研究新的问题解决方案。
在早期阶段,我们可以采用精益创业公司的方法、迭代开发、数据驱动的产品设计和进行客户访谈的艺术。
如果一切顺利——我们可能刚刚在一个全新的领域中雕刻了一个现实。领域驱动设计可以帮助它进一步发展。
 
Tom Janssens 的Virtual Sales Lab就是一个很好的例子。该产品是关于构建利用 3D 技术的销售和营销工具。域本身在十年前并不真正存在。它现在正在增长。在接下来的十年中,3D 销售可能会发展成为一个众所周知的成熟领域。
为什么会有这样的乐观?当前的 3D 解决方案是不是有点难看?年轻一代更喜欢通过 3D 感知世界。Fortnight 的大型派对,各个年龄段的孩子都在玩 Minecraft,技术进步是问题空间内的明显迹象,表明了不可避免性。解决方案没有定义,但问题空间内的深层电流会导致某些事情。