About me 01 02 03 04 Xin Yao Chief Software Architect @settling_mud Loves gardening, yoga, sci- fi, good food, hanging out with friends and family Lives in Copenhagen, Denmark [email protected]
contexts Hexagonal architecture Bounded context canvas Example mapping Wardley mapping Impact mapping User story mapping Team Topologies Northstar Framework Event modelling Domain driven data Service blueprints Collaborative discovery & design Lean value tree Specification by example Core domain chart Domain message flow Cynefin Behavior driven development
domain team Domain discovery as disjointed, localized, timeboxed effort DDD workshops DDD workshops DDD workshops domain team domain team Impact things linearly Friction points
initiative involves multiple teams, domains & systems domain domain domain domain Decision decentralized [autonomy] information not decentralized Dependencies and handoffs Optimized parts, not relations
does not necessarily bring coherence Images by Ursus Wehrly. Inspiration from Sonja Blignaut "https://www.morebeyond.co.za/making- coherence- coherent/"
rules, or both that establishes a pattern of design for an entire system. A language that allows the system to be discussed and understood in broad strokes. -Eric Evans "Systemic understanding in broad strokes"
model development. Because an ill-fitting structure is worse than none, it is best not to shoot for comprehensiveness, but rather to find a minimal set that solves the problems that have emerged. Less is more. -Eric Evans Large Scale Structure "models at scale must be minimal"
disadvantaged. You also don't feel empowered to change the narrative. Without coherence, people will not understand their place in the system. - Jabe Bloom
squad Tribe B squad A new initiative OKR OKR OKR OKR OKR OKR OKR A shared and deeper understanding of the "why" How does my contribution matter in the big picture, over time? Find my place in the story
Star Framework" input input input input North Star (The purpose) The value "bets" The work "bets" Opportunities Interventions leverage point solution agnostic, but opinionated actual work experiment epics stories 1-3 years 1-3 quarters 1-3 months 1-3 sprints
work "bets" Opportunities Speak to the customers goals and concerns xxx xxx Interventions Design the mobile/web UX to ask for customer consent Withdraw consent Author consent text leverage point solution agnostic, but opinionated actual work experiment epics stories 1-3 years 1-3 quarters 1-3 months 1-3 sprints Fast credit decision using account transaction history with minimal manual input [Trust/Breadth] How many customers trust us with their data? Facilitate a trust- building and hassle free consent experience [Data] How can we build a usable & compliant PSD2 infra? Source, store and serve PSD2 data compliantly [Accuracy & compliance] How can we calculate an accurate budget? Make accurate & invidualised budget using transaction data [Engagement & Transparency] How can we engage customer to validate budget? Engage customers in a "conversation" to validate prefilled budget items & enable a holistic overview of customer's finances [Efficiency/speed] How fast can a customer succeed with her goal? Increase credit decision automation by using transaction data to cut down on manual rules as well as customer input questions Expand consent Collaboratively kickoff complex initiatives An field example: the PSD2 initiative
decision really fast after he has given PSD2 consent] when Customer is able to see and validate budget When the customer has to answer fewer questions he/she is able to get credit faster and with less hassle Happy when I see that the information I filled in once still is there. (Kids, Housing type, etc.) Less annoyed due to fewer questions, more help with debt information when a customer experience a successful journey, they are likely to return when [a car buyer] is presented with prefilled information and required to answer only a few questions Happy that I get help in accesing debt information provided to public authorities (by enabling eTax combined with PSD2) when a customer is able to drive away with a new car [PSD2 design sprint] empathy mapping - chart the path through a customer's emotional journey Reframe compliance requirements in the customer context Human- centered design
right problem. We fail more often because we solve the wrong problem than because we get the wrong solution to the right problem. -Russel Ackoff, "Redesiging the Future" Solving the right problem?
& consequences (and boundary spanning roles) "Domain- Driven Architecture at Scale" recommoning (domain- driven platforming) "understand to influence" "find my place in the story" "alternate realities & possible futures"
of our knowledge. "Theories of truth (truth=a useful model)" Credit: Jabe Bloom Coherence Correspondence Truth is what corresponds to facts. Some facts are outside of our knowledge.
current economy View & edit budget UX to provide customer data and consents Automatic budget calculation Statistical estimation methods Team 2 1 1 Initiative 1 Budget API for housing journey 2020 Team 2 Team 1 Automated current budget
current economy Regulators Enforce compliant credit practice Individualised budget calculation View & edit budget Team 1 UX to provide customer data and consents Automatic budget calculation Statistical estimation methods Team 2 1 1 Several banks got orders from the Danish Financial Supervisory Authority budget must be individualised Initiative 1 Budget API for housing journey 2020 Automated current budget risk of losing license to operate
current economy Regulators Enforce compliant credit practice Individualised budget calculation UX to provide customer data and consents Automatic budget calculation Statistical estimation methods 1 1 Initiative 1 Budget API for housing journey Initiative 2 "Buy" - quick compliance 2020 2021 Buy - quick compliance Team 1 Team 2 Team 2 View & edit budget Team 3 2 Automated current budget
current economy Regulators Enforce compliant credit practice Individualised budget calculation UX to provide customer data and consents Automatic budget calculation Statistical estimation methods Team 2 1 1 t Initiative 1 Budget API for housing journey Initiative 2 "Buy" - quick compliance 2020 2021 Buy - quick compliance Vendor has monopoly now - very expensive Questionable vendor solution quality View & edit budget 2 Team 1 Team 2 Team 3 Automated current budget No funding to use vendor solution in all financing journeys
current economy Regulators Enforce compliant credit practice Individualised budget calculation UX to provide customer data and consents Automatic budget calculation Statistical estimation methods Team 2 1 1 Buy - quick compliance Estimate using account transaction data View & edit budget 2 t Initiative 1 Budget API for housing journey Initiative 2 "Buy" - quick compliance 2020 2021 Initiative 3 "Build" individualised budget in legacy systems 2022 Team 4 Team 3 Team 2 3 Team 1 Automated current budget
current economy Regulators Enforce compliant credit practice Individualised budget calculation UX to provide customer data and consents Automatic budget calculation Statistical estimation methods Team 2 1 1 Buy - quick compliance Estimate using account transaction data View & edit budget 2 t Initiative 1 Budget API for housing journey Initiative 2 "Buy" - quick compliance 2020 2021 Initiative 3 2022 Team 4 Team 3 Team 2 3 Team 1 compliance more technical debt + Automated current budget "Build" individualised budget in legacy systems
current economy Regulators Enforce compliant credit practice Individualised budget calculation UX to provide customer data and consents Automatic budget calculation Statistical estimation methods Team 2 1 4 Estimate using account transaction data View & edit budget 2 Initiative 1 Budget API for housing journey Initiative 2 "Buy" - quick compliance 2020 2021 Initiative 3 2022 Team 4 Team 3 Team 2 3 Team 1 4 2022 Initiative 4 "Build" individualised budget in new Budget API 4: migrate logic to with new architecture Automated current budget "Build" individualised budget in legacy systems
current economy Regulators Enforce compliant credit practice Individualised budget calculation UX to provide customer data and consents Automatic budget calculation Statistical estimation methods Team 2 1 4 Estimate using account transaction data View & edit budget 2 Initiative 1 Budget API for housing journey Initiative 2 "Buy" - quick compliance 2020 2021 Initiative 3 2022 Team 4 Team 3 Team 2 3 Team 1 4 2022 Initiative 4 4: Connect with initiative 1 with new architecture Complex negotiation Automated current budget "Build" individualised budget in new Budget API "Build" individualised budget in legacy systems
current economy Regulators Enforce compliant credit practice Individualised budget calculation UX to provide customer data and consents Automatic budget calculation Statistical estimation methods Team 2 1 4 Estimate using account transaction data View & edit budget 2 Initiative 1 Budget API for housing journey Initiative 2 "Buy" - quick compliance 2020 2021 Initiative 3 2022 Team 4 Team 3 Team 2 3 Team 1 4 2022 Initiative 4 5 ??? Initiative 5? "Build" - budget domain as internal product "Build" - budget domain as external product Can we compete on speed and cost? Someone else thinking similar thoughts? Do we have the skills to pull it off? Automated current budget "Build" individualised budget in new Budget API "Build" individualised budget in legacy systems "Build" a full- stack budget product
mandate of team autonomy Team autonomy gets in the way of good design Let's reshape architecture to fit the team boundaries, so we can work independently of other teams. Shipping org charts
initiative level The problem is systemic Consumer finance journey credit card, consumer loan... "automation" competing agendas good will hunting? an initiative an initiative Current Budget (DK) Housing journey buying & owning a home Asset finance journey car, boat, auto- camper...
facing processes Products Digital convenience Value drivers efficiency drivers Decrease variation (variation: unintended difference in output) Examples: consumable primitives Compute Storage Network Database Standardize to differentiate (Help others differentiate by making myself less different) Examples: resources gain value when shared Well- formed functions (APIs) & data Repeatable business processes Standardized configurations of primitives Other ways of "commoning" resources to accelerate differentiation value & efficiency drivers
Decrease variation (variation: unintended difference in output) value & efficiency drivers Recommoning (Re-platforming) Examples: Customer experience Customer facing processes Products Digital convenience Examples: consumable primitives Compute Storage Network Database Examples: resources gain value when shared Well- formed functions (APIs) & data Repeatable business processes Standardized configurations of primitives Other ways of "commoning" resources to accelerate differentiation Standardize to differentiate (Help others differentiate by making myself less different)
platform squad Another differentiation squad not in current initiative ... how can the platform design improve the optionality for more differentiation squads? Current Initiative optimize in "lines" platform squad differentiation squad platform team optimize in "networks" differentiation squad differentiation squad differentiation squad
we simplify for the common good? How can we make a supple design less shakable by changes in the environment? What should be configurable? Where is the best sociotechnical boundary? Recommoning needs domain- driven architecture Consumer finance journey credit card, consumer loan... "automation" an initiative an initiative Current Budget (DK) Housing journey buying & owning a home Asset finance journey car, boat, auto- camper... How can we craft deliberate dependencies? to tackle the sociotechnical complexity at scale
hensive structures Negotiate common ground Architect by artefacts ("views") collaborative discovery & design adaptive capacity to integrate information (OODA) be better at systems thinking Think in Conditions- consequences Think in Means- ends Upfront design decisions Hard to reverse
the first immediate impulse is to solve the problem for them A team comes to me --> how can I help them to find the best solution? Facilitate a space for conversation and negotiation to continue. Stay together in the struggle. Absorb feedback signals. "From advocacy to inquiry" A team comes to me --> take a step back. My job is not solving the problem for them. It's not even helping them find the answer here and now.
architect & "cluster" architect Listen to the wisdom of the system Socialize knowledge and practice Build relation, trust, safety Speak the common language linear non-linear Less stressed about outcome Expose my own thinking effectively (advocacy) .. and make that thinking open to the influence of others (inquiry) Facilitate conversation & negotiation
recommoning (domain driven platforming) conditions & consequences (and boundary spanning roles) "Domain- Driven Architecture at Scale" "understand to influence" "find my place in the story" "standardize to differentiate" "alternate realities & possible futures" "listen to the wisdom of the system"