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

Storystorming DDD Vienna

Storystorming DDD Vienna

Storystorming (https://storystorming.com/) is a toolbox and mashup of existing methods to collaboratively explore user journeys, work procedures and business processes and refine them into working software models. Storystorming facilitates many opportunities for collaboration between business and technology experts, helps them to visually connect the dots and discover what your organisation needs to be successful.

Martin Schimak

September 25, 2020
Tweet

More Decks by Martin Schimak

Other Decks in Programming

Transcript

  1. Storystorming
    DDD Vienna

    View Slide

  2. Storystorming

    View Slide

  3. Why?

    View Slide

  4. View Slide

  5. Writing code
    is modeling reality
    new

    View Slide

  6. Our mental models are the first models which matter.

    View Slide

  7. View Slide

  8. View Slide

  9. I imagine and expect us to be living a mindset of
    80% collaboration

    View Slide

  10. © Paul Rayner‘s
    „Essential DDD“ workshop
    in Denver 2018
    `s three pillars

    View Slide

  11. Basic Building Blocks
    Human
    or Group
    Command
    or Activity
    Machine
    or Component
    Question
    or Search
    Behavior
    or Decision
    Statement
    or Object
    Attention
    or Uncertainty
    Event
    or Exception
    Deliverable
    or Proposal
    Storystorming

    View Slide

  12. Storystorming

    View Slide

  13. Behavior
    or Decision
    Behavior
    Human
    or Group
    Command
    or Activity
    Machine
    or Component
    Question
    or Search
    Statement
    or Object
    Attention
    or Uncertainty
    Event
    or Exception
    Deliverable
    or Proposal
    Brewing a
    coffee Selecting
    more sugar
    Selecting
    amount of
    beans

    View Slide

  14. Participants
    Human
    or Group
    Machine
    or Component
    Command
    or Activity
    Question
    or Search
    Statement
    or Object
    Attention
    or Uncertainty
    Event
    or Exception
    Deliverable
    or Proposal
    Behavior
    or Decision
    Employee
    Coffee
    Machine
    Barista

    View Slide

  15. Messages
    & Language
    Command
    or Activity
    Question
    or Search
    Statement
    or Object
    Event
    or Exception
    Behavior
    or Decision
    Human
    or Group
    Machine
    or Component
    Attention
    or Uncertainty
    Deliverable
    or Proposal
    Brew a pot
    of coffee!
    Is coffee
    left in the
    pot ?
    The pot is
    empty.
    The coffee
    is ready!

    View Slide

  16. Implementation
    Knowns & Unknowns
    Attention
    or Uncertainty
    Deliverable
    or Proposal
    Behavior
    or Decision
    Human
    or Group
    Command
    or Activity
    Machine
    or Component
    Question
    or Search
    Statement
    or Object
    Event
    or Exception
    Regulate
    heating
    plate
    Does the
    heating plate
    need access to
    espresso machine
    events?

    View Slide

  17. Human
    or Group
    Command
    or Activity
    Machine
    or Component
    Question
    or Search
    Behavior
    or Decision
    Statement
    or Object
    Attention
    or Uncertainty
    Event
    or Exception
    Deliverable
    or Proposal
    https://storystorming.com

    View Slide

  18. Storystorming

    View Slide

  19. Easily explore specific domain scenarios!
    EVENTSTORMiNG

    View Slide

  20. Easily explore specific domain scenarios!

    View Slide

  21. My Domain Storytelling Scenario
    o I need to get an understanding of the problem addressed by some
    work procedures carried out by certain people, BUT …
    o the people who know the details are domain experts, not trained
    business analysts, software designers or software developers
    o discussions tend to end up in details and it is difficult for me to see the
    wood for the trees, often because of all the "brownfield" we are in
    o I feel that the real problems and better solutions remain uncovered,
    because I cannot (yet) even ask the right questions

    View Slide

  22. Attention
    Annotation
    Basic building blocks of Domain Storytelling
    Actor Work Object
    Activity
    + +
    +

    View Slide

  23. Ticketing
    screen
    plan
    available
    seats
    Customer Cashier
    confirms
    reservation
    available
    seats
    reservation
    number
    recommends
    asks for
    screen
    plan
    reservation
    finds seats in
    confirm
    seats in
    generates
    tells
    1 2
    3
    4
    5
    6
    7

    View Slide

  24. Basic Building Blocks
    Human
    or Group
    Command
    or Activity
    Machine
    or Component
    Behavior
    or Decision
    Statement
    or Object
    Attention
    or Uncertainty
    Event
    or Exception
    Storystorming
    Question
    or Search
    Deliverable
    or Proposal

    View Slide

  25. Attention
    Annotation
    Basic building blocks with Storystorming
    Actor Work Object
    Activity
    + + + Context
    @martinschimak
    Human
    or Group
    Machine
    or Component
    Activity Object Behavior
    or Decision Attention
    or Uncertainty

    View Slide

  26. Storytelling. As simple as it really is!
    @martinschimak
    Object
    Actor Activity

    View Slide

  27. Storytelling. As simple as it really is!
    "A story consists of
    sentences. A sentence
    consists of three basic
    building blocks!"
    @martinschimak
    ticket
    reservation
    Customer asks for

    View Slide

  28. Storytelling. As simple as it really is!
    @martinschimak
    Object
    Subject Verb
    "A story consists of
    sentences. A sentence
    consists of three basic
    building blocks!"

    View Slide

  29. The sentence with a receiving actor
    @martinschimak
    Customer
    calls and
    asks for
    ticket
    reservation
    Cashier
    "The customer calls
    and asks the cashier
    for a ticket reservation."

    View Slide

  30. @martinschimak
    A
    B
    C
    Customer
    calls and
    asks for
    ticket
    reservation
    Cashier
    Ticketing
    System
    finds
    seats in
    screen plan
    Time
    Actors
    Story
    "The cashier finds the
    seats in the screen
    plan of the ticketing
    system."

    View Slide

  31. @martinschimak
    A
    B
    C
    Customer
    calls and
    asks for
    ticket
    reservation
    Cashier
    Ticketing
    System
    finds
    seats in
    screen plan
    Time
    Actors
    Story
    suggests
    available
    seats
    1 2 3
    "The cashier suggests
    the available seats to
    the customer."

    View Slide

  32. @martinschimak
    A
    B
    C
    Customer
    calls and
    asks for
    ticket
    reservation
    Cashier
    Ticketing
    System
    finds
    seats in
    screen plan
    Time
    Actors
    Story
    suggests
    available
    seats
    1 2 3
    Seats are
    available

    View Slide

  33. @martinschimak
    Customer
    calls and
    asks for
    ticket
    reservation
    Cashier
    Ticketing
    System
    finds
    seats in
    screen plan
    suggests
    available
    seats
    Seats are
    available
    confirms
    suggested
    seats
    reserves
    seats in
    screen plan
    generates
    reservation tells
    reservation
    number
    Customer
    likes seats

    View Slide

  34. @martinschimak
    Customer
    calls and
    asks for
    ticket
    reservation
    Cashier
    Ticketing
    System
    finds
    seats in
    screen plan
    suggests
    available
    seats
    Seats are
    available
    confirms
    suggested
    seats
    reserves
    seats in
    screen plan
    generates
    reservation tells
    reservation
    number
    Customer
    likes seats
    Tickets
    required
    Tickets
    reserved
    Could the
    seats be
    gone by
    now?

    View Slide

  35. Let your domain expert do it him/herself, e.g. on a table!
    Be helpful with the method! Then start to ask questions.
    EVENTSTORMiNG

    View Slide

  36. Let your domain expert do it him/herself, e.g. with
    Be helpful with the method! Then start to ask questions.
    EVENTSTORMiNG

    View Slide

  37. Pro Hint :-)
    Don't "model"!
    Let your expert
    tell a story!
    Pro Hint :-)
    Don't "model"!
    Let your expert
    tell a story!
    Human

    View Slide

  38. Time!
    We are a family of four (two parents, two
    teenagers) and have to take care of shopping
    on a regular basis. Everybody should help a bit
    from time to time! Therefore we use a mobile
    ToDo App with a shared shopping list. All
    family members can add shopping items to this
    list, such as e.g. "1 loaf of bread". Items may be
    marked to be urgently needed on a certain
    date. The shopping list will then inform all
    family members about such an urgently
    needed item. Whoever has time or comes by a
    suitable shop just marks any bought item as
    Done in the shopping list.
    Hands-on #1
    Storytelling
    Visualize the actor's activities
    sentence by sentence using
    activity verbs & objects
    Mobile
    To Do App
    Martin
    Object
    Activity
    Verb
    Object
    Activity
    Verb
    Assumption
    about
    behavior
    Kathi

    View Slide

  39. Time!
    Imagine we shopped a bit too much and need a
    ride: "Let me see, I could use one of these cars
    which are now parked everywhere in the city."
    Our car sharing app allows customers to find
    nearby cars. One can reserve a car for 15
    minutes. When we approach the driver's door
    with our mobile's NFC, the app asks to confirm
    the current rate per kilometer. After this, the
    car opens its doors, and we may start the ride.
    Finally, when a car is closed from the outside
    and using the mobile's NFC the ride is finished
    and our card is charged on a kilometer basis.
    Hands-on #2
    Storytelling
    Visualize the actor's activities
    sentence by sentence using
    activity verbs & objects
    Car
    Martin
    Object
    Activity
    Verb
    Object
    Activity
    Verb
    Assumption
    about
    behavior
    Car
    Sharing
    App

    View Slide

  40. Drafting a blockchain workflow for a steel industry startup
    Simple customer
    interaction scenario
    1
    Scenario with
    resellers involved
    2

    View Slide

  41. Some results from
    EventStorming
    Capturing two
    detail "stories"
    1
    2
    3
    Getting
    side-tracked :-)
    Considering a
    few deliverables
    4
    Discussing billing improvements for a telco provider

    View Slide

  42. Investigating a (largely paper-based) support process
    Here is the pain
    with mistakes made
    in support requests
    1
    Here is the correction
    pain resulting from it
    2

    View Slide

  43. Using a grid
    "Grids" allow you to easily
    insert, move and delete
    "sentences" (columns)
    and "actors" (rows)

    View Slide

  44. Using Events for variants
    Event
    or Exception

    View Slide

  45. Capture and tell variant!

    View Slide

  46. Telling Problem stories
    Attention
    or Uncertainty

    View Slide

  47. Mapping details to stories
    Deliverable
    or Proposal

    View Slide

  48. Storystorming

    View Slide

  49. Super Sticky Post-It
    Bangkok Collection
    • orange 'event' (2)
    • magenta 'attention' (2)
    • blue 'command' (2)
    Super Sticky Post-It
    Marrakesh Collection
    • dark green
    'statement' (2)
    • blue 'command' (1)
    • lilac 'behavior' (1)
    • dark yellow 'human'
    (1)
    (plus one other color)
    Super Sticky Post-It
    Miami Collection
    • blue 'command' (2)
    • pink 'machine' (1)
    • light green
    'question' (2)
    (plus one other color)
    Super Sticky Post-It
    Standard Collection
    • light yellow
    deliverable' (6)
    Storystorming
    Yourself

    View Slide

  50. Thank you!
    Full 14h Remote DDD with Storystorming Training?
    Oct 12th-14th 2020 -> https://techtalk.at/trainings/storystorming
    In-house/Remote Trainings or Workshops -> https://plexiti.com

    View Slide