EVENTSTORMING COLLABORATIVE LEARNING FOR COMPLEX DOMAINS Paul - - PowerPoint PPT Presentation

eventstorming
SMART_READER_LITE
LIVE PREVIEW

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


slide-1
SLIDE 1

COLLABORATIVE LEARNING FOR COMPLEX DOMAINS

EVENTSTORMING

@thepaulrayner

Paul Rayner

slide-2
SLIDE 2

THE LANDSCAPE

Complex business rules & processes Knowledge silos Numerous diverse (& often legacy) system interactions

slide-3
SLIDE 3

THE CRITICAL COMPLEXITY OF MOST SOFTWARE PROJECTS IS IN UNDERSTANDING THE DOMAIN ITSELF

Eric Evans

slide-4
SLIDE 4 HTTPS://EN.WIKIPEDIA.ORG/WIKI/ROSETTA_STONE#/MEDIA/FILE:ROSETTA_STONE.JPG
slide-5
SLIDE 5

HOW DO WE LEARN …FAST?

slide-6
SLIDE 6
slide-7
SLIDE 7

https://www.drupal.org/node/1785994

slide-8
SLIDE 8

BEHAVIOUR TRUMPS STRUCTURE

slide-9
SLIDE 9

https://commons.wikimedia.org/wiki/File:Use_case_restaurant_model.svg

slide-10
SLIDE 10

https://commons.wikimedia.org/wiki/File:Activity_conducting.svg

slide-11
SLIDE 11

https://commons.wikimedia.org/wiki/File:CheckEmail.svg

slide-12
SLIDE 12

OPTIMIZE FOR SHARED LEARNING

slide-13
SLIDE 13

leanpub.com/introducing_eventstorming

slide-14
SLIDE 14

PLACE EVENTS ON A TIMELINE

slide-15
SLIDE 15

leanpub.com/introducing_eventstorming

slide-16
SLIDE 16

WHAT IS A DOMAIN EVENT?

Something that happened in the business that your domain experts care about

slide-17
SLIDE 17

leanpub.com/introducing_eventstorming

slide-18
SLIDE 18

SPECIES OF DOMAIN EVENTS

  • A step in a business process

e.g. customer order submitted, customer paid $100, order completed, item shipped.

  • Something that happens on a scheduled basis

e.g. nightly account reconciliation completed, end of month.

  • Something meaningful that occurs as a

result of something else happening

e.g. customer account locked after invalid password entered 3 times

slide-19
SLIDE 19

VISUALIZE LEARNING OPPORTUNITIES

slide-20
SLIDE 20
slide-21
SLIDE 21

leanpub.com/introducing_eventstorming

slide-22
SLIDE 22

leanpub.com/introducing_eventstorming

slide-23
SLIDE 23

EVENTS & QUESTIONS FIRST

slide-24
SLIDE 24
slide-25
SLIDE 25
slide-26
SLIDE 26

EVENTSTORMING

A LEGACY APPLICATION

slide-27
SLIDE 27
slide-28
SLIDE 28
slide-29
SLIDE 29

PROVIDE UNLIMITED MODELING SPACE

slide-30
SLIDE 30
slide-31
SLIDE 31
slide-32
SLIDE 32

leanpub.com/introducing_eventstorming

slide-33
SLIDE 33

leanpub.com/introducing_eventstorming

slide-34
SLIDE 34 They lived happily ever after

Once upon a time…

More modeling space than you expect

slide-35
SLIDE 35

INVITE THE RIGHT PEOPLE

slide-36
SLIDE 36

Development team members and business people gather in a room and together we create a visual map

  • f the flow of events
slide-37
SLIDE 37

EVENTSTORMING

IN ACTION

slide-38
SLIDE 38
slide-39
SLIDE 39
slide-40
SLIDE 40
slide-41
SLIDE 41

VISUALIZE INTERACTIONS

slide-42
SLIDE 42

leanpub.com/introducing_eventstorming

slide-43
SLIDE 43

leanpub.com/introducing_eventstorming

slide-44
SLIDE 44

leanpub.com/introducing_eventstorming

slide-45
SLIDE 45

VISUALIZE BUSINESS RULES

slide-46
SLIDE 46

leanpub.com/introducing_eventstorming

slide-47
SLIDE 47

PROVIDE A VISIBLE LEGEND

slide-48
SLIDE 48
slide-49
SLIDE 49
slide-50
SLIDE 50
slide-51
SLIDE 51

Adapted from leanpub.com/introducing_eventstorming

slide-52
SLIDE 52

VISUALIZE ALTERNATE FLOWS

slide-53
SLIDE 53

Decided to Reimburse (alternate flow) Decided to Repair (main flow)

slide-54
SLIDE 54

NATURAL TRANSITION TO EVENT SOURCING

slide-55
SLIDE 55

Adapted from leanpub.com/introducing_eventstorming

slide-56
SLIDE 56

EVENT SOURCING

slide-57
SLIDE 57

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

slide-58
SLIDE 58

EVENT SOURCING

  • Don't save the current state of objects
  • Process events that lead to the current state
  • TDD focused on command processing

generating the correct events

slide-59
SLIDE 59

CLARIFYING CONTEXT BOUNDARIES

slide-60
SLIDE 60

Servicer Management Context Claims Context

slide-61
SLIDE 61

NATURAL TRANSITION TO DISTRIBUTED SYSTEMS

slide-62
SLIDE 62

Event Stream …

ECommerce Context

Event Stream …

Order Management
 Context

slide-63
SLIDE 63

FACILITATION TIPS

slide-64
SLIDE 64

EVENTSTORMING FACILITATION TIP #1

Focus first on learning and understanding

slide-65
SLIDE 65

CLARIFYING QUESTIONS

  • “What circumstances would cause ... to

happen?”

  • “What was the path that led us here?”
  • “What is a good example of …?”
slide-66
SLIDE 66

CLARIFYING QUESTIONS

  • "What do you mean by …?"
  • "What might lead someone to do/need …?”
  • "What else might happen…?
slide-67
SLIDE 67

EVENTSTORMING FACILITATION TIP #2

Anchor to a concrete business example

slide-68
SLIDE 68

EVENTSTORMING FACILITATION TIP #3

Clarify fuzzy concepts and language

slide-69
SLIDE 69

Command is “Open Claim” What should associated event be called?

slide-70
SLIDE 70

EVENTSTORMING FACILITATION TIP #5

Conversations and examples are primary

slide-71
SLIDE 71

EVENTSTORMING FACILITATION TIP #6

Post first, Ask questions later

slide-72
SLIDE 72

EVENTSTORMING FACILITATION TIP #4

Timebox

slide-73
SLIDE 73
slide-74
SLIDE 74

POSSIBLE LIMITATIONS

  • Simple business domains (e.g. CRUD)

and/or systems

  • Distributed teams
  • Larger group/greater complexity =

better facilitation

  • ???
slide-75
SLIDE 75

WHY EVENTSTORMING?

slide-76
SLIDE 76
slide-77
SLIDE 77

WHY EVENTSTORMING?

Collaborative learning

Cultivate mutual shared understanding Uncover misunderstandings & missing concepts Avoid rework

slide-78
SLIDE 78

WHY EVENTSTORMING?

Model & explore complex domains

Visual, tactile representation of system behaviour & outcomes Smoother transition to a rich domain model, design and coding

slide-79
SLIDE 79

QUESTIONS?

@thepaulrayner

Paul Rayner

slide-80
SLIDE 80

THANKS!

@thepaulrayner

Paul Rayner