Ce diaporama a bien été signalé.
Nous utilisons votre profil LinkedIn et vos données d’activité pour vous proposer des publicités personnalisées et pertinentes. Vous pouvez changer vos préférences de publicités à tout moment.

Sociotechnical Architecture Patterns

Team design and software architecture are heavily interdependent. Learn about the different types of patterns and you'll design better human and technical systems.

  • Identifiez-vous pour voir les commentaires

Sociotechnical Architecture Patterns

  1. 1. SOCIOTECHNICAL ARCHITECTURE PATTERNS Nick Tune - @ntcoding
  2. 2. ntcoding I forget my keys, passport, clothes why!!??
  3. 3. ntcoding http://www.dailymail.co.uk/travel/travel_news/article-4739838/Air-India-pilots-forget-raise-landing-gear.html
  4. 4. ntcoding Have we forgotten a fundamental motivation of strategic DDD?
  5. 5. ntcoding Use Strategic DDD to enable multiple teams to thrive in large, complex domains.
  6. 6. ntcoding “ [Strategic design] enables the modeling process to scale up to very complicated domains. Most such decisions must be made at team level. — Eric Evans (@ericevans0)
  7. 7. ntcoding “ Generally speaking, there is a correspondence of one team per BOUNDED CONTEXT.. — Eric Evans (@ericevans0)
  8. 8. ntcoding “Strategic design principles must guide design decisions to reduce the interdependence of parts — Eric Evans (@ericevans0)
  9. 9. ntcoding “the specific structures discussed are only examples; they are not a comprehensive catalog. New ones should be invented as needed… — Eric Evans (@ericevans0)
  10. 10. ntcoding Strategic design patterns are sociotechnical patterns - teams and software are interdependent.
  11. 11. ntcoding What are the consequences if we aren’t aware of the patterns and we choose the wrong ones?
  12. 12. ntcoding
  13. 13. ntcoding ACTIVITY-ORIENTED ARCHITECTURE FRONTEND TEAM BACKEND TEAM DBAs
  14. 14. ntcoding PARTNER-ALIGNED ARCHITECTURE Ad Campaign Builder Twitter Ads Facebook Ads LinkedIn Ads Ad Campaign Analytics
  15. 15. ntcoding CAPABILITY-ALIGNED ARCHITECTURE Campaign Management Ad Creatives Campaign Analytics Campaign Optimisation
  16. 16. ntcoding CHOOSE ONE
  17. 17. ntcoding We need to add Snapchat to close a huge deal!
  18. 18. ntcoding Snapchat? Facebook ads are 95% of our revenue.
  19. 19. ntcoding FLOW IS A COMPROMISE
  20. 20. “ ntcoding [In our study at Thoughtworks we found] work takes an order of magnitude longer when it leaves a team. — James Lewis (@boicy)
 https://t.co/2EIhXGVDHV
  21. 21. ntcoding Strategic design is technical, economical, and political… So are the consequences of poorly-designed boundaries.
  22. 22. ntcoding “[Strategic design] decisions are where design and politics often intersect. — Eric Evans (@ericevans0)
  23. 23. #1 STRUCTURAL PATTERNS
  24. 24. ntcoding OCTOPUS CONTEXT
  25. 25. ntcoding OCTOPUS CONTEXT GDPR
  26. 26. ntcoding OCTOPUS ECONOMICS • High levels of coordination can impact flow in many teams • For compliance scenarios, it is about protecting rather than generating revenue
  27. 27. ntcoding OCTOPUS POLITICS • Nobody wants to slow down feature delivery for somebody else’s roadmap • High levels of synchronous alignment
  28. 28. ntcoding OCTOPUS TECHNOLOGY • Try to centralise complexity in the Octopus • Technology standardisation can help • A bit of integration design up front can save a lot of politics in the future
  29. 29. ntcoding Be wary of patterns like the Octopus which introduce many dependencies. Can we avoid them instead?
  30. 30. ntcoding ENTITY LIFECYCLE PIPELINE Review Resubmit Renegotiate
  31. 31. ntcoding ENTITY LIFECYCLE PIPELINE • If revenue is generated at the end, every team has to bring their A Game. • Changes likely to cascade through many teams (maybe the boundaries are wrong) • Consider UI composition to avoid frontend activity team
  32. 32. ntcoding PROPOSAL PIPELINE Routing Fleet Crew
  33. 33. ntcoding CIRCLE OF LIFE Acquire Register Monetise
  34. 34. #2 BUSINESS MODEL ALIGNMENT PATTERNS
  35. 35. ntcoding DOG FOOD CONTEXT!
  36. 36. ntcoding DOG FOOD CONTEXT GOAL We don’t want to optimise our flow, we want to have the same experience as customers in order to grow our strategic capabilities.
  37. 37. ntcoding DOG FOOD CONTEXT Music Streaming Platform External white label Internal team
  38. 38. ntcoding DOG FOOD ECONOMICS • ROI is not the goal - making a loss may be acceptable • Feedback to improve core products is the goal • Dog food context can grow into a product
  39. 39. ntcoding DOG FOOD POLITICS • Every team wants to build the star product not a loss leader 
 (But it can evolve into a bona-fide product) • Managers may use deceptive motivational techniques
  40. 40. ntcoding DOG FOOD TECHNOLOGY • Freedom to use any technology 
 (to simulate the customer experience) • Try out new tech in production
  41. 41. ntcoding ENTITY FUNNEL Standard Customers Premium Customers Gold Customers 💵 💵💵 💵💵💵
  42. 42. ntcoding ENTITY FUNNEL • Goal is to lose customers (to next tier) • Teams owning higher tiers may develop an arrogance • How to share / store customer data as they progress through funnel?
  43. 43. ntcoding ENGAGEMENT CONTEXT
  44. 44. ntcoding ENGAGEMENT CONTEXT Provides non-revenue generating capabilities that keep customers engaged with your product leading to conversions / sales.
  45. 45. ntcoding ENGAGEMENT VS REVENUE CONTEXTS Acquisition Accounts Fitness Coach Fitness Products 💍 💰 🔥💵 🔥💵
  46. 46. ntcoding What are the economical, technical, and political considerations of this pattern?
  47. 47. #3 EVOLUTIONARY PATTERNS
  48. 48. ntcoding SOCIOTECHNICAL EVOLUTION Teams Software Architecture Customers Build and evolve Provides value to Indicate raised expectations to The System of Work The System of Software The Market
  49. 49. ntcoding MITOSIS / GROW AND SPLIT Pattern from Dynamic Reteaming by Heidi Helfand
  50. 50. ntcoding SPLIT BY REVENUE / ENGAGEMENT InStreet InStreet Ads Community 💰 💍
  51. 51. ntcoding GROW AND SPLIT SYMPTOMS… • Lack of focus / excessive context switching • Nobody sure what others in team are working on • Standups are long and boring 
 (Even longer and even more boring than usual)
  52. 52. ntcoding Discovery SLICE AND SCALE Search Catalogue Search Recc. Catalogue Recc.
  53. 53. ntcoding SLICE AND SCALE • Adapt to changing consumer expectation • Team may not want to lose responsibility • A tight technical coupling may be hard to break - analyse market and anticipate evolution (see Wardley Maps)
  54. 54. ntcoding SLICE AND SCATTER Rules
  55. 55. ntcoding SLICE AND SCATTER • Expensive change - be sure it’s worth it • Breaking up a team is not easy • Software may be hard to decompose - a rewrite may be necessary
  56. 56. ntcoding SLICE AND MERGE CMS Mobile App CMS Mobile AppRemote Configuration
  57. 57. ntcoding SLICE AND MERGE • Ensure rate of co-change justifies change • Warning: Now there are 3 teams to coordinate • Technical separation may be painful
  58. 58. #4 COOPERATIVE PATTERNS
  59. 59. ntcoding Organisation design & capabilities are fractal. Cohesion applies at every level (with many caveats).
  60. 60. ntcoding Discovery LAYER 2 CAPABILITY (AKA TRIBE) Search Catalogue Search Recc. Catalogue Recc. Discovery Partnership
  61. 61. ntcoding LAYER 1 CAPABILITY Organisational Unit (the team) Technology (code, DBs…) Process Culture
  62. 62. ntcoding L2 L2 L3 Discovery Media INFINITE CAPABILITY LAYERS L1 L1 L1 L1 Search Catalogue Recommendations Delivery Downloading Streaming
  63. 63. ntcoding SUPPLY / DEMAND SPLIT Restaurants Bookings
  64. 64. ntcoding MARKET VERTICALS Healthcare Transport Government Telcos
  65. 65. ntcoding USER JOURNEYS Buy Sell SwapAuction
  66. 66. ntcoding POLITICAL BOUNDARIES Enterprise IT Digital IT
  67. 67. ntcoding CENTRALIZED PARTNERSHIP
  68. 68. #5 MODELLING HEURISTICS AND TECHNIQUES
  69. 69. ntcoding Should we model top down or bottom up?
  70. 70. “ ntcoding …multiple teams are unavoidable and it reduces effectiveness. How can we design teams so that the most important outcomes are affected the least?
 — Sriram Narayan (@sriramnarayan)
  71. 71. ntcoding PROMISE THEORY “Promised collaboration has to be constructed from the bottom-up, i.e. from the promises we know agents on the ground can keep”
  72. 72. ntcoding DESIGN HEURISTICS • Money heuristic (economic) • Theory of Constraints heuristic (economic) • Dan Pink heuristic (social) • Erlang heuristic (technical) • DDD heuristics
  73. 73. ntcoding GAME OF THRONES HEURISTIC
  74. 74. EVENT STORMING
  75. 75. ntcoding FORENSIC ANALYSIS Analyse source control history to identify dependencies in sociotechnical systems
  76. 76. #6 CROSS-POLLINATION PATTERNS
  77. 77. “ ntcoding silos are a case of misplaced or runaway autonomy. — Sriram Narayan (@sriramnarayan )
  78. 78. ntcoding 100% autonomy is not the goal. Valuable interactions and resilience are vital too.
  79. 79. ntcoding CROSS-POLLINATION PATTERNS • Nomad Pattern • Rotate Regularly: • Knowledge-sharing rotation • Relationship-building rotation • Personal-growth rotation See: Dynamic Reteaming by Heidi Helfand
  80. 80. ntcoding Inner sourcing enables us to take the people to the work to improve resilience.
  81. 81. #7 NEXT STEPS…
  82. 82. ntcoding You are already skilled modellers. Now it’s time to start thinking about the social and technical.
  83. 83. ntcoding FURTHER READING • Agile Org Design, Sriram Narayan • Dynamic Reteaming, Heidi Helfand • Capability Mapping - bit.ly/biz-cap-map • Sociotechnical Patterns - bit.ly/sociotech-arch
  84. 84. ntcoding SPEAK SOON? ntcoding.co.uk/workshops ntcoding.co.uk/blog OrgDesignPlaybook.com @ntcoding /in/ntcoding

×