Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Crunching 'real-life stories' with DDD Event Storming and combining it with BDD @ KanDDDinsky

Crunching 'real-life stories' with DDD Event Storming and combining it with BDD @ KanDDDinsky

To really understand what our users will need, we want to have a first-hand experience from 'real-life stories' before we can model and create our software. While both the DDD and BDD techniques emphasis on ‘real-life stories’ by doing collaborative deliberate learning, they both focus on different goals. DDD focuses more on creating bounded contexts in which a single model is created, BDD focuses more on different scenarios and can create executable specifications as an outcome. By doing Event Storming and using techniques from BDD, such as Example Mapping and Feature Mapping, we can create more insights. We can simultaneously create a model and executable specifications for our user needs. This way, we can write software and tests which matches the shared understanding of the user, creating a ubiquitous language. Value will be shipped at a faster pace.

In this session, I will explain how to do Process Event Storming. We will use Example Mapping to get more insights into our process. The outcome can drive our Software Modelling Event Storming and create Executable Specifications.

Kenny Baas-Schwegler

October 18, 2018
Tweet

More Decks by Kenny Baas-Schwegler

Other Decks in Programming

Transcript

  1. Crunching 'real-life stories'
    with DDD EventStorming
    and combining it
    with BDD techniques

    View full-size slide

  2. Kenny
    Baas-Schwegler
    Software Consultant - EventStormer
    Domain Driven Design
    Behaviour Driven Development
    Continuous Delivery
    @kenny_baas
    Baasie.com
    xebia.com/blog/author/kbaas/

    View full-size slide

  3. It is not the domain experts knowledge
    that goes to production, it is the
    assumption of the developers
    that goes to production
    - Alberto Brandolini

    View full-size slide

  4. To communicate effectively, the code must be based on the
    same language used to write the requirements
    - the same language that the developers speak
    with each other and with domain experts
    - Eric Evans

    View full-size slide

  5. We all know or should know that language is fluid, liquid, subject to the
    whims of the people. Language evolves, as it should. Because language
    changes to accommodate new users, the older users resist and complain.
    http://tednellen.blogspot.com/2013/04/language-is-fluid.html

    View full-size slide

  6. Confirmation Bias

    View full-size slide

  7. https://lizkeogh.com/2015/09/09/on-epiphany-and-apophany/
    “Apophany” that moment when a sufferer says,
    “Oh! I get it!” when they really don’t.
    - Liz Keogh

    View full-size slide

  8. https://lizkeogh.com/2015/09/09/on-epiphany-and-apophany/
    Build beliefs
    Draw conclusions
    Generate assumptions
    Filter data
    Observe data

    View full-size slide

  9. The greatest obstacle to discovery is not ignorance -
    it is the illusion of knowledge.
    - Daniel J. Boorstin

    View full-size slide

  10. Big Picture
    Process Design
    and Modelling
    Software
    Modelling

    View full-size slide

  11. Every tool has his or hers blind spots. That blind spot might as
    well be your million dollar mistake.

    View full-size slide

  12. All models are wrong, but some are useful,
    and some are useless, and some are outright damaging.
    Sometimes a model only gives you the illusion of control.
    - Multiple people (Attributed to George Box)

    View full-size slide

  13. Try at least to find three models,
    even if you think you already found
    the “right model”

    View full-size slide

  14. Don’t cling to a mistake
    Just because you
    spend a lot of time making it.

    View full-size slide

  15. Every tool has his or hers blind spots. That blind spot might as
    well be your million dollar mistake.

    View full-size slide

  16. Software Development is
    a learning process, working code is a
    side effect
    - Alberto Brandolini

    View full-size slide

  17. Serious software development is
    the practice of symmathesy.
    “Sym” = together, “mathesy” = learning.
    - Jessica Kerr

    View full-size slide

  18. #CatTax
    @kenny_baas
    Baasie.com
    xebia.com/blog/author/kbaas/
    https://speakerdeck.com/baasie

    View full-size slide