$30 off During Our Annual Pro Sale. View Details »

Collaborative Software Design: How to facilitate domain modeling decisions

Collaborative Software Design: How to facilitate domain modeling decisions

Designing a software system is difficult. Understanding the context in which a software system lives is more difficult. In order to understand that context, developers need to communicate with the business. But there is a lot that can go wrong while communicating with the business. For example people can misunderstand what is being said, they are scared to speak up, tensions could grow, and conflict can arise. These social dynamics cause groups to stop sharing their knowledge, which can end up in resistance behaviour from sarcastic jokes, to stopped communication or even not showing up or leaving the session. No wonder a lot of organisations resort to a more autocratic form of decision-making, where one person, the architect, analyses and makes the decision. If we want to make sustainable design decisions for our architecture that is embraced by everyone, it is better to use visual techniques to make assumptions more explicit which will improve collaboration between developer teams and the domain experts.

In this talk we will introduce you to collaborative modelling and its social dynamic challenges. Collaborative modelling is a visualisation technique to analyse complex and conflict-laden decision-making processes with all relevant stakeholders and decision-makers to create a shared understanding. And some, maybe even most of these sessions need to be facilitated so that everyone can feel a part of the decision and can potentially give the input they have. I will explain why it requires us to have a different skills set like observing, listening, trying to stay neutral and show compassion. Because that improved collaboration will let software teams understand better the context and underlying problems the business has. That understanding enables the software teams to design and build sustainable quality software products.

Kenny Baas-Schwegler

October 04, 2023
Tweet

More Decks by Kenny Baas-Schwegler

Other Decks in Technology

Transcript

  1. Collaborative Software Design:
    How to facilitate domain modelling decisions
    @kenny_baas
    @[email protected]
    Photo by Agnieszka Ziomek on Unsplash

    View Slide

  2. @kenny_baas
    @[email protected]
    What is happening at BigScreen?
    Photo by Felix Mooneeram on Unsplash

    View Slide

  3. @kenny_baas
    @[email protected]
    business logic
    (back-​
    end)
    Ticketing
    Back-​
    office
    Big ball of mud
    Used internally by BigScreen
    to schedule movies, create
    events, etc.
    Used by BigScreen's customers to
    purchase tickets.
    reservation code
    A wild Big ball of mud appeared!

    View Slide

  4. @kenny_baas
    @[email protected]
    Photo by Felix Mooneeram on Unsplash
    Sorry, we can't do that right
    now.
    We would like to
    extend movies
    Features take longer and longer, or to
    expensive to implement, or not possible at all!

    View Slide

  5. @kenny_baas
    @[email protected]
    Photo by Felix Mooneeram on Unsplash
    They said it wasn't
    possible... AGAIN
    When will we get the
    new feature?
    Frustrations and polarisation

    View Slide

  6. @kenny_baas
    @[email protected]
    Photo by Felix Mooneeram on Unsplash
    I had to say "we can't do
    that right now", AGAIN
    How was the meeting?
    For everyone....

    View Slide

  7. @kenny_baas
    @[email protected]
    @kenny_baas
    @EvelynvanKelle
    @selketjah

    View Slide

  8. @kenny_baas
    @[email protected]
    collaborative modelling
    "a visualization technique to analyze complex and conflict-​
    laden decision-​
    making
    processes with all relevant stakeholders and decision-​
    makers
    to create a shared understanding."

    View Slide

  9. @kenny_baas
    @[email protected]
    THE 6 STAGES OF Collaborative modeling
    Collaborative modeling session
    PREP
    Check-​in
    Check-​out
    retrospective
    COMMUNICATING
    AND
    DOCUMENTATION
    CONVERGING
    DIVERGING
    modeling with TOOLS
    1
    2
    3
    4
    5
    6
    The 6 stages of collaborative modelling

    View Slide

  10. @kenny_baas
    @[email protected]
    What problems do you face when
    doing Collaborative modelling?
    Photo by Van Tay Media on Unsplash

    View Slide

  11. @kenny_baas
    @[email protected]
    What happens during modelling?
    Consciousness
    of the group
    "Shadowland"
    Unconsciousness
    of the group
    I feel
    uncomfortable
    speaking up
    How is my cat
    doing?
    Why is nobody
    LISTENING!
    I feel sooo
    stupid in this
    room
    My Idea is
    better
    Shouldn't we
    start coding
    now?
    We have been
    over this 4
    times now...
    Those are not the right
    boundaries at all...
    I think we should dive
    deeper into the domain
    When that happens, we
    can get DDOS'd
    What do we
    need to do?
    This is not a Domain
    Event!

    View Slide

  12. @kenny_baas
    @[email protected]
    The influence of ranking
    The impact and opportunities of
    cognitive bias
    Resistance and conflict resolution
    Managing unsolvable problems
    Making sustainable design decisions
    1.
    2.
    3.
    4.
    5.
    Agenda

    View Slide

  13. @kenny_baas
    @[email protected]
    The influence of ranking
    Once upon a Big Picture
    Eventstorming at BigScreen....

    View Slide

  14. @kenny_baas
    @[email protected]
    Ranking theory
    "Shadowland"
    Unconsciousness
    of the group
    Why are people quiet, I
    give them all the space to
    speak up
    I feel sooo
    stupid in this
    room
    I will just put my idea out,
    so other people can shoot
    on it
    In my previous
    job, we did it
    different
    Those are not the right
    boundaries at all...
    I think we should dive
    deeper into the domain
    When that happens, we
    can get DDOS'd
    She is quiet because
    she probably doesn't
    understand
    This is not a Domain
    Event!
    I just let them talk first,
    before I make the
    decision for them
    I am new here, let
    me just first listen

    View Slide

  15. @kenny_baas
    @[email protected]
    Symbolic violence is the invisible forms of power that
    manifest in everyday practices, language, and cultural
    norms (Shadowlands), leading individuals to accept and
    internalize their social status and the dominance of more
    powerful groups.
    Photo by Tomas Martinez on Unsplash

    View Slide

  16. @kenny_baas
    @[email protected]
    Own your rank:
    Recognize and take responsibility for your personal power,
    privileges, and biases.
    Play your rank:
    Actively navigating and utilizing one's position or status,
    understanding its fluidity, and influencing interpersonal dynamics
    through subtle non-​
    verbal behaviors and interactions.
    Share your rank
    Using your position, power, or privilege to amplify marginalized
    voices and ensure that all perspectives are considered.
    Photo by Spencer Davis on Unsplash

    View Slide

  17. @kenny_baas
    @[email protected]
    The impact and opportunities
    of cognitive bias
    Once upon an Example Mapping at BigScreen
    Reserving
    seats
    A
    B
    C
    A
    B
    C
    Only 1 ticket
    per seat
    Only adjacent
    seating per row
    Max 8 seats
    per customer
    Given red are allocated
    1 2 3 4 5 6 7 8 9 10
    When we allocated Seats of 2
    Then Green seats will be allocated
    Given red are allocated
    1 2 3 4 5 6 7 8 9 10
    When we allocated Seats of 1
    Then No Allocations Found
    The one were 9 Tickets are
    Requested
    Then Too Many Tickets
    Requested
    The one were 8 Tickets
    are Requested
    Then we allocate seats
    Given red are allocated
    A
    B
    C
    1 2 3 4 5 6 7 8 9 10
    When we allocated Seats of 4
    Then Green seats will be allocated
    Given Red are ReservedSeats
    A
    B
    C
    1 2 3 4 5 6 7 8 9 10
    When we allocated Seats of 4
    Then No adjacent Allocations Found
    No Orphan
    Seats
    Given red are allocated
    2 3 4 5 6 7 8 9 10
    When we allocated Seats of 3
    Then Green seats will be allocated
    Orphan seats
    when no other
    possibility
    Given red are allocated
    2 3 4 5 6 7 8 9 10
    When we allocated Seats of 3
    Then Green seats will be allocated
    Given red are allocated
    2 3 4 5 6 7 8 9 10
    When we allocated Seats of 2
    Then either one of the Green seats can
    allocated
    Given red are allocated
    2 3 4 5 6 7 8 9 10
    When we allocated Seats of 3
    Then either one of the Green seats can
    allocated
    No adjacent
    seats over
    corridor
    A
    B
    C
    1
    A
    B
    C
    1
    A
    B
    C
    1
    A
    B
    C
    1
    Given red are allocated
    2 3 4 5 6 7 8
    When we allocated Seats of 2
    Then Green seats will be allocated
    A
    B
    C
    1
    Given red are allocated
    2 3 4 5 6 7 8
    When we allocated Seats of 2
    Then No adjacent Allocations Found
    A
    B
    C
    1

    View Slide

  18. @kenny_baas
    @[email protected]
    a systematic pattern of deviation from norm or rationality in judgment
    Cognitive bias

    View Slide

  19. @kenny_baas
    @[email protected]
    Being aware of a cognitive bias
    has little to no effect
    You cannot overcome a bias, just
    reduce it's impact
    1.
    2.

    www.schwab.com
    Choiceology
    Wharton professor Katy Milkman shares
    true stories involving high-stakes
    moments, and explores the latest
    research to help you make better
    judgments and avoid costly mistakes.
    A lot of....

    View Slide

  20. @kenny_baas
    @[email protected]
    A nudge is a subtle intervention or design choice that
    influences people's decisions and behaviors in a predictable
    way, without forbidding any options or significantly changing
    their economic incentives.
    Have you been nudged? - https://www.bbc.com/news/business-41549533

    View Slide

  21. @kenny_baas
    @[email protected]
    Functional Fixedness impacts creativity. It’s about getting stuck in what we
    know, and it hinders us from taking on new perspectives to solve problems.
    Nudge: Model it wrong!
    Bandwagon effect describes the tendency of people to adopt certain
    behaviour or decisions just because others are doing it.
    Nudge: Run through the session beforehand
    with a few people or the whole team.
    Photo by Luis Villasmil on Unsplash

    View Slide

  22. @kenny_baas
    @[email protected]
    Resistance and conflict resolution
    Once upon a Domain Storytelling
    at BigScreen....

    View Slide

  23. @kenny_baas
    @[email protected]
    https://www.eventstore.com/blog/when-​
    to-​
    go-​
    from-​
    collaborative-​
    modelling-​
    to-​
    coding-​
    part-2
    a conflict is a difference of opinion
    between two or more people.
    What is a conflict

    View Slide

  24. @kenny_baas
    @[email protected]
    Influenced by Deep Democracy lvl 5 by Human Dimension - Frank Weijers
    Constructive conflict is a healthy, positive disagreement between two
    or more individuals or groups that leads to better decision-​
    making
    Destructive conflict is a negative form of disagreement that hinders
    decision-​
    making. There are two forms:
    Conflict avoidance
    Polarised conflicts
    1.
    2.
    Constructive vs destructive conflict

    View Slide

  25. @kenny_baas
    @[email protected]
    What happens with conflict avoidance
    Consciousness
    of the group
    "Shadowland"
    Unconsciousness
    of the group
    I feel
    uncomfortable
    speaking up
    How is my cat
    doing?
    Why is nobody
    LISTENING!
    I feel sooo
    stupid in this
    room
    My Idea is
    better
    Shouldn't we
    start coding
    now?
    We have been
    over this 4
    times now...
    Those are not the right
    boundaries at all...
    I think we should dive
    deeper into the domain
    When that happens, we
    can get DDOS'd
    What do we
    need to do?
    Edge
    Behaviour

    View Slide

  26. @kenny_baas
    @[email protected]
    More time
    Inefficiency
    Identification
    Observing resistance

    View Slide

  27. @kenny_baas
    @[email protected]
    Photo by NASA on Unsplash
    Climate Report:
    The climate report can be seen as a way to "take the
    temperature" of the group.
    Do an intervention to the group (never the individual) by
    sharing the patterns you observed in the group,
    in a factual way!

    View Slide

  28. @kenny_baas
    @[email protected]
    Role Theory
    In the context of Deep Democracy and Arnold Mindell's process-​
    oriented psychology, a
    "role" refers to a particular pattern of behaviour, feeling, or perspective that emerges within
    a group or system.
    Confused
    Annoyed
    Curious
    Optimistic
    Excited
    Tired
    Stressed
    Alone
    Distracted
    Engaged
    Engaged
    Confused
    Optimistic
    Silent
    Role is bigger than a Person
    If someone is confused, mostly likely
    others are as well
    A person is more than the Role
    Someone is not only silent, but more..!

    View Slide

  29. @kenny_baas
    @[email protected]
    We need to feel safe enough to be uncomfortable;
    knowing that we can make it to the other side of the
    discussion or conflict.
    -- Gitte Klitgaard
    Unsafe
    Uncomfortable
    nerve-​
    wracking
    tense
    Comfortable
    Influenced by Deep Democracy lvl 5 by Human Dimension - Frank Weijers
    Psychological safety

    View Slide

  30. @kenny_baas
    @[email protected]
    If someone expresses a need (not a position/solution)
    make that need fluid in the group.
    - Ask who else can roughly relate to being confused?
    - Ask who sees it different?

    View Slide

  31. @kenny_baas
    @[email protected]
    Photo by Nong on Unsplash
    Start collaborative modelling with a check-​
    in
    Make sure you ask questions to probe needs, find perspectives
    and put the focus on the topic of the session.
    You can use Impromptu networking liberating structure to do so,
    in the end ask: "what did you here from the people you talked to?"

    View Slide

  32. @kenny_baas
    @[email protected]
    Planning
    and
    scheduling
    Movie
    visitor
    Publish
    weekly
    schedule
    Search
    for
    movies
    Pick a
    movie
    screening
    Select
    number
    of tickets
    Choosing
    seats
    Paying
    for
    tickets
    Receive
    tickets
    back-​
    office Ticketing
    Back-​
    end
    Database
    weekly
    schedule
    planning
    page
    weekly
    schedule
    weekly
    schedule
    page
    Movie
    screening
    page
    movies
    pages
    movies
    seat
    picker
    payment
    Tickets
    page
    Cinema
    rooms
    Ticket
    reservation
    Payment
    Payment
    provider
    reservation
    Ticket
    pricing
    plannable
    movie
    planned
    movie
    reservations
    Tight
    coupling
    Tight
    coupling
    Tight
    coupling
    Seat
    allocation is
    somewhere
    here
    Managing unsolvable problems
    Once upon an User needs mapping
    at BigScreen....

    View Slide

  33. @kenny_baas
    @[email protected]
    an ongoing issue or challenge that has no clear
    solution in terms of picking one of two sides.
    polarity

    View Slide

  34. @kenny_baas
    @[email protected]
    Positive effect from 100% side L Positive effect from 100% side R
    Negative effect from 100% side R
    Negative effect from 100% side L
    Polarity map - Barry Johnson
    Solution oriented modeling
    Concealed modeling
    WIDE
    Actions/heuristics
    Signals/observations Signals/observations
    Actions/heuristics
    DEEP
    Verifying
    assumptions
    Understanding
    the details
    See
    connections
    within a
    system
    Designing
    towards
    solutions
    A lot of
    assumptions
    Unknown
    details
    Stuck in
    problem
    space
    Don't see
    connections
    within a
    system
    Good starting
    point for
    adding
    knowledge
    See
    connections
    between
    systems
    Everyone
    can
    contribute
    breaking
    down
    knowledge
    silos
    No bigger
    picture
    present to add
    knowledge to
    No good
    overview of
    connections
    between
    systems
    Active
    participation is
    limited to the
    people with the
    deeper
    knowledge
    no cross-​
    silo
    knowledge
    asking
    clarifying
    questions
    no movement
    of stickies
    and/or people
    ...
    Zooming out
    because it is
    too difficult
    Participants
    say they
    already know
    how it works
    Asking "but
    how is that
    different
    from ...?"
    ...
    Asking "but
    how would
    that work
    in code?"
    Solve a
    hotspot
    Pick a domain
    concept and
    model it from
    different
    perspectives
    ...
    Add failure
    paths to
    the Big
    Picture
    Add
    another
    scenario to
    model
    Pick a
    different
    actor to
    model
    ...
    Brainstorm
    what is
    missing
    Narrow
    understanding
    Danger of
    creating wrong
    models/abstra
    cting
    Understanding
    the whole
    system
    Visualizing
    ambiguity

    www.eventstore.com
    When to go from
    collaborative modelling
    to coding? Part 1
    Kenny Baas-Schwegler, Evelyn van Kelle
    and Gien Verschatse talk about Event
    Modelling and when to make the leap
    from collaboration to coding in Part one.
    Polarity mapping

    View Slide

  35. @kenny_baas
    @[email protected]
    Making sustainable design decisions
    Back-​
    office
    Ticket purchase
    Back-​
    office
    Ticketing
    User interface
    Ticket purchase
    Back-​
    office
    Payments
    Ticketing
    User interface
    Movie schedule
    Movie schedule
    Pricing and Payments
    Seat allocation
    visitor reservations
    Once upon a distilling bounded context
    at BigScreen....
    Domain boundary Bounded context
    Legend

    View Slide

  36. @kenny_baas
    @[email protected]
    Photo by Markus Spiske on Unsplash
    If a decision is made ask to the people that weren't in favour of
    that option what it takes for them to go along
    Decide to add it to the decision

    View Slide

  37. @kenny_baas
    @[email protected]
    Autocratic decision making
    Democratic decision making
    Idea
    Suggestion
    Proposal
    Command
    Lower buy-​in
    Higher buy-​in
    Decision made
    Mainly about informing
    Only serious objections
    Intentions are clear
    Insights are welcome
    Fully open question
    Group of people who helps generate
    and analyse options
    Levels of buy-​
    in

    View Slide

  38. @kenny_baas
    @[email protected]
    Sustainable design decisions
    Sociotechnical System - from https://www.researchgate.net/figure/Sociotechnical-​
    system-​
    STS-​
    4_fig2_306242078
    Sustainable design decisions are decisions that
    consider the sociotechnical impact of the
    alternatives. After designing and analysing the
    alternatives, you pick the one that gives you the
    best sociotechnical trade-​
    off with the information
    that is available. You create a feedback loop into
    your design process to improve it along the way.
    Over time, you will find yourself making decisions in
    a similar way. This is when your decisions become
    sustainable.

    View Slide

  39. @kenny_baas
    @[email protected]
    Consciousness
    of the group
    "Shadowlands"
    Unconsciousness
    of the group
    Own, play and share your rank
    Use nudges to reduce the impact of bias
    Create role fluidity by focussing on perceptions and needs
    Explicitly manage polarities the group is dealing with
    Ask people what it takes to come along with a decision
    1.
    2.
    3.
    4.
    5.
    Summary

    View Slide

  40. @kenny_baas
    @[email protected]
    Photo by kazuend on Unsplash
    The outcome of our collaborative modelling
    is shaped by each participant.
    Remember, facilitation is a role, not a title.
    Everyone has the potential to guide and influence.

    View Slide

  41. @kenny_baas
    @[email protected]
    kenny@weave-​
    it.org - weave-​
    it.org
    Get the book here
    Leave the judging to the cats!

    View Slide