DDD事件风暴技巧:通过明确规模大小挖掘领域知识 - Nick


如果参加DDD领域发现研讨会,发现洞察力的最有效和最简单的方法之一就是明确某事物的规模或大小。事物的规模会影响其重要性以及我们如何对待它。

将规模明确化可以带来各种见解,比如在哪里可以找到改进产品的最大机会。例如,我们谈论的是由一个员工还是一千个员工执行的手工流程?
"这种情况多长时间发生一次?"、"有多少人执行这个角色?"、"需要多长时间?"这些问题都是将关于规模的隐性假设明确化的类型。

有时,这些问题强调了对规模的不理解。"我们实际上不知道有多少顾客放弃他们的购物车!";“也许我们还不应该开始新的项目......"
如果你促进了很多与各行业公司的研讨会,这些类型的问题可以帮助你做出发现,即使你对这个行业知之甚少。

有多少人承担这个角色?
在绘制业务操作流程时,一个常见的情况是发现涉及电子表格、打印纸张或黑客工具(如电子邮件收件箱)作为工作队列的手工流程。
当使用流程建模事件风暴时,该符号强调了流程中的人类步骤(绿色信息后是黄色行为者执行的蓝色行动),并吸引我们去探索自动化的可能性。

在决定这是最大的问题,然后花几个小时来设计一个自动化的解决方案之前,用几个非常琐碎的问题来强调规模,可以帮助理解成本/效益,避免被吸引而牺牲更有价值的机会。

为了了解节约成本的机会,一个好的问题是 "有多少人执行这个角色?" 自动化也可以缩短交货时间并改善结果,所以问 "更短的交货时间将如何改善客户/企业的结果 "也很有用。

同一个人可以扮演多少种不同的角色?
在绘制流程图和确定角色时,很容易作出这样假设:认为每个角色代表一个不同的人。但是,同一个人在一个领域内扮演多个角色是很常见的。

明确这一点可以发现一些机会,比如当熟练的员工被低技能的任务和责任所困扰时。这浪费了他们的宝贵时间,使他们感到沮丧。

通过识别一个人可以扮演的多种不同的角色,我们可以发现他们在这些角色中提供了最大的价值,并探索各种可能性,以避免他们的时间和专业知识在其他角色中被用于次优的用途。

在房地产行业的一次研讨会上,明确指出同一个人可以同时扮演买方、卖方和房东的角色,这对会议的方向产生了很大的影响。

这种情况多久发生一次?
在一次研讨会上,我问一位开发人员:"这种情况多长时间出一次错?"。他说这种情况很少发生,不需要担心。
然而,紧接着,一位客户支持人员回答说:"今天早上我不得不处理两个有这个问题的司机,这是一个常见的问题。"

正如这则轶事所显示的,询问有关规模的问题可以揭示误解和分歧,并帮助一个小组走向对现实的共同理解。这就是为什么有不同与会者参与的合作研讨会会增加发现的机会并扩大影响。

边缘案例可能会引起问题,但首先必须了解它们的发生频率和影响是什么
在分析流程时,人们常常被看似瓶颈的东西所吸引;"流程的这一步可能需要2周时间,我们真的必须解决这个问题"。但是,如果不了解2周这种最坏的情况发生的频率,我们就不能确定它是一个值得关注的机会。

每个场景的频率是多少?
当旅程或流程可以分支为多个可能的流程之一时,您可以在此处提出的问题是“哪种情况最常见?” 或“这些场景的百分比细分[就它们发生的频率而言]是多少?”。

有时你可能想把注意力放在最常见的情况上。如果一种情况占了90%的发生率,那么任何优化都会对90%的情况产生积极影响。另外,你可能想探索最不常见的情况:"为什么客户很少选择这种方法?","我们可以做什么来提高这种方法的使用率?"。

我曾为一家金融服务公司主持过一个研讨会,重点是在供应商之间转移资源。研讨会上有一位行业专家顾问。他不明白这个研讨会的意义,并表现出轻微的破坏性,暗示没有必要举办这个研讨会,因为 "我们已经有这方面的图表了"。
我们发现有三个触发器可以启动一个工作流程。我在没有任何领域知识的情况下,要求他给我们讲讲这三种情况的细节。他摸索了几分钟,然后辩解说他不知道答案。
这不是一个诡异的问题,不管谁在研讨会上,我都会问这个问题。关键是,任何主持人都可以问的一个简单问题,甚至可以突出领域专家的知识差距......如果他们怀疑的话,可以帮助他们看到协作式研讨会的价值。

在一个特定的时间点上有多少?
绘制流程、旅程和工作流有一个盲点,澄清问题可以帮助解决这个问题。当我们绘制流程图时,我们经常从单个用户的角度进行建模,这意味着我们很容易错过在某个时间点上活跃在该领域的多个用户的复杂性。
我们可以问这样的问题:"高峰期每分钟有多少订单?","餐厅在某一时间点可能处理的最小和最大订单数是多少,在每一种情况下有什么不同(例如,交货时间增加一倍,厨房工作人员犯更多的错误)?"。

特定事件在不同时间点的并发性是多少?高并发如何影响域中的用户、系统和其他事物?

持续时间如何变化?
"在这个过程中,这两个步骤之间有多少时间?",以及 "时间是如何变化的?"。像这样的问题使隐含的时间尺度变得明确。
通过像事件风暴这样的技术,如果你不确定重点在哪里,想探寻发现,你可以对事件风暴中的任何两个随机事件提出这样的问题。

在明确了时间框架后,你可以通过后续的问题来了解是什么导致了时间框架的变化和持续时间的细分,当然还有较慢的时间的业务影响。


上图是了解流程中两个事件之间的持续时间范围和分布

明确时间框架后,您可以跟进问题以了解导致时间框架变化的原因和持续时间的细分,当然还有时间变慢对业务的影响。

随着时间的推移,规模将如何变化?
一般来说,一个好的促进技术是探讨系统是如何演变到目前的状态以及未来可能会如何演变的。例如,一个现有的流程可能是为一千名客户的规模设计的,而现在企业有五万名客户。

你可以问的一些问题是。"是什么因素促使系统被设计成这样?","为什么选择这种方法而不是其他方法?","设计这个流程时的规模是多少,现在又有什么不同?"。

随着规模的扩大,低效率的代价也越来越大。因此,了解当前的系统设计是有意为之,还是基于在当前规模下不再适用的限制和经济因素,会有帮助。

在最近的一次研讨会上,有人建议,应用后的一系列检查都可以在应用前完成,以加快时间和减少工作量。以前,由于技术原因,这是不可能的,但这些限制不再存在,所以可以改进设计。

展望未来也同样重要,预测未来的规模将如何变化。

如果这个数字更高/更低怎么办?
另一个添加到你的工具箱中的简单技巧是寻找数字并挑战它们。"为什么注册费是200英镑?为什么不是150英镑或100英镑?如果我们取消它,会发生什么?"。
这些类型的问题可以帮助明确某些决定的随机性。有时你得到的答案表明随机性很高。"要求并不明确,所以开发人员选择了一个看起来很合理的数字。"或者 "我们是一个没有数据的初创公司,所以我们选择了这个数字,但现在我们有数据,也许我们可以审查一下。"


上图:看到数字了吗?一定要挑战它并探索各种替代价值。

其他时候有一些更科学或数据驱动的推理。这个数字是有道理的,但其他人理解其基本原理仍然很有价值。

在您的下一次研讨会中明确规模
如果你是主持研讨会的新手,并且想更好地帮助小组对他们的领域做出有价值的发现,我鼓励你在今后的研讨会上开始明确提出规模问题。
这些问题非常简单,如果你使用 "事件风暴"(Event Storming)这样的技术,你几乎可以在任何事件中想到一个与尺度有关的问题,从而开始探寻机会,提高与会者的参与度。
问这些类型的问题也会帮助你想到其他类型的问题,从而导致领域的发现。