ddd-crew / bounded-context-canvas

A structured approach to designing and documenting each of your bounded contexts
Creative Commons Attribution Share Alike 4.0 International
1.8k stars 167 forks source link

Proposal: Add Examples as Acceptance Criteria #9

Closed Baasie closed 3 years ago

Baasie commented 4 years ago

As people know I am a huge fan of Example Mapping and using the acceptance criteria as another perspective on the business rules. Business Rule might be highly ambigious and it is usually until we see Examples that it makes more sense.

That is why I want to propose is to add Examples as Acceptance Criteria to the board, preferably under the Business Decisions section, or blended in the business Decisions. Every Business Decision should have some Examples underneath them like you would do in an Example Mapping session.

I have previously written about it here: https://baasie.com/2020/03/09/extending-the-bounded-context-canvas-with-bdd-examples/

NTCoding commented 4 years ago

@Baasie I'm a big fan of example mapping too (partly because of you) and when creating the canvas I encourage people to think of examples. I think it would be good if we make examples of each rule a part of the canvas but at the moment it seems like there is not enough space on the canvas.

I would love to see some mock-ups of how this could look. Maybe we make the canvas bigger and extend it vertically?

NTCoding commented 4 years ago

Here's my initial attempt:

Screenshot 2020-07-30 at 10 00 59

My first thought here is that it seems to be ok, but it only allows 3 rules/decisions which is sometimes Ok because we want people to focus on the main decisions and not all of them.

yellowbrickc commented 4 years ago

Cool proposal! I think replacing at least one of the "Decision" column with real examples would just confirm the benefits of examples 😁 (And reduce duplication and further questions)

Max-Git commented 3 years ago

One easy thing that could bring clarity would be to add a yellow <invariant> besides the lillac <decision> in the Business Decision section. As the color grammar in the canvas is EventStorming compliant, that would easilly let people pick yellow stickies from their EventStorming and paste them in the canvas.

NTCoding commented 3 years ago

This sounds good. Anybody want to submit a PR adding an example of this to the README in the decisions section? I'll be happy to review and approve.

Max-Git commented 3 years ago

I can do it but first I need to know what exactly "sounds good" to you, @NTCoding :) Do you want me to put green <examples> below <decision> or add a yellow <invariant> as I suggested or both? Let me know and I'll change everything to reflect it including the README in the decisions section.

NTCoding commented 3 years ago

I think that part of the canvas can be used in multiple ways. Both approaches show different insights, so rather than be prescriptive I think it's good to encourage people to try examples and invariants.

I think it's a good example to reinforce the point that the Bounded Context Canvas isn't the end-state of design, more of a starting point and that good modellers will customise further and push the boundaries.

NTCoding commented 3 years ago

Closing this for now, but happy to re-open when we want to restart the conversation.