Melvin Conway’s Law, first posited in 1968, states that the architectural structure of a software system mirrors the organizational structure of the entity responsible for its development.
In the event that an organization comprises multiple teams engaged in a single project, the resulting software system will likely exhibit a structure that reflects the communication patterns between those teams. Even the largest software development companies, such as Microsoft and Google, are susceptible to the influence of this ‘law’.
Although typically discussed in the context of software, the observation is applicable more broadly to systems in general. Conway posits that social problems such as poverty, healthcare, and education reflect (or mirror) the structures of government organizations.
Let’s take this one step further.
The architectural structure of the software may reflect the structural configuration of the organization that designed it. Ultimately, however, the implementation of the software reflects the structural configuration of the organization that uses it, even if the structural configurations of the developer and the user are disparate (or even contradictory).
Could this be a potential explanation for organizational difficulties encountered when implementing information and records management software?
In addition to the more obvious explanations regarding organizational and employee behaviour, of course.
I was inspired by Nohan Nayak’s insightful post below, in which he also raises the question of whether AI agents are influenced by Conway’s law. This is a very interesting question, as it would have significant implications if they are.
Further reading:
Conway, M. E. (1968). ‘How do committees invent’, Datamation, Vol. 14, No. 4, 28-31.
Bindrees, M. A., Pooley, R. J., Ibrahim, I. S., & Bental, D. S. (2014). ‘How public organisational structures influence software development processes’, Journal of Computer Science, Vol. 10, No. 12, 2593.
Bailey, S. E., Godbole, S. S., Knutson, C. D., & Krein, J. L. (2013). ‘A decade of Conway’s Law: A literature review from 2003-2012’, 2013 3rd international workshop on replication in empirical software engineering research, IEEE, pp. 1-14.
Response to the following LinkedIn post:
Nohan Nayak, How Organizational Structure Impacts Software Design
This relationship, known as Conway’s law, states that “organizations which design systems … are constrained to produce designs which are copies of the communication structures of these organizations”.
There are several key ways in which organizational structure affects software design:
Communication and Coordination
Software components that need to communicate frequently tend to be developed by teams that interact closely. Conversely, loosely coupled teams will produce more modular software designs.
Specialization and Expertise
The division of labor and specialization of teams in an organization influences the modularity and layering of software systems. Teams focused on specific domains or technologies will produce components that are optimized for those areas but may not integrate as smoothly.
Decision-Making and Autonomy
The decision-making structure of an organization, whether centralized or distributed, impacts the flexibility and extensibility of software. Centralized decision-making, such as in a chief programmer team, can produce more consistent designs but may limit innovation. Decentralized structures like egoless or democratic teams allow more experimentation but may lack coherence.
Organizational Inertia and Legacy
Over time, an organization’s software tends to mirror the communication patterns and team structures that existed when it was originally built[1]. As an organization evolves, its software can become increasingly misaligned, requiring major refactoring efforts to untangle.
To mitigate the impact of organizational structure on software design, experts recommend:
– Aligning teams and components based on domain boundaries rather than technologies
– Fostering cross-team communication and coordination through shared goals, tools, and processes
– Empowering software architects to shape both the technical and organizational structures
– Regularly reviewing and iterating the organization’s structure to keep it in sync with evolving software needs
How does organisational structure impact software design? And will AI Agents behave the same way?
This intriguing illustration sheds light on the dramatised organisational structures of Amazon, Google, Facebook, Microsoft, Apple, and Oracle, perfectly echoing ๐๐ผ๐ป๐๐ฎ๐’๐ ๐๐ฎ๐: “๐ฆ๐ผ๐ณ๐๐๐ฎ๐ฟ๐ฒ ๐ฎ๐ป๐ฑ ๐ฝ๐ฟ๐ผ๐ฑ๐๐ฐ๐ ๐ฎ๐ฟ๐ฐ๐ต๐ถ๐๐ฒ๐ฐ๐๐๐ฟ๐ฒ ๐ถ๐ ๐ฑ๐ฒ๐๐๐ถ๐ป๐ฒ๐ฑ ๐๐ผ ๐ฏ๐ฒ ๐ฎ ๐ฟ๐ฒ๐ณ๐น๐ฒ๐ฐ๐๐ถ๐ผ๐ป ๐ผ๐ณ ๐๐ต๐ฒ ๐ผ๐ฟ๐ด๐ฎ๐ป๐ถ๐๐ฎ๐๐ถ๐ผ๐ป๐ฎ๐น ๐๐๐ฟ๐๐ฐ๐๐๐ฟ๐ฒ ๐๐ต๐ฎ๐ ๐ฐ๐ฟ๐ฒ๐ฎ๐๐ฒ๐ฑ ๐ถ๐.”
This concept could become a critical hyperparameter in AI agent design, shaping their interactions and problem-solving approaches. Conway’s Law appears to be an emergent property of complex systems, but regardless, the fact that LLMs are trained on human decision-making makes it increasingly likely that Agents will emulate these same dynamics.
For the LinkedIn posting see here.
Publshed August 2024.