Collaborative software design - How to facilitate domain modeling decisions

Collaborative software design - How to facilitate domain modeling decisions

TEQNation - 17th of May 2023

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.

Other Decks in Programming

Transcript

  1. Prevent this from happening again (by better collaboration together and

    with the business) Photo by charlesdeluvio on Unsplash
  2. Collaborative modelling, what is it? A visualization technique to analyse

    complex and conflict-laden decision-making processes with all relevant stakeholders and decision-makers to create a shared understanding Photo by airfocus on Unsplash
  3. Humans and their interaction Humans and their interpersonal relationships Humans

    and their sense of hierarchy and ranking Humans and their assumptions Humans and their personal feelings and opinions Humans and their personal interest …. Humans.
  4. Why should you care? Because a lot of problems exist

    because people are ignoring the “socio” in sociotechnical systems
  5. Technical choices have social consequences and vice versa • Choosing

    a certain technology will increase a skill gap that needs to be fixed • Defining boundaries of bounded contexts will imply team changes • Decisions will (most likely...) lead to resistance and conflict • ...
  6. Collaborative modeling implies a lot of people in a room...

    • Who's taking the lead? • Who talks first? Who talks a lot? Who isn't talking? • Which subgroups emerge during the sessions? • Are there a lot of discussions going on? • Are people understanding each other? • Who is moving stickies around? • How much detail is required in this session? • How is the group handling decision making?
  7. Who can decide what? • What decisions can the software

    team make? • What decisions can the business make? • What decisions will happen by the architect?
  8. SUMMARY • Collaborative modeling? • Social challenges during collaborative modeling

    • The role of the facilitator • Skills a facilitator has • Sustainable decision making Photo by Estée Janssens on Unsplash