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

Collaborative software design for team cogniti...

Collaborative software design for team cognitive load @ KanDDDinsky

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

October 28, 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?
  3. @kenny_baas @[email protected] * NOTE: A C4 model only contains 1

    software system. For the convenience and purpose of this hands-​ on we combined 3 software systems in 1
  4. @kenny_baas @[email protected] * NOTE: A C4 model only contains 1

    software system. For the convenience and purpose of this hands-​ on we combined 3 software systems in 1
  5. 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).
  6. Home delivery Restaurant POS Payments Restaurant POS Home delivery 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 Enabling team This is quirky! Quirky, why is delivery broker not with the other team?
  7. 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: You design + build + run (STEWARDSHIP) solving business needs/problems with software-​ enriched services in a small, ~stable team of around ~5-9 people Stream-​aligned teams @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
  8. 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] sociotechnical
  9. @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
  10. Home delivery Takeout app Home delivery service Foundation Payments Restaurant

    POS Flow of change Cloud services Continuous delivery Payment provider Containerization Continuous delivery pipeline Xaas Xaas We do not consume google pay yet Google pay is consumed by the home delivery team @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 4 team types Restaurant service Delivery broker Restaurant Backoffice SPA Restaurant app Xaas Xaas Case 1: There is already google pay used by another team Xaas
  11. Foundation Payments Restaurant POS Flow of change Cloud services Continuous

    delivery Payment service Restaurant service Delivery broker Containerization Continuous delivery pipeline Home delivery 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 team interaction We want to go to x-​ as-​ a-​ service
  12. Foundation New wish Payments Home delivery Restaurant POS Flow of

    change Cloud services Continuous delivery 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! Xaas Xaas Xaas Note: We do not want stream-​ aligned team to preferably be in an x-​ as-​ a-​ service state, see: https://teamtopologies.com/key-​ concepts-​ content/team-​ interaction-​ modeling-​ with-​ team-​ topologies
  13. Restaurant POS Architecture enabling Architecture enabling @kenny_baas @[email protected] Flow of

    change Home delivery app team Restaurant POS team Facilitating Facilitating Evolves to Evolves to Home delivery app team Restaurant POS team Facilitating Facilitating Stream-​ aligned team Enabling team Legend Data analytics team Complicated Subsystem team Collaboration Flow of change Home delivery app team Restaurant POS team Data analytics team Flow of change Home delivery app team Delivery Flow of change Facilitating Xaas @EvelynvanKelle Ordering Xaas
  14. Check-​out @kenny_baas @[email protected] How useful did you find this hands-​on?

    Can apply it the next day Learned nothing Had no fun Really enjoyed