event storming

advertisement
EVENT STORMING
COLLABORATIVE LEARNING
FOR COMPLEX DOMAINS
Paul Rayner
@thepaulrayner
HOW DO WE LEARN
TOGETHER, FAST?
SOME ENGAGEMENT :-|
https://commons.wikimedia.org/wiki/File:Use_case_restaurant_model.svg
https://commons.wikimedia.org/wiki/File:CheckEmail.svg
https://commons.wikimedia.org/wiki/File:Activity_conducting.svg
https://www.drupal.org/node/1785994
MINIMAL ENGAGEMENT :-(
THREE COMMON
CHALLENGES
#1
LARGE-SCALE, INTERCONNECTED,
DISTRIBUTED SOFTWARE…
WHILE INTEGRATING LEGACY
SYSTEMS
#2
SOFTWARE DESIGN FOR
COMPLEX BUSINESS DOMAINS
WHERE
BUSINESS PROCESSES AND RULES ARE
CHALLENGING
…AND CHANGING
#3
MULTIPLE BUSINESS EXPERTS WITH
KNOWLEDGE CRITICAL TO SUCCESS…
YET OFTEN UNAVAILABLE
…OR DISENGAGED
THE CRITICAL COMPLEXITY OF MOST
SOFTWARE PROJECTS IS IN
UNDERSTANDING THE DOMAIN
ITSELF
Eric Evans
HOW DO WE LEARN
TOGETHER, FAST?
http://www.exploreux.org/site/recap-a-day-in-the-life-of-a-ux-designer/
GOOD ENGAGEMENT
BUT FOCUSED ON USER
INTERACTION
WHAT ABOUT THE
UNDERLYING SYSTEM
BEHAVIOUR?
leanpub.com/introducing_eventstorming
PLACE EVENTS ON
A TIMELINE
WHAT IS A DOMAIN EVENT?
Something that
happened in the business
that your domain experts
care about
WHAT IS A DOMAIN EVENT?
• 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.
• Something meaningful that occurs as a 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
PROVIDE UNLIMITED
MODELING SPACE
EXPLORE REAL,
CONCRETE BUSINESS
EXAMPLES
VISUALIZE
LEARNING
OPPORTUNITIES
leanpub.com/introducing_eventstorming
leanpub.com/introducing_eventstorming
VISUALIZE
INTERACTIONS
leanpub.com/introducing_eventstorming
leanpub.com/introducing_eventstorming
VISUALIZE
BUSINESS RULES
leanpub.com/introducing_eventstorming
INVITE THE RIGHT
PEOPLE
WHO IS INVOLVED?
Development team
members and business
people gather in a room and
together we create a visual
map of the flow of events
leanpub.com/introducing_eventstorming
ASK THE RIGHT
QUESTIONS
CLARIFYING QUESTIONS
‣ "What circumstances would cause ... to
happen?”
‣ "What was the path that led us here?"
CLARIFYING QUESTIONS
‣ "What is a good example of …?"
‣ "What do you mean by …?"
‣ "What might lead someone to do/need …?”
‣ "What else might happen…?
FACILITATION TIPS
EVENTSTORMING FACILITATION TIP #1
Focus first on
learning and
understanding
EVENTSTORMING FACILITATION TIP #2
Build on each
others' ideas
EVENTSTORMING FACILITATION TIP #3
Capture diverse
perspectives
EVENTSTORMING FACILITATION TIP #4
Timebox!
EVENTSTORMING FACILITATION TIP #5
Conversations
and examples are
primary
EVENTSTORMING FACILITATION TIP #6
Post first,
Ask questions
later
EVENTSTORMING FACILITATION TIP #7
Anchor your
modeling and
design on a concrete
business example
EVENTSTORMING
FLAVOURS
FLAVOUR #1
Big Picture
EventStorming
FLAVOUR #2
Design Level
EventStorming
FLAVOUR #3
UX-Driven
EventStorming
EVENTSTORMING
BENEFITS
10 BENEFITS OF EVENTSTORMING
1. Shared understanding:
‣ Of the problem being solved
‣ Potential solutions
2. Visual, tactile representation of the
business concepts and how they
relate
3. Uncover misunderstandings and
missing concepts
10 BENEFITS OF EVENTSTORMING
4. Small investment of time
5. Challenging, but fun
6. Represents various diverse
viewpoints, creating a more
robust solution
7. Enables various domain
models to be "crash-tested"
10 BENEFITS OF EVENTSTORMING
7. Concerned with behavior first
8. Make it clearer where the true
business value is
9. Provide means for everyone in the
room to participate meaningfully in
modeling
10.Focus attention on real business
examples
NATURAL TRANSITION
TO EVENT SOURCING
Adapted from leanpub.com/introducing_eventstorming
EVENT SOURCING
‣ Don't save the current state of objects
‣ Save the events that lead to the current state
‣ TDD focused on command processing
generating the correct events
Aggregate state modeled as a sequence of domain events
Shopping Cart
Item
Added
Price
Calculated
Promotion
Code
Applied
Item
Added
Price
Calculated
Checked
Out
ECommerce Context
NATURAL TRANSITION TO
DISTRIBUTED SYSTEMS
…
Event Stream
ECommerce Context
Order Management
Context
…
Event Stream
EVENT DRIVEN-ARCHITECTURE
‣ Contexts communicate via streams of events
‣ Support large-scale, high-performance,
encapsulated, but interconnected systems
‣ Embrace asynchronous communication,
eventual consistency
‣ Isolate legacy systems behind event-driven
abstractions
QUESTIONS?
Paul Rayner
@thepaulrayner
THANKS!
Paul Rayner
@thepaulrayner
Paul Rayner
@thepaulrayner
paul@virtual-genius.com
www.virtualgenius.com
Download