业务网格上的上下文映射 - Alberto


如果您的组织活跃于多个业务渠道或业务线,则映射有界/限界上下文可能会稍微复杂一些。

在为 Avanscoperta 编写软件时,我们经常将不同的事物归类为限界上下文,例如“培训”、“咨询”、“计划”与“财务”。
过了一段时间,整个事情开始变得痛苦,因为在“咨询”中有一些“计划”,在公共“培训”中也有一些“计划”,但是……不完全相同的计划。

1、使业务线可见
我们承认我们需要一个更复杂的结构,以不同方式处理业务线和限界上下文。所以第一步是找到一种方法来可视化不同的业务线。

由于我们已经使用EventStorming探索了它们,因此使用水平条纹作为图形表示是有意义的。这是添加一些任意颜色后的结果。

以上是avanscoperta 目前开放的业务线,大约在 2019 年。

如果您对这么小的公司有这么多业务线感到惊讶,那么……我也很惊讶! 其中一些业务线实际上不应该赚钱。例如,赞助Sponsorships本来是一种财务损失,但它具有真实业务线的复杂性,包括预算限制、材料设计阶段、规划、沟通、物流、交付和最终评估阶段。

2、使业务阶段可见
第二步是为我们的上下文映射提供更多的背景结构: 在看到一些 EventStorming 结果之后,在不同的业务线中寻找某种阶段变得很自然。

我不确定这个东西是否值得命名,但我们可以称它为业务网格。

我制定了一个合理的阶段顺序(战略、产品设计、规划、销售、交付、计费和财务分析)并将它们置于泳道之上。 这些阶段不是强制性的,它们的顺序也有争议。例如,在公共培训中,计划通常发生在销售之前,而在咨询中则相反。

精确不是这里的目标,主要目标是拥有一个可以用作上下文映射背景的网格。

3、添加上下文映射
这是一个可能的映射,在我们开始将有界上下文放在我们的业务网格之上之后。地图并不完整,但已经显示出一些有趣的东西。

限界上下文在放置到业务网格上层之后:

  • “公共培训public training”显然是我们场景中最成熟的业务线,一些限界上下文确实特定于该业务线,例如日期选择、票务和折扣。
  • 一些限界上下文在不同的业务线之间共享。内容设计和定价对于“私人和公共培训”有着非常相似的关注点,通常它可以是相同的产品,只是执行方式不同。证书过去只与公共日期相关,但它也扩展到私人课程。
  • 计费在这里看起来像是一个非常通用的上下文。每一条赚钱的业务线都有计费问题,尽管复杂程度可能不同。营销、旅游和物流也是如此。一般来说,通用在这种特定的可视化风格中往往看起来更大。

总结
这种格式有几点我非常喜欢:

  1. 从左到右阅读单个业务线与新兴的 EventStorming 叙述和价值交付网络相匹配,使这种表示在没有大量平行业务线的情况下也更能说明问题。
  2. 当业务的复杂性随着多个业务线而扩大时,可能在共享平台服务之上,这种格式有助于控制整体情况并管理角落案例,例如在公共培训中有一个“计划”限界上下文,这与在软件交付中“计划”有界上下文。
  3. 它为我提供了更精确定义的限界上下文的背景,例如服务于非常特定目的的专用模型。即旨在“为公共培训建议完美日期”的日期选择可以有一个非常具体和专用的模型,它只松散地耦合到一般的规划问题。