COLLABORATIVE LEARNING FOR COMPLEX DOMAINS
EVENTSTORMING
@thepaulrayner
Paul Rayner
EVENTSTORMING COLLABORATIVE LEARNING FOR COMPLEX DOMAINS Paul - - PowerPoint PPT Presentation
EVENTSTORMING COLLABORATIVE LEARNING FOR COMPLEX DOMAINS Paul Rayner @thepaulrayner THE LANDSCAPE Complex business rules & processes Knowledge silos Numerous diverse (& often legacy) system interactions THE CRITICAL COMPLEXITY OF
@thepaulrayner
Paul Rayner
THE LANDSCAPE
Complex business rules & processes Knowledge silos Numerous diverse (& often legacy) system interactions
THE CRITICAL COMPLEXITY OF MOST SOFTWARE PROJECTS IS IN UNDERSTANDING THE DOMAIN ITSELF
Eric Evans
https://www.drupal.org/node/1785994
https://commons.wikimedia.org/wiki/File:Use_case_restaurant_model.svg
https://commons.wikimedia.org/wiki/File:Activity_conducting.svg
https://commons.wikimedia.org/wiki/File:CheckEmail.svg
leanpub.com/introducing_eventstorming
leanpub.com/introducing_eventstorming
WHAT IS A DOMAIN EVENT?
Something that happened in the business that your domain experts care about
leanpub.com/introducing_eventstorming
SPECIES OF DOMAIN EVENTS
e.g. customer order submitted, customer paid $100, order completed, item shipped.
e.g. nightly account reconciliation completed, end of month.
result of something else happening
e.g. customer account locked after invalid password entered 3 times
leanpub.com/introducing_eventstorming
leanpub.com/introducing_eventstorming
leanpub.com/introducing_eventstorming
leanpub.com/introducing_eventstorming
Once upon a time…
More modeling space than you expect
Development team members and business people gather in a room and together we create a visual map
leanpub.com/introducing_eventstorming
leanpub.com/introducing_eventstorming
leanpub.com/introducing_eventstorming
leanpub.com/introducing_eventstorming
Adapted from leanpub.com/introducing_eventstorming
Decided to Reimburse (alternate flow) Decided to Repair (main flow)
Adapted from leanpub.com/introducing_eventstorming
EVENT SOURCING
Shopping Cart Item Added
ECommerce Context
Price Calculated Promotion Code Applied Item Added Price Calculated Checked Out
Aggregate state modeled as a sequence of domain events
EVENT SOURCING
generating the correct events
Servicer Management Context Claims Context
Event Stream …
ECommerce Context
Event Stream …
Order Management Context
EVENTSTORMING FACILITATION TIP #1
CLARIFYING QUESTIONS
happen?”
CLARIFYING QUESTIONS
EVENTSTORMING FACILITATION TIP #2
EVENTSTORMING FACILITATION TIP #3
Command is “Open Claim” What should associated event be called?
EVENTSTORMING FACILITATION TIP #5
EVENTSTORMING FACILITATION TIP #6
EVENTSTORMING FACILITATION TIP #4
POSSIBLE LIMITATIONS
and/or systems
better facilitation
WHY EVENTSTORMING?
Collaborative learning
Cultivate mutual shared understanding Uncover misunderstandings & missing concepts Avoid rework
WHY EVENTSTORMING?
Model & explore complex domains
Visual, tactile representation of system behaviour & outcomes Smoother transition to a rich domain model, design and coding
QUESTIONS?
@thepaulrayner
Paul Rayner
THANKS!
@thepaulrayner
Paul Rayner