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

Navigating the Future of Software Development: ...

Navigating the Future of Software Development: Embracing Collaborative modelling

Software is increasingly crucial in our lives, but developing effective software systems is still a major challenge. This issue often comes from teams focusing on solutions rather than deeply understanding the business problems they are trying to solve. A crucial shift towards Collaborative Software Design is needed; it brings together technical expertise with a solid grasp of both user and business needs. As an important part of Domain-Driven Design (DDD), this approach jointly optimises user journeys with business processes. It enhances team communication, facilitates in making well-informed decisions, and minimises errors, thus maximising the software's value and impact. Most importantly, it establishes a shared understanding among all stakeholders. Adopting this strategy is vital for the creation of high-quality, resilient, and user-centric software.

The challenge is in requiring all stakeholders to actively collaborate in the same physical environment, managing complex social dynamics. The key to success in Collaborative Software Design is managing these interactions within a sociotechnical framework.

Join Evelyn and Kenny as they show how Collaborative Software Design enables teams to develop a shared understanding with stakeholders. This understanding becomes a living record of the current business needs and the software landscape, guiding the design for future developments.

Kenny Baas-Schwegler

April 18, 2024
Tweet

More Decks by Kenny Baas-Schwegler

Other Decks in Technology

Transcript

  1. @kenny_baas @[email protected] @EvelynvanKelle In the meantime at a grocery shop

    around the corner from Evelyn Context changes everything
  2. Purpose, needs & Problems Value stream: All activities a team

    performs from understanding the purpose & problem to building that solution without being blocked Solution Feedback Stream-​aligned team: Long-​ term design + build + run for software-​ enriched services in a small, stable team of around ~5-9 people Team first! @kenny_baas @[email protected] 💡Stop managing dependencies start unblocking flow 💡You DESIGN it, you build it and you run it! @EvelynvanKelle
  3. @kenny_baas @[email protected] Software team Code Tests (Living) Documentation Stakeholders design,

    build, run solution Express purpose, needs and problems Feedback The feedback loop is delayed. That leads to a gap of knowledge between solution and knowledge of the stakeholders can generate There is more here!!! @EvelynvanKelle At times there is this P.O., architect, UX person {insert x} in between here Individuals or groups, either within or outside the organization, who are invested in the outcome of solving these business problems 💡Stop managing dependencies start unblocking flow
  4. @kenny_baas @[email protected] Software team Code Tests (Living) Documentation Stakeholders design,

    build, run solution can generate Pool of shared meaning Projected in the sum total of knowledge, perspectives, opinions, meaning and feelings that participants in a conversation have regarding the topic at hand @EvelynvanKelle 💡The pool can vary in size. The feedback loop is delayed. That leads to a gap of knowledge between solution and knowledge of the stakeholders Not all knowledge is returned, like technical knowledge
  5. @kenny_baas @[email protected] @EvelynvanKelle Living documentation IS the pool of shared

    meaning Photo by Dragan Miljkovic on Unsplash @EvelynvanKelle
  6. @kenny_baas @[email protected] Software team Code Tests (Living) Documentation Stakeholders design,

    build, run solution The feedback loop is delayed. That leads to a gap of knowledge between solution and knowledge of the stakeholders can generate Pool of shared meaning Projected in Market User research Strategy Projected in @EvelynvanKelle The feedback loop is delayed. That leads to a gap of knowledge between solution and knowledge of the stakeholders Not all knowledge is put into the pool 💡User research of the product should be part of the team!
  7. @kenny_baas @[email protected] @EvelynvanKelle The pool can quickly become a whirlpool

    When navigating the problem space Photo by heraldscotland @EvelynvanKelle
  8. @kenny_baas @[email protected] 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. @EvelynvanKelle
  9. PROBLEM SPACE core supporting generic Domains and subdomains core supporting

    Goals Tasks Purpose Intent pain points desire ... Domain is a sphere of knowledge, influence, or activity. The subject area to which the user applies a program is the domain of the software. An area of interest or an area over which a person has control It is all about grouping concepts. Within Domain-​ Driven Design we call the entire problem space we are modelling the Domain. We decompose that space into several subdomains. If the space is big enough those subdomains can be potentially split into several subdomains again. @kenny_baas @[email protected] @EvelynvanKelle Using it for Domain Modelling
  10. @kenny_baas @[email protected] @EvelynvanKelle SOLUTION SPACE PROBLEM SPACE core supporting generic

    Domains and subdomains core supporting becomes part of your problem space over time Domain model Domain model Domain model Domain model Domain model Domain model Bounded Contexts Architecture design activities Goals Tasks Purpose Intent pain points desire ... Prototypes Mock-​ ups Implementation .... boundary design Use collaborative modelling to create a shared understanding
  11. @kenny_baas @[email protected] Users and stakeholders Code Stream-​Aligned Team Tests Domain

    Model Other people possibly involved in designing and building software Managers Architects User researcher ..... @EvelynvanKelle
  12. DDD is a discipline rooted in the belief that creating

    good software systems for problems in the complex domain cannot be done without a deep understanding of the business problems you are trying to solve in the domain. @kenny_baas @[email protected] Domain-​ Driven Design
  13. @kenny_baas @[email protected] @EvelynvanKelle We share context, meaning and categorise business

    needs, purpose and problems. Through that we DESIGN a language and model to solve complex business problems Photo by Travel by Kilts @EvelynvanKelle
  14. @kenny_baas @[email protected] @EvelynvanKelle Living documentation stays alive through collaboration If

    the team or stakeholders don't touch the documentation at least once every 2 weeks (heuristic!) throw it away. It's only being kept alive by automation, not by interaction.
  15. I have been working in this for 10 years, I

    will just tell them how it is. How is my cat doing? Why is nobody LISTENING! I feel sooo stupid in this room Shouldn't we just do something completely Shouldn't we start coding now? They are always so annoying, why can't they just listen to me!!! 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 Consciousness of the group "The Shadows" Unconsciousness of the group Modeling space = pool of shared meaning How can I act in the best interest of the group and their outcomes? @kenny_baas @[email protected] @EvelynvanKelle
  16. @kenny_baas @[email protected] @EvelynvanKelle 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.
  17. @kenny_baas @[email protected] Photo by ESIGNECOLOGIST A lot of problems exist

    because people are ignoring the “socio” in sociotechnical systems
  18. Complex Environment Sociotechnical System Structure (Organization) People (Cognitive & Social)

    Physical System (Hardware, Software, Facilities) Task (Work) @kenny_baas @[email protected] @EvelynvanKelle Adapted from "Assessing the impact of new technology on complex sociotechnical systems", South African Journal of Industrial Engineering August 2016 Vol 27(2), pp 15-29, R. Oosthuizen & L. Pretorius https://www.researchgate.net/publication/306242078_Assessing_the_impact_of_new_technology_on_complex_sociotechnical_systems Licensed under https://creativecommons.org/licenses/by-​ sa/4.0/
  19. @kenny_baas @[email protected] @EvelynvanKelle Choosing a certain technology might increase a

    skill gap that needs to be managed Defining boundaries of bounded contexts might imply team changes Decisions will (most likely...) lead to resistance and conflict ... Technical choices have social consequences and vice versa
  20. @kenny_baas @[email protected] @EvelynvanKelle 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? Lots of people in a room...