ddd-crew / core-domain-charts

A tool for collaboratively finding your core domains - strategic business differentiators
Creative Commons Attribution Share Alike 4.0 International
526 stars 38 forks source link

How to deal with risk/business criticality in the domain classification? #17

Closed userlarsb closed 2 years ago

userlarsb commented 3 years ago

Hi,

There is the definition that "Core Domains are the parts of your domain where the expected ROI is greatest, and deserve the highest focus". What I have been wondering how we should deal with domains that are not core domains but where a failure of those parts can have a huge impact on the overall organization. Let me give a broader context here. My starting point for the question is actually a slide from @mploed (I am not trying to blame @mploed or his slides - he encouraged me to write this down somewhere here)implying that the core domain should get the best staffing that you have to deliver the. best quality; "In-House development, Excellent teams with excellent working conditions" and as we move down to supporting and generic subdomains "Don’t put your best employees into generic subdomains". If I now look at a diagram like image I wonder whether a third axis would make sense that measures how important the domain is to deliver the overall functionality of your business / what impact a failure would have in order to assess how much attention one has to pay to that particular domain.

Lars

NTCoding commented 3 years ago

Hey Lars,

You are correct. There are more dimensions that one needs to consider here. The Purpose Alignment Canvas is a good tool. It compares market differentiation and business criticality. I feel that business criticality describes fits well with your description of "not differentiating but significant to the overall organisation".

image

https://www.informit.com/articles/article.aspx?p=1384195&seqNum=2

This discussion does come up frequently. People often feel that the word "core" is a more natural fit for your description than the DDD description (criticality over differentiating). I guess because core sounds like something that sits at the heart of your organisation and other things are built around it.

Now to turn all of this into something actionable: how could we add that extra dimensions onto these charts?

Here are some options I quickly thought of:

  1. Use a separate colour (e.g. colour orange = business critical)

  2. Add a vertical section in-between supporting and core "business critical"

  3. Break the chart up into clear quadrants and label each quadrant

  4. Don't show it on this chart, just use separate diagrams

What do you think?

userlarsb commented 3 years ago

Hi Nick,

The purpose alignment canvas and its definition is in deed a good fit for what I tried to describe. I wasn't aware of the Nickolaisen Model. It's probably the items landing in the "parity" sector that I am most worried about because of the low differentiation where as the "High/High" quadrant would most likely end of in the "core" part of the subdomain classification (unless it has super low complexity).

  1. In my opinion the notation is already quite colorful and adding some more will most likely not make the diagram easier to understand. 2./3. Then you would kind of pre-define what the limits of model complexity and business differentiation are for those objects.
  2. Having a 3d-diagram embedded in a 4d world would be cool ;)

Here's what I'd propose:

  1. What about changing the abscissa in the core domain chart to measure not only business differentiation but business differentiation/criticality? Then the mission critical items will end up in the core sector (unless they are very uncomplex) and they will get the right focus. This would imply that the definition of a core domain should be extended to "Core Domains are the parts of your domain where the expected ROI is greatest or that are critical for the overall business, and deserve the highest focus".
philipschm1tt commented 3 years ago

Using separate diagrams (4.) is always an option. There is a point where you might be encoding too much in a single diagram.

Not convinced by 2., 3., 5.

  1. would presumably mess with the DDD domain classification.
  2. would lose the model complexity or mix up model complexity and mission criticality.
  3. – isn’t criticality orthogonal to differentiation? Identity/IAM is critical, too?

If we assume that we are not at the point for 4., we can encode the mission-criticality in the diagram more easily. In the purpose alignment model, it’s just a boolean, after all, so there are some options (color, shape, size, tags...).

But before that, there are some things in the diagram above that I am not so sure about:

Here are three ideas for mission criticality.

core_domain_chart_mission_criticality

userlarsb commented 3 years ago

Using separate diagrams (4.) is always an option. There is a point where you might be encoding too much in a single diagram.

That is in fact true. But having a single "clear" picture is appealing.

isn’t criticality orthogonal to differentiation

I would not say that it is completely orthogonal. If it is a part that is highly relevant to differentiate yourself from the competition then this is critical. Otherwise differentiation would not be important. It's just the opposite case where the correlation does not hold. So I would not see it as a big problem for 5.

Identity/IAM is critical

Most of the time it is. I am not getting the point of this part. Can you elaborate a bit?

From the three options @maeh2k proposed the "hotspots" or red borders are most appealing visually for me. To be honest, I find the background colors in the diagram are not helping with the clarity. IMHO solid borders and plain background but colors with a higher contrast would improve the overall picture. But that's not to the point of this discussion.

philipschm1tt commented 3 years ago

isn’t criticality orthogonal to differentiation

I would not say that it is completely orthogonal. If it is a part that is highly relevant to differentiate yourself from the competition then this is critical. Otherwise differentiation would not be important. It's just the opposite case where the correlation does not hold. So I would not see it as a big problem for 5.

Identity/IAM is critical

Most of the time it is. I am not getting the point of this part. Can you elaborate a bit?

In the example, Identity is used as a generic subdomain. So I tried to use it as an example where a generic subdomain may be mission-critical, but still something where you might want to buy (vs. build).

NTCoding commented 3 years ago

Some good ideas in here.

I agree that the colours of the core domain chart are a bit noisy. In my workshops I usually reduce the opacity so that they are very feint. I've also learned that colour blind people find that using colours to distinguish is impossible, so maybe different shapes would be a better solution.

I think adding an icon for mission criticality is the right approach. Although I wouldn't try to use Alberto's hotspot because that could be a little ambiguous.

philipschm1tt commented 3 years ago

I agree that the colours of the core domain chart are a bit noisy. In my workshops I usually reduce the opacity so that they are very feint. I've also learned that colour blind people find that using colours to distinguish is impossible, so maybe different shapes would be a better solution.

The border color could still work for color blind people as it’s just distinction between white and something else. You can also make it black and white to remove a color.

The other colors in the diagram are more challenging. It might help to not fill the background but use outlines to separate the domain types. Then you only have four main colors – for the subdomains. For those you can choose accessible colors.

The four current colors already mostly work – only the orange I chose is bad. The colors apparently work for all types of color blindness except achromatopsia. image See https://coolors.co/f79256-50c4ed-f8f971-a6fba8

I think adding an icon for mission criticality is the right approach. Although I wouldn't try to use Alberto's hotspot because that could be a little ambiguous.

I chose Alberto’s hotspot style because it stands out with shape, color, size, while also being simple to apply in whatever tool – even with stickies in the analog world. I don’t think it’s too ambiguous if you don’t call it hotspot. In remote event storming Alberto even uses a different style (with speech bubbles).

But there are plenty of option. Next attempt: image

userlarsb commented 3 years ago

I think adding an icon for mission criticality is the right approach

Maybe an icon like "⚠". That would underline the importance (compared to the heart of @maeh2k which actually looks cute. A domain you have to love *scnr). In the analog world that can be combined with the sticky idea by drawing "!" on a sticky note or on the post-it of the item itself.

NTCoding commented 3 years ago

@maeh2k

The other colors in the diagram are more challenging. It might help to not fill the background but use outlines to separate the domain types. Then you only have four main colors – for the subdomains. For those you can choose accessible colors.

Good shout. The original colours you see are there because I wanted to make it look pretty for a slide deck. They can definitely go (or be faded almost to white), and the accessible colours can be reserved for something meaningful.

@userlarsb @maeh2k

I think the warning or the heart is fine as long as we define it on the notation. My gut feeling is still saying the hotspot would trigger too many DDD people.

userlarsb commented 3 years ago

@NTCoding So it's just the word you are worried about? If we use a different symbol, such as a box or a star, then that would be avoided...

But we are discussing nuances without having tried out the concept at all. Maybe a little bit more feedback outside of our bubble might be interesting (I don't have an opportunity upcoming to test this in the real world though). What about an open space discussion at DDD Europe next year?

NTCoding commented 3 years ago

@userlarsb Sorry for the delay.

I think feedback outside our bubble is a good idea and a DDD open space makes a lot sense. I'd be happy to attend and share my thoughts.

My main concern with the hotspot notation is the confusion with EventStorming. If someone is used to ES and they see the HotSpot they might feel it's indicating a problem of sorts, when it's quite a different meaning here.

userlarsb commented 3 years ago

@userlarsb Sorry for the delay.

No worries, we are doing this in our free time (at least I am) 😄

might feel it's indicating a problem of sorts

What's the worst case? They start paying attention to something which is important anyways.
NTCoding commented 2 years ago

Closing this old issue. But feel free to re-open or start a new issue to revisit the conversation.