sociotechnical ddd
play

Sociotechnical DDD Nick Tune | @ntcoding Incremental Architecture - PowerPoint PPT Presentation

Sociotechnical DDD Nick Tune | @ntcoding Incremental Architecture is essential in a modern Agile development environment Allen Holub (@allenholub) ntcoding ACCELERATING INNOVATION CYCLES Look for Signals From Expects The


  1. Sociotechnical DDD Nick Tune | @ntcoding

  2. “ Incremental Architecture is essential in a modern Agile development environment… 
 — Allen Holub (@allenholub) ntcoding

  3. ACCELERATING INNOVATION CYCLES  Look for Signals From Expects The Market 陸  Engineering 🌏 🤪 📲 Great Customer The Domain 崙 倫 Teams Experience Aligned With A Model Of 🏜 Enabled By Developed By Software Architecture ntcoding

  4. “ the key to incremental architecture is to build on a framework that can accommodate change… that framework is the domain.… By modeling the domain, you can more easily handle changes to the domain 
 — Allen Holub (@allenholub) ntcoding

  5. “A loosely coupled software architecture and org structure to match” is a key predictor of: 1. Continuous Delivery Performance 
 2. Ability to scale org and increase 
 performance linearly ntcoding

  6. “ [In our study at Thoughtworks we found] work takes an order of magnitude longer when it leaves a team. — James Lewis (@boicy) ntcoding

  7. $ SOCIOTECHNICAL DDD The 5 Interconnected Elements Value 📲 🌏 Customer The Domain Experience 陸  🏜 Software The Organisation 崙 倫 Architecture ntcoding

  8. AGENDA • The Costs of Coupling in Sociotechnical Systems • Sociotechnical DDD Heuristics & Patterns • Large Scale Sociotechnical DDD • Sociotechnical Adaptation • Becoming a Sociotechnical Architect ntcoding

  9. The Cost of Coupling #1 in Sociotechnical Systems

  10. Choosing when/where to add dependencies between components in a system is on of the most fundamental and key design challenges. ntcoding

  11. Domain LUXURY HOLIDAYS

  12. BONA FIDE GENERIC CONTEXTS ✉ ✉ ✉ ✉ ntcoding

  13. DEPENDENCY DECISION CRITERIA ✅ Consumers have not lost any capabilities ✅ Consumers can focus on core areas ✅ Consumers not slowed by dependency ✅ Reduced duplication removes waste ntcoding

  14. 
 
 
 
 GOOD OR BAD REUSE? Luxury Mass Market Luxury Mass Market Experiences Holidays Experiences Holidays 💶 💶 💶 💶 💶 💶 💶 💶 Package Package Builder Builder Package Builder ntcoding

  15. DEPENDENCY DECISION CRITERIA ❌ Consumers have lost capabilities ❌ Consumers blocked waiting for features ❌ Political battles ❌ Perception of duplication was false ntcoding

  16. 
 
 
 
 DECEPTIVE REUSE CONTEXTS Luxury Mass Market Luxury Mass Market Experiences Holidays Experiences Holidays 💶 💶 💶 💶 💶 💶 💶 💶 😮 😃 👺 Package Builder Package Builder Core Supportive Package Builder ntcoding

  17. SHARED SERVICE CHECKLIST 1. Will consumers lose any capabilities? 2. Will consumers gain new capabilities? 3. Can consumers focus more on their strategic initiatives? ntcoding

  18. SHARED SERVICE CHECKLIST 4. Will consumers be slowed down by the new dependency? 5.Will the shared service team be responsive? 6. Will the number of consumers be problematic? ntcoding

  19. SHARED SERVICE CHECKLIST 7. Will the cost of migration be excessive? 8. Can consumers refuse to migrate? 9. Will the shared service improve business efficiency/eliminate waste? ntcoding

  20. Sociotechnical DDD #2 Heuristics & Patterns

  21. Domain FINANCIAL PRODUCTS

  22. PRODUCT-ALIGNED Credit Cards Mortgages Loans ntcoding

  23. SOCIOTECHNICAL DDD HEURISTIC Model the Domain From Multiple Perspectives ntcoding

  24. EVENT STORMING

  25. PRODUCTS VS CUSTOMER SEGMENTS Credit Cards Mortgages Loans 💱 Tier 1 Products 💱💱 Tier 2 Products 💱💱💱 Tier 3 Products ntcoding

  26. SOCIOTECHNICAL DDD HEURISTIC Strive to Align Software and Teams with Business Value Boundaries 
 (aka Core Domains) ntcoding

  27. To design the optimal architecture, you need to know the business model. ntcoding

  28. LEARN THE BUSINESS MODEL ntcoding

  29. CORE, SUPPORTING, GENERIC DOMAINS Tier 3 Free Financial Products Advice (core) (supportive) Payments (generic) ntcoding

  30. SOCIOTECHNICAL DDD HEURISTIC Balance Business Value Alignment with Domain Co-change ntcoding

  31. HIGH CROSS-SERVICE CO-CHANGE Domain Dependencies Become Organizational Bottlenecks Tier 1 Service Tier 2 Service Tier 3 Service ntcoding

  32. SOCIOTECHNICAL DDD HEURISTIC Understand the Social Impact of the Software Architecture ntcoding

  33. ANTI-PATTERN: SELFISH SILOS 😢 😎 User feedback User Facing Team We’re always blocked! Stuck in the Middle Team We’re always blamed! “Users? Make up your mind agile Selfish Silo Team 🙊 What are hippies! they?” ntcoding

  34. THE PINK CHECK Credit: Alberto Brandolini Architecture facilitates: ✅ Purpose ✅ Autonomy ✅ Mastery ntcoding

  35. SOCIOTECHNICAL DDD HEURISTIC Map out the Politics ntcoding

  36. ARCHITECTURE IS POLITICS You want autonomous end-to-end teams? One manager is going to lose some of their power. 👹⚔ 🤵🛢 Digital IT Enterprise IT UI API API UI API API ntcoding

  37. https://medium.com/nick-tune-tech-strategy-blog/sociotechnical-design-variables-52b7048f7b62

  38. SOCIOTECHNICAL DDD HEURISTIC Understand and Model the System at Different Levels ntcoding

  39. Large Scale #3 Sociotechnical DDD

  40. ntcoding

  41. Domain GROCERY SHOPPING

  42. 
 
 
 
 LARGE SCALE PRODUCT ALIGNED Physical Online Mobile Bank Stores Shopping Shopping ntcoding

  43. Why do I need 4 separate logins??!!

  44. Why can’t I see my in- store, mobile, and web orders all in one place??!!

  45. Why can’t I use my in-store loyalty points online??!!

  46. 
 
 
 
 LARGE SCALE CAPABILITY DUPLICATION Physical Online Mobile Bank Stores Shopping Shopping Identity Identity Identity Identity Orders Orders Orders Orders Loyalty Loyalty Loyalty Loyalty ntcoding

  47. 
 
 
 
 LARGE SCALE CAPABILITY ALIGNED Physical Online Mobile Bank Stores Shopping Shopping Identity Orders Loyalty ntcoding

  48. PLATFORM ECOSYSTEM 📲 🖦 Experiences & Edge Services BFF BFF BFF API Platform Identity Orders Loyalty ntcoding

  49. 
 PRODUCTS VS CAPABILITIES Disclaimer: Lots of caveats here Products Capabilities Seamless overall user experience 
 Optimised local user experience 
 Single product innovation speed 
 Business model innovation speed High programme-level Minimal programme-level coordination and negotiation 
 coordination and negotiation 
 Perceived cost centers P&Ls ntcoding

  50. SOCIOTECHNICAL DDD HEURISTIC Organise Large Scale Structure Around Domain Cohesion ntcoding

  51. 
 
 
 
 DOMAIN COHESION Physical Online Mobile Bank Stores Shopping Shopping Identity Orders Orders Orders Loyalty Loyalty ntcoding

  52. SOCIOTECHNICAL DDD HEURISTIC Join data outside the domain to preclude sociotechnical coupling ntcoding

  53. JOIN DATA OUTSIDE THE DOMAIN Physical Store Orders 🖦 🖦 ‘My Orders’ Data Digital Page Warehouse Orders ntcoding

  54. Sociotechnical #4 Adaptation

  55. SOCIOTECHNICAL DDD HEURISTIC Connections are just as important 
 as boundaries ntcoding

  56. PERFECT BOUNDARIES! Sprint 1 Co-change Service A Service B Service C ntcoding

  57. DEPENDENCIES ADAPT AS BUSINESS CONTEXT CHANGES Sprint 2 Co-change 🔦 Service A Service B Service C ntcoding

  58. Don’t force yourself to get boundaries right at the first attempt. Make everybody a stakeholder in the outcome. ntcoding

  59. Build team fluidity and adaption into the DNA of your culture. ntcoding

  60. CLASSIC SOCIOTECHNICAL DDD PATTERNS Relationship patterns from the book S OH SK 🤞 ACL C Anti- Shared Kernel Open Host Customer Conformist corruption Service Supplier Layer ntcoding

  61. REORG TO REMOVE DEPENDENCY ntcoding

  62. BUILD RESILIENCE WITH ORG FLUIDITY Static team lead Rotating developer Sub-team 2 Sub-team 3 Typically 1 developer rotates per-team per- month Sub-team 4 Sub-team 1 ntcoding

  63. NTCODING.CO.UK/BLOG ntcoding

  64. Becoming a #5 Sociotechnical Architect

  65. SOCIOTECHNICAL ARCHITECTS… 1. Domain-driven 2. Value-guided 3. Socially-aware 4. Technically-pragmatic 5. CX-focused ntcoding

  66. SOCIOTECHNICAL ARCHITECT TOOLBOX 1. Event Storming 2. Business Model Canvas 3. The Pink Check 4. Mob Programming 5. User Research ntcoding

  67. LET’S KEEP IN TOUCH… ntcoding.co.uk/sociotechnical DDD London Meetup @ddd_london ntcoding.co.uk/blog ntcoding.co.uk/speaking @ntcoding /in/ntcoding ntcoding

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend