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.
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
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. @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. @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
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
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.”
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.”
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.”
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