Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Blending Product Thinking with Architecture


Published on

Product Thinking - understanding the use and need - is critical to not over engineering a product. In this session, we explore and use simple tools that help teams blend architecture with the need of the product. Too much design up front and you are bumping into the design all of the time (and losing time). Not enough design and your system can crumble in reality. How do you blend architecture so you have the right decisions at the right time, and give them enough due diligence? How do you embrace cloud and microservices and not risk getting into different failure scenarios or overly complicated maintenance and ripple effects? In this session we will walk through visualizations that help teams blend product thinking with architecture. Along the way, we will look at microservices and domain modeling as well as chaos engineering and fault tolerance - blending all of these into a context that is consumable by all and gives the right emphasis at the right time. Leave this session with simple visualizations and approaches that you can apply immediately to start blending product with architecture, especially if you are looking to run in a cloud world.

Published in: Technology
  • Be the first to comment

  • Be the first to like this

Blending Product Thinking with Architecture

  1. 1. Blending Product Thinking With Architecture Joel Tosi @joelTosi
  2. 2. My Perspective Design Deliver Learn
  3. 3. Behind Every Architecture Decision There is a Product Assumption @joelTosi
  4. 4. Expected Outcomes Simple Visuals You Can Use Now Less 'What Architecture' and More 'When' Leverage Product Context to Ground Decisions Ideas on Documenting Decisions @joelTosi
  5. 5. What is Architecture? Web API Logic / Calculations Fast Data Slow Data @joelTosi
  6. 6. What is Architecture? © Notes on the Synthesis of Form – Christopher Alexander @joelTosi
  7. 7. What is Architecture? Reflection of System Dependencies Optimal decomposition / Grouping Biased simplification - mereotopology © Notes on the Synthesis of Form – Christopher Alexander @joelTosi
  8. 8. Applying to Software Are the architectures you work on simple? Do the components have inter-dependencies & trade-offs? Does the language of the solution bias your decisions? @joelTosi
  9. 9. Using Product to Ground Decisions @joelTosi
  10. 10. @joelTosi
  11. 11. @joelTosi
  12. 12. Blending Product with Architecture
  13. 13. Using Targets and Journeys
  14. 14. All the Possibilities @joelTosi
  15. 15. Family Traveling @joelTosi
  16. 16. Business Traveler @joelTosi
  17. 17. Adventurer @joelTosi
  18. 18. Determining Decision Points Known Uncertain DependentIsolated @joelTosi
  19. 19. Sample Market Data Known Uncertain DependentIsolated Message Latency Message Format Caching RecoveryAPI Data Segregation Logging Framework Containers Mediums Partners Authentication Entitlement Matching Algorithms @joelTosi
  20. 20. MicroServices @joelTosi
  21. 21. Chaos! @joelTosi
  22. 22. In Action
  23. 23. Understanding the Assumptions of your Architecture @joelTosi
  24. 24. How it Will Be Used vs What You Want
  25. 25. What if you were wrong? @joelTosi
  26. 26. Try This Document Product Assumptions You Are Making Document Technical Assumptions You Are Making Think of 3 Ways You Might Be Wrong For Each Error, What Would Change? @joelTosi
  27. 27. What Are Your Constraints? Never been a perfect architecture Use Product Discussions to see what decisions when Grow context around the decisions - why / when What Can You Do About It? Necessary or Accidental? Assumed or Real? @joelTosi
  28. 28. Would New Constraints Help? Not All of the Databases No New Code Must Respond in Less Than 2 Seconds @joelTosi
  29. 29. Our Job Take a World of Possibilities… Apply Proper Product Understanding and Constraints… To Deliver Maneuverable Systems That Bring Joy @joelTosi
  30. 30. Recap Be aware of models and dependencies Use Product Discussions to avoid language bias Use Journeys to find when decisions can be made Understand parts of the system need to be right / emerge @joelTosi
  31. 31. Recommended Reading Jerry Weinberg – Are Your Lights On? Christopher Alexander - Notes on the Synthesis of Form
  32. 32. @joeltosi Questions? Coaching & Developing Product Discovery & Delivery MicroServices Course - _________________________________________ _________________________________________