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.

Apportioning Monoliths

4,235 views

Published on

Breaking up monoliths in your schedule, your team and in your software architectures to increase velocity and innovation. The video of my presentation of this talk at the Daho.am 2015 conference is available at https://www.youtube.com/watch?v=E8OQ_u7El38&lt

Published in: Software

Apportioning Monoliths

  1. 1. Apportioning Monoliths Kevin Goldsmith
  2. 2. Let’s say I wanted to build a large application
  3. 3. Some requirements ‣ Mustscaletomillionsofusers ‣ Supportmultipleplatforms ‣ Handlecomplexbusinessrules ‣ Competitiveinafastmovingmarket ‣ ReactQuickly ‣ Out-innovate
  4. 4. A product like this
  5. 5. A product like this ‣ 60MillionMonthlyActiveUsers ‣ 58Countries(sorry,notBelarusyet) ‣ >20,000songsaddedperday ‣ >1.5Bplaylists ‣ Incrediblycomplexbusinessrules ‣ Lotsofcompetition
  6. 6. A product like this ‣ 60MillionMonthlyActiveUsers ‣ 58Countries(sorry,notBelarusyet) ‣ >20,000songsaddedperday ‣ >1.5Bplaylists ‣ Incrediblycomplexbusinessrules ‣ Lotsofcompetition
  7. 7. Howdoyousupport theserequirements whilemovingfast andinnovating?
  8. 8. Agile!
  9. 9. Product Release Calendar
  10. 10. Product Release Calendar Spec
  11. 11. Product Release Calendar Spec Code
  12. 12. Product Release Calendar Spec Code Test
  13. 13. Product Release Calendar Spec Code Test Release
  14. 14. Product Release Calendar Spec Code Test Release
  15. 15. Product Release Calendar Spec Code Test Release ProductInnovation
  16. 16. Product Release Calendar Spec Code Test Release ProductInnovation
  17. 17. Product Release Calendar Spec Code Test Release ProductInnovation
  18. 18. Product Release Calendar Spec Code Test Release ProductInnovation
  19. 19. Product Release Calendar Spec Code Test Release ProductInnovation
  20. 20. Product Release Calendar Spec Code Test Release ProductInnovation
  21. 21. Product Release Calendar Spec Code Test Release ProductInnovation
  22. 22. “To improve is to change; to be perfect is to change often” Winston Churchill
  23. 23. I thought you said you wanted to build a large application?
  24. 24. Scaling Agile
  25. 25. Challenges
  26. 26. Challenges Synchronization
  27. 27. Challenges Synchronization { Scrum of scrums PSI/Release planning Cadence
  28. 28. Challenges Synchronization Alignment
  29. 29. Solution Autonomous Teams
  30. 30. Autonomous adjective au·ton·o·mous - ȯ-ˈtä-nə-məs (of a country or region) having the freedom to govern itself or control its own affairs. "the federation included sixteen autonomous republics" having the freedom to act independently. "school governors are legally autonomous" synonyms: self-governing, independent, sovereign, free, self-ruling, self- determining, autarchic; self-sufficient "an autonomous republic"
  31. 31. Autonomous adjective au·ton·o·mous - ȯ-ˈtä-nə-məs (of a country or region) having the freedom to govern itself or control its own affairs. "the federation included sixteen autonomous republics" having the freedom to act independently. "school governors are legally autonomous" synonyms: self-governing, independent, sovereign, free, self-ruling, self-determining, autarchic; self-sufficient "an autonomous republic"
  32. 32. Challenges Synchronization Alignment
  33. 33. Server Core Library Platform Platform Platform Platform Infrastructure
  34. 34. “Organizations which design systems ... are constrained to produce designs which are copies of the communication structures of these organizations” Melvin Conway
  35. 35. Server Core Library Platform Platform Platform Platform Infrastructure
  36. 36. Server Core Library Platform Platform Platform Platform Infrastructure VP client director client manager client manager client manager client manager server director core manager infra director server manager server manager
  37. 37. Server Core Library Platform Platform Platform Platform Infrastructure
  38. 38. Server Core Library Platform Platform Platform Platform Infrastructure
  39. 39. Server Core Library Platform Platform Platform Platform Infrastructure
  40. 40. Server Core Library Platform Platform Platform Platform Infrastructure
  41. 41. Server Core Library Platform Platform Platform Platform Infrastructure
  42. 42. Server Core Library Platform Platform Platform Platform Infrastructure
  43. 43. Inverse Conway Maneuver evolve your team and organizational structure to promote your desired architecture.
  44. 44. Server Core Library Platform Platform Platform Platform Infrastructure
  45. 45. Server Core Library Platform Platform Platform Platform Infrastructure
  46. 46. platforms Server Core Library Platform Platform Platform Platform Infrastructure
  47. 47. platforms Server Core Library Platform Platform Platform Platform Infrastructure FeatureTeam FeatureTeam FeatureTeam FeatureTeam FeatureTeam FeatureTeam
  48. 48. platforms Server Core Library Platform Platform Platform Platform Infrastructure FeatureTeam FeatureTeam FeatureTeam FeatureTeam FeatureTeam FeatureTeam
  49. 49. platforms Server Core Library Platform Platform Platform Platform Infrastructure FeatureTeam FeatureTeam FeatureTeam FeatureTeam FeatureTeam FeatureTeam
  50. 50. platforms Server Core Library Platform Platform Platform Platform Infrastructure FeatureTeam FeatureTeam FeatureTeam FeatureTeam FeatureTeam FeatureTeam
  51. 51. platforms Server Core Library Platform Platform Platform Platform Infrastructure FeatureTeam FeatureTeam FeatureTeam FeatureTeam FeatureTeam FeatureTeam
  52. 52. Full-stack autonomous teams
  53. 53. Full-stack autonomous teams increases the learning opportunities
  54. 54. Throughput over velocity
  55. 55. Full-stack autonomous teams Works well for steady state of development
  56. 56. Full-stack autonomous teams Need to shift for the step-change innovation projects towards synchronization (but not completely)
  57. 57. What this looks like at Spotify ‣ 70+teams ‣ 600+Developers ‣ 5Developmentoffices ‣1Product
  58. 58. Full-stack autonomous teams Requires you to structure your application in loosely coupled parts
  59. 59. Loosely Coupled Architecture
  60. 60. Server
  61. 61. LoadBallancer
  62. 62. Microservices ‣ Easiertoscalebasedonreal-world bottlenecks ‣ Easiertotest ‣ Easiertodeploy ‣ Versionindependently ‣ Lesssusceptibletolargefailures ‣ Hardertomonitor ‣ Needgooddocumentation
  63. 63. Client
  64. 64. Shared Frameworks
  65. 65. Shared Frameworks FeatureTeam FeatureTeam FeatureTeam FeatureTeam FeatureTeam FeatureTeam FeatureTeam
  66. 66. Shared Frameworks FeatureTeam FeatureTeam FeatureTeam FeatureTeam FeatureTeam FeatureTeam FeatureTeam App Release Team
  67. 67. Shared Frameworks FeatureTeam FeatureTeam FeatureTeam FeatureTeam FeatureTeam FeatureTeam FeatureTeam App Release Team Common UI Components UI Interface Guidelines SharedTesting Frameworks
  68. 68. Shared Frameworks FeatureTeam FeatureTeam FeatureTeam FeatureTeam FeatureTeam FeatureTeam FeatureTeam App Release Team IntegrationTesting App Submittal UI Consistency Validation
  69. 69. Shared Frameworks FeatureTeam FeatureTeam FeatureTeam FeatureTeam FeatureTeam FeatureTeam FeatureTeam App Release Team Shared DevelopmentTree Best Practice Sharing
  70. 70. Questions twitter: @kevingoldsmith

×