Slide 1

Slide 1 text

Navigating the Future of Software Development: Embracing Collaborative modelling @kenny_baas @[email protected] @EvelynvanKelle Photo by Agnieszka Ziomek on Unsplash

Slide 2

Slide 2 text

@kenny_baas @[email protected] Photo by Bernard Hermant on Unsplash @EvelynvanKelle

Slide 3

Slide 3 text

@kenny_baas @[email protected] @EvelynvanKelle In the meantime at a grocery shop around the corner from Evelyn Context changes everything

Slide 4

Slide 4 text

@kenny_baas @[email protected] What about companies? Teams Documentation Diagramming @EvelynvanKelle

Slide 5

Slide 5 text

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

Slide 6

Slide 6 text

@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

Slide 7

Slide 7 text

@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

Slide 8

Slide 8 text

@kenny_baas @[email protected] @EvelynvanKelle Living documentation IS the pool of shared meaning Photo by Dragan Miljkovic on Unsplash @EvelynvanKelle

Slide 9

Slide 9 text

@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!

Slide 10

Slide 10 text

@kenny_baas @[email protected] @EvelynvanKelle The pool can quickly become a whirlpool When navigating the problem space Photo by heraldscotland @EvelynvanKelle

Slide 11

Slide 11 text

@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

Slide 12

Slide 12 text

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

Slide 13

Slide 13 text

@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

Slide 14

Slide 14 text

@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

Slide 15

Slide 15 text

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

Slide 16

Slide 16 text

@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

Slide 17

Slide 17 text

@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.

Slide 18

Slide 18 text

@kenny_baas @[email protected] @EvelynvanKelle What could possibly go wrong?! Let's go!

Slide 19

Slide 19 text

@kenny_baas @[email protected] @EvelynvanKelle Conscious mind Unconscious mind preconscious mind What could possibly go wrong! RIGHT?

Slide 20

Slide 20 text

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

Slide 21

Slide 21 text

@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.

Slide 22

Slide 22 text

@kenny_baas @[email protected] Ranking theory Conflict & Resistance Cognitive bias Polarities ... Behavior!

Slide 23

Slide 23 text

@kenny_baas @[email protected] Photo by ESIGNECOLOGIST A lot of problems exist because people are ignoring the “socio” in sociotechnical systems

Slide 24

Slide 24 text

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/

Slide 25

Slide 25 text

@kenny_baas @[email protected] Collaborative Modeling is a sociotechnical happening

Slide 26

Slide 26 text

@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

Slide 27

Slide 27 text

@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...

Slide 28

Slide 28 text

@kenny_baas @[email protected] @EvelynvanKelle A facilitator! Who you gonna call?

Slide 29

Slide 29 text

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

Slide 30

Slide 30 text

Get the book here 45% discount with: ctwtv24 Thank you! @kenny_baas @[email protected] @EvelynvanKelle @EvelynvanKelle