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

Collaborative software design for team cognitiv...

Collaborative software design for team cognitive load, Hands-on with Sjoerd Westerhof

When navigating the complexities of software design and development, new ideas and future requests frequently cross software and team boundaries. The most effective approach to these design challenges is through collaborative modelling sessions, where teams are directly involved in crafting the software design. Yet, this approach leads us to a critical dilemma: What happens when new capabilities increase the cognitive load on a team, hindering their ability to deliver on both new and ongoing business needs? And how do we address situations where these new capabilities clash with our current architecture, leading to necessary changes that don’t fit our existing team structures? Our goal is always to create the best architecture for our business challenges, but this depends heavily on our teams’ delivery capabilities. This brings us to a fundamental question: If our teams face difficulties in implementing what is ideally the ‘best’ architecture, can we still consider it the most effective solution?

Join us in this interactive, hands-on session, where you will delve into a real-world software design challenge that intersects both software and team boundaries. Equipped with detailed context and comprehensive software diagrams, you will design in groups two potential software designs. You are free to approach the challenge in any way you prefer, and we will provide a message flow modelling template to help you quickly start addressing your challenge. From those initial two designs, we will introduce you to the fundamental principles of Team Topologies, focusing on how cognitive load affects the teams involved and your software design. This understanding of cognitive load will be crucial as we further explore more solutions to the design challenge. Throughout this session, you will gain practical insights into how cognitive load influences your approach to software design. You will learn how to effectively incorporate Team Topologies into your design decisions. By the end of this experience, you will have hands-on software design experience, tackling complex design challenges with a team-first approach.

Kenny Baas-Schwegler

June 19, 2024
Tweet

More Decks by Kenny Baas-Schwegler

Other Decks in Technology

Transcript

  1. @kenny_baas @[email protected] Collaborative software design for team cognitive load Check-​

    in Introduction Hands-​ on Software design challenge Introduction to Team Topologies Mapping out the designs Team Topologies interaction 1. 2. 3. 4. 5.
  2. @kenny_baas @[email protected] Check-​in We'll do a check-​ in with an

    activity called 'Impromptu Networking.' This exercise is structured into three dynamic rounds, each lasting five minutes. In each session, you'll need to randomly pair yourself with 2-3 other participants. The goal is to interview each other with the questions below. At the end of the rounds we will ask the group to share what you heard from others. Questions: Who are you and what do you do? (Quickly introduce yourself) Why did you choose this workshops? What do you know about collaborative modelling and team cognitive load? What challenges do you have designing software collaboratively?
  3. restaurant system Takeout app @kenny_baas @[email protected] Home delivery ordering Takeout

    Customer Select products for home delivery Know delivery time Legend / Key User Need capability External capability User Depends on Process Software System Make an order for home delivery Pay For home delivery order Home delivery Fulfilment Restaurant employee Accept order Request food deliverer for a specific time Prepare order for home delivery Hand over order to deliverer Product page Home delivery order page Payment module Home delivery service restaurant service Payment service This is a fixed time configured in the restaurant service Payment provided Restaurant service Delivery broker Takeout app Takeout Customer When does my delivery arrive? What orders do I need to prepare Home delivery service Food delivery services Restaurant backoffice SPA Food Deliverer Deliver food Home delivery service Restaurant service The home delivery service can query the restaurant service for the statis of the order which changes based on the activities Based on order status change in the restaurant service the home delivery service makes a simple ETA. Go fix: Create a software design that will give an accurate ETA before completing the order. And if you can improve the delivery ETA at the same time that is even better! learnwardleymapping.com Landscape A map of physical terrain is visual, specific to the battle at hand, and includes the position of troops and obstacles relative to an anchor (magnetic North).
  4. 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 What we want @kenny_baas @[email protected] 💡Stop managing dependencies start unblocking flow 💡You DESIGN it, you build it and you run it! @EvelynvanKelle 💡Teams are long lived, people in the teams do not necessarily
  5. @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
  6. Home delivery ap teams Restaurant POS team Payment team Restaurant

    POS team Home delivery ap teams restaurant system Takeout app @kenny_baas @[email protected] Home delivery ordering Takeout Customer Select products for home delivery Know delivery time Legend / Key User Need capability External capability User Depends on Process Software System Make an order for home delivery Pay For home delivery order Home delivery Fulfilment Restaurant employee Accept order Request food deliverer for a specific time Prepare order for home delivery Hand over order to deliverer Product page Home delivery order page Payment module Home delivery service restaurant service Payment service Payment provided Restaurant service Delivery broker Takeout app Takeout Customer When does my delivery arrive? What orders do I need to prepare Home delivery service Food delivery services Restaurant backoffice SPA Food Deliverer Deliver food Home delivery service Restaurant service teamtopologies.… Exploring team and service boundaries with User Needs Mapping - Team Topologies User Needs Mapping refers to the first four steps of the Wardley Mapping process that can provide significant value when helping understand users/customers, their needs and the dependencies required to deliver those needs within an organization. By mapp… Stream-​ aligned team Platform team Complicated Subsystem team 4 fundamental Team types Enabling team This is quirky! Quirky, why is delivery broker not with the other team?
  7. Home delivery app teams Takeout app Home delivery service Foundation

    Payment team Restaurant POS team Flow of change Cloud service team Continuous delivery team Payment provider Containerization Continuous delivery pipeline Xaas Xaas Xaas We do not consume google pay yet Google pay is consumed by the home delivery @kenny_baas @[email protected] Legend / Key User Stream-​ aligned team Platform team Complicated Subsystem team Enabling team Collaboration Facilitating Xaas We want to pay with google pay in the restaurant The three interactions modes Restaurant service Delivery broker Restaurant Backoffice SPA Restaurant app Xaas Xaas Case 1: There is already google pay used by another team
  8. Foundation Payment team Restaurant POS team Flow of change Cloud

    service team Continuous delivery team Payment service Restaurant service Delivery broker Containerization Continuous delivery pipeline Home delivery app teams Takeout app Xaas @kenny_baas @[email protected] Legend / Key User Stream-​ aligned team Platform team Complicated Subsystem team Enabling team Collaboration Facilitating Xaas We want to pay with google pay in the restaurant Restaurant Backoffice SPA Restaurant app Home delivery service Case 2: There is no google pay yet! Xaas Xaas Interaction can change over time We want to go to x-​ as-​ a-​ service
  9. Foundation New wish Payment team Home deliveries teams Restaurant team

    Flow of change Xaas Cloud service team Continuous delivery team Xaas Xaas Containerization Continuous delivery pipeline @kenny_baas @[email protected] Legend / Key User Platform team Complicated Subsystem team Enabling team Collaboration Facilitating Xaas Teams have cognitive load! Restaurant service Delivery broker Restaurant Backoffice SPA Restaurant app Payment service Takeout app Home delivery service 💡This is the general way the teams are now collaborating Now map your design on the TT interactions of the teams and see what effect it has on your design!
  10. 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. Complex Environment Sociotechnical System Structure (Organization) 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/ People (Cognitive & Social) Physical System (Hardware, Software, Facilities) Task (Work) @kenny_baas @[email protected] Summary