A large organization similarly, stretches across time and space. How we organize defines how we think collectively, and thus what we make collectively.
Yet it seems true, and a good explanation for why so many large organizations cannot get a handle on Zero MQ and technologies like it. To force SAP across "the Enterprise" is like standardizing on German. When you develop components or teams independently across space and time, how do you connect those teams? First, you define verifiable contracts for every single necessary interaction. You can do things stupidly and inefficiently, as the power pyramid proves, if you are willing to pay the price.
Software is essentially about people, and the larger-scale we make it, the more that truth becomes visible. A large-scale application reflects how many people think together. It is largely asynchronous, heterogeneous, efficient, and smart in that it makes accurate decisions rapidly. The components of a living system develop independently in space and time.
An old joke, the epitome of Conway's Law, goes, "why did the compiler have four passes? One had to be project leader." Let me propose, I told the audience, that to build a successful large-scale distributed software system, you must build a successful large-scale distributed organization. Conway's Law says, a power pyramid organization like Microsoft will inevitably build software like Windows. That means it must be, and here I respectfully divert from Joe Armstrong's vision, free of language or platform constraints.
There were so many amazing little stories that came out of these two trips.
I want to capture some of them and share them with you.
Over beer and food at the speakers' dinner, we talked about many things and then he spoke about Conway's Law, which states, roughly, that the things an organization produces will reflect how the organization communicates.