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.

Organization and Architecture

1,703 views

Published on

This is the talk I presented at the O'Reilly Software Architecture conference in San Francisco on November 15th, 2016. I talk about Conway's Law, my experience building organizations and evolving architectures at Avvo, Spotify and Adobe; and I talk about ways to leverage the homomorphic force of Conway's Law to improve your architecture.

Published in: Software

Organization and Architecture

  1. 1. Organization and Architecture Kevin Goldsmith Chief Technology Officer
  2. 2. @kevingoldsmith #organdarch Conway’s Law
  3. 3. @kevingoldsmith #organdarch Datamation April, 1968
  4. 4. @kevingoldsmith #organdarch –Melvin Conway “Organizations which design systems... are constrained to produce designs which are copies of the communication structures of these organizations.”
  5. 5. @kevingoldsmith #organdarch –simpler restatement “Any piece of software reflects the organizational structure that produced it.”
  6. 6. @kevingoldsmith #organdarch –Eric Raymond’s restatement of Conway’s Law “If you have four groups working on a compiler, you'll get a 4-pass compiler.”
  7. 7. @kevingoldsmith #organdarch –Cheatham's Amendment to Conway's Law “If a group of N persons implements a COBOL compiler, there will be N-1 passes. Someone in the group has to be the manager.”
  8. 8. @kevingoldsmith #organdarch Server Core Library Platform Platform Platform Platform Infrastructure
  9. 9. @kevingoldsmith #organdarch 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
  10. 10. @kevingoldsmith #organdarch But we write software differently now!
  11. 11. @kevingoldsmith #organdarch “Speaking as a mathematician might, we would say that there is a homomorphism from the linear graph of a system to the linear graph of its design organization.” The homomorphic force
  12. 12. @kevingoldsmith #organdarch In abstract algebra, a homomorphism is a structure- preserving map between two algebraic structures (such as groups, rings, or vector spaces). Homomorphism
  13. 13. @kevingoldsmith #organdarch By Hagmann P, Cammoun L, Gigandet X, Meuli R, Honey CJ, et al. - File:Medial surface of cerebral cortex - gyri.png, CC BY 2.5, https://commons.wikimedia.org/w/index.php?curid=8636113
  14. 14. @kevingoldsmith #organdarch Server Core Library Platform Platform Platform Platform Infrastructure VP client client client clientclient servercore infra server server
  15. 15. @kevingoldsmith #organdarch “…products tend to “mirror” the architectures of the organizations in which they are developed. This dynamic occurs because the organization’s governance structures, problem solving routines and communication patterns constrain the space in which it searches for new solutions. “ Exploring the Duality between Product and Organizational Architectures: A Test of the “Mirroring” Hypothesis MacCormack, Baldwin, Rusnak - Harvard Business School, 2008 The Mirroring Hypothesis
  16. 16. @kevingoldsmith #organdarch
  17. 17. @kevingoldsmith #organdarch
  18. 18. @kevingoldsmith #organdarch
  19. 19. @kevingoldsmith #organdarch
  20. 20. @kevingoldsmith #organdarch
  21. 21. @kevingoldsmith #organdarch
  22. 22. @kevingoldsmith #organdarch
  23. 23. @kevingoldsmith #organdarch –Melvin Conway “It is a natural temptation of the initial designer -- the one whose preliminary design concepts influence the organization of the design effort -- to delegate tasks when the apparent complexity of the system approaches his limits of comprehension. This is the turning point in the course of the design. Either he struggles to reduce the system to comprehensibility and wins, or else he loses control of it. The outcome is almost predictable if there is schedule pressure and a budget to be managed.”
  24. 24. @kevingoldsmith #organdarch Are we trapped by Conway’s Law?
  25. 25. @kevingoldsmith #organdarch No.
  26. 26. @kevingoldsmith #organdarch but
  27. 27. @kevingoldsmith #organdarch The effort to work around Conway’s law is probably more than you want to deal with.
  28. 28. @kevingoldsmith #organdarch My Experience
  29. 29. @kevingoldsmith #organdarch Director client manager client manager client manager server manager core manager infra director
  30. 30. @kevingoldsmith #organdarch Server Core Library iOS / Mac Android Web Infrastructure
  31. 31. @kevingoldsmith #organdarch Server Core Library iOS / Mac Android Web Infrastructure
  32. 32. @kevingoldsmith #organdarch Server Core Library iOS / Mac Android Web Infrastructure
  33. 33. @kevingoldsmith #organdarch Server Core Library iOS / Mac Android Web Infrastructure
  34. 34. @kevingoldsmith #organdarch Server Core Library iOS / Mac Android Web Infrastructure
  35. 35. @kevingoldsmith #organdarch
  36. 36. @kevingoldsmith #organdarch Server Core Library Platform Platform Platform Platform Infrastructure
  37. 37. @kevingoldsmith #organdarch Server Core Library Platform Platform Platform Platform Infrastructure
  38. 38. @kevingoldsmith #organdarch Server Core Library Platform Platform Platform Platform Infrastructure FeatureTeam FeatureTeam FeatureTeam FeatureTeam FeatureTeam FeatureTeam
  39. 39. @kevingoldsmith #organdarch Server Core Library Platform Platform Platform Platform Infrastructure FeatureTeam FeatureTeam FeatureTeam FeatureTeam FeatureTeam FeatureTeam
  40. 40. @kevingoldsmith #organdarch Server Core Library Platform Platform Platform Platform Infrastructure FeatureTeam FeatureTeam FeatureTeam FeatureTeam FeatureTeam FeatureTeam
  41. 41. @kevingoldsmith #organdarch Infrastructure/Operations Feature Teams
  42. 42. @kevingoldsmith #organdarch Working with the homomorphic force
  43. 43. @kevingoldsmith #organdarch Be Deliberate
  44. 44. @kevingoldsmith #organdarch Find communication bottlenecks that conflict with architecture and eliminate them.
  45. 45. @kevingoldsmith #organdarch Design the organization to design the architecture.
  46. 46. @kevingoldsmith #organdarch –James O. Coplien and Neil B. Harrison, Organizational Patterns of Agile Software Development, 2004 “If the parts of an organization (e.g. teams, departments, or subdivisions) do not closely reflect the essential parts of the product, or if the relationship between organizations do not reflect the relationships between product parts, then the project will be in trouble. ... Therefore: Make sure the organizations is compatible with the product architecture.”
  47. 47. @kevingoldsmith #organdarch The Reverse Conway Maneuver
  48. 48. @kevingoldsmith #organdarch –Sam Newman, Building Microservices “Netflix learned from this [Amazon] example, and ensured that from the beginning it structured itself around small, independent teams, so that the services they created would also be independent from each other. This ensured that the architecture of the system was optimized for speed of change. Effectively, Netflix designed the organizational structure for the system architecture it wanted.”
  49. 49. @kevingoldsmith #organdarch Tightly coupled teams = strong dependencies between systems
  50. 50. @kevingoldsmith #organdarch “We find strong evidence to support the mirroring hypothesis. In all of the pairs we examine, the product developed by the loosely-coupled organization is significantly more modular than the product from the tightly-coupled organization. “ Exploring the Duality between Product and Organizational Architectures: A Test of the “Mirroring” Hypothesis MacCormack, Baldwin, Rusnak - Harvard Business School, 2008 The Mirroring Hypothesis
  51. 51. @kevingoldsmith #organdarch An alternate approach for a more mature architecture
  52. 52. @kevingoldsmith #organdarch Organize around the product, not the architecture
  53. 53. @kevingoldsmith #organdarch • Feature teams • User journey teams • By parts of the funnel • Dynamic teams Organization
  54. 54. @kevingoldsmith #organdarch More modular architecture and more shared code
  55. 55. @kevingoldsmith #organdarch Server Core Library Platform Platform Platform Platform Infrastructure
  56. 56. @kevingoldsmith #organdarch Platform Platform Platform Platform Infrastructure Feature Feature Feature Feature Feature Feature Feature
  57. 57. @kevingoldsmith #organdarch Platform Platform Platform Platform Infrastructure Feature Feature Feature Feature Feature Feature Feature UserJourney UserJourney UserJourney UserJourney UserJourney
  58. 58. @kevingoldsmith #organdarch How we’re handling this at Avvo
  59. 59. @kevingoldsmith #organdarch
  60. 60. @kevingoldsmith #organdarch
  61. 61. @kevingoldsmith #organdarch
  62. 62. @kevingoldsmith #organdarch Moved to full-stack teams
  63. 63. @kevingoldsmith #organdarch Building competency, then distributing
  64. 64. @kevingoldsmith #organdarch Choosing silos for velocity
  65. 65. @kevingoldsmith #organdarch From feature teams to user journey teams
  66. 66. @kevingoldsmith #organdarch In conclusion…
  67. 67. @kevingoldsmith #organdarch Conway’s Law
  68. 68. @kevingoldsmith #organdarch Homomorphic Force
  69. 69. @kevingoldsmith #organdarch Mirroring
  70. 70. @kevingoldsmith #organdarch It’s going to happen.
  71. 71. @kevingoldsmith #organdarch By Hagmann P, Cammoun L, Gigandet X, Meuli R, Honey CJ, et al. - File:Medial surface of cerebral cortex - gyri.png, CC BY 2.5, https://commons.wikimedia.org/w/index.php?curid=8636113
  72. 72. @kevingoldsmith #organdarch Go with it.
  73. 73. @kevingoldsmith #organdarch Questions?

×