Conway's law

Last updated

Conway's law describes the link between communication structure of organizations and the systems they design. It is named after the computer programmer Melvin Conway, who introduced the idea in 1967. [1] His original wording was: [2] [3]

Contents

[O]rganizations which design systems (in the broad sense used here) are constrained to produce designs which are copies of the communication structures of these organizations.

Melvin E. Conway, How Do Committees Invent?

The law is based on the reasoning that in order for a product to function, the authors and designers of its component parts must communicate with each other in order to ensure compatibility between the components. Therefore, the technical structure of a system will reflect the social boundaries of the organizations that produced it, across which communication is more difficult. In colloquial terms, it means complex products end up "shaped like" the organizational structure they are designed in or designed for. The law is applied primarily in the field of software architecture, though Conway directed it more broadly and its assumptions and conclusions apply to most technical fields.

Variations

Eric S. Raymond, an open-source advocate, restated Conway's law in The New Hacker's Dictionary, a reference work based on the Jargon File. The organization of the software and the organization of the software team will be congruent, he said. Summarizing an example in Conway's paper, Raymond wrote:

If you have four groups working on a compiler, you'll get a 4-pass compiler. [4] [5]

Raymond further presents Tom Cheatham's amendment of Conway's Law, stated as:

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. [4]

Yourdon and Constantine, in their 1979 book on Structured Design, gave a more strongly stated variation of Conway's Law:

The structure of any system designed by an organization is isomorphic to the structure of the organization. [6]

James O. Coplien and Neil B. Harrison stated in a 2004 book concerned with organizational patterns of Agile software development:

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 relationships between organizations do not reflect the relationships between product parts, then the project will be in trouble ... Therefore: Make sure the organization is compatible with the product architecture. [7]

More recent commentators have noted a corollary - for software projects with a long lifetime of code reuse, such as Microsoft Windows, the structure of the code mirrors not only the communication structure of the organization which created the most recent release, but also the communication structures of every previous team which worked on that code. [8]

There’s also an old car industry joke: [9]

You can see the organization chart of a car company in the dashboard, and also see whether the steering wheel team hates the gear stick team.

Interpretations

The law is, in a strict sense, only about correspondence; it does not state that communication structure is the cause of system structure, merely describes the connection. Different commentators have taken various positions on the direction of causality; that technical design causes the organization to restructure to fit, [10] that the organizational structure dictates the technical design, [11] or both. [12] [13] [14] Conway's law was intended originally as a sociological observation[ citation needed ], but many other interpretations are possible. The New Hacker's Dictionary entry uses it in a primarily humorous context, [15] while participants at the 1968 National Symposium on Modular Programming considered it sufficiently serious and universal to dub it 'Conway's Law'. [6] Opinions also vary on the desirability of the phenomenon; some say that the mirroring pattern is a helpful feature of such systems, while other interpretations say it's an undesirable result of organizational bias.[ citation needed ] Middle positions describe it as a necessary feature of compromise, undesirable in the abstract but necessary to handle human limitations. [8]

Supporting evidence

An example of the impact of Conway's Law can be found in the design of some organization websites. Nigel Bevan stated in a 1997 paper, regarding usability issues in websites: "Organizations often produce web sites with a content and structure which mirrors the internal concerns of the organization rather than the needs of the users of the site." [16]

Evidence in support of Conway's law has been published by a team of Massachusetts Institute of Technology (MIT) and Harvard Business School researchers who, using "the mirroring hypothesis" as an equivalent term for Conway's law, found "strong evidence to support the mirroring hypothesis", and that the "product developed by the loosely-coupled organization is significantly more modular than the product from the tightly-coupled organization". The authors highlight the impact of "organizational design decisions on the technical structure of the artifacts that these organizations subsequently develop". [17]

Additional and likewise supportive case studies of Conway's law have been conducted by Nagappan, Murphy and Basili at the University of Maryland in collaboration with Microsoft, [18] and by Syeed and Hammouda at Tampere University of Technology in Finland. [19]

See also

Related Research Articles

<span class="mw-page-title-main">Software architecture</span> High level structures of a software system

Software architecture is the set of structures needed to reason about a software system and the discipline of creating such structures and systems. Each structure comprises software elements, relations among them, and properties of both elements and relations.

<span class="mw-page-title-main">Iterative and incremental development</span> Development methodology

Iterative and incremental development is any combination of both iterative design and incremental build model for development.

The following outline is provided as an overview of and topical guide to software engineering:

Broadly speaking, modularity is the degree to which a system's components may be separated and recombined, often with the benefit of flexibility and variety in use. The concept of modularity is used primarily to reduce complexity by breaking a system into varying degrees of interdependence and independence across and "hide the complexity of each part behind an abstraction and interface". However, the concept of modularity can be extended to multiple disciplines, each with their own nuances. Despite these nuances, consistent themes concerning modular systems can be identified.

Structured systems analysis and design method (SSADM) is a systems approach to the analysis and design of information systems. SSADM was produced for the Central Computer and Telecommunications Agency, a UK government office concerned with the use of technology in government, from 1980 onwards.

James O. Coplien, also known as Cope, is a writer, lecturer, and researcher in the field of computer science. He held the 2003–4 Vloeberghs Leerstoel at Vrije Universiteit Brussel and has been a visiting professor at University of Manchester.

UNCOL is a universal intermediate language for compilers. The idea was introduced in 1958, by a SHARE ad-hoc committee. It was never fully specified or implemented; in many ways it was more a concept than a language.

Modular programming is a software design technique that emphasizes separating the functionality of a program into independent, interchangeable modules, such that each contains everything necessary to execute only one aspect of the desired functionality.

<span class="mw-page-title-main">Edward Yourdon</span> American software engineer and pioneer in the software engineering methodology

Edward Nash Yourdon was an American software engineer, computer consultant, author and lecturer, and software engineering methodology pioneer. He was one of the lead developers of the structured analysis techniques of the 1970s and a co-developer of both the Yourdon/Whitehead method for object-oriented analysis/design in the late 1980s and the Coad/Yourdon methodology for object-oriented analysis/design in the 1990s.

<span class="mw-page-title-main">Coupling (computer programming)</span> Degree of interdependence between software modules

In software engineering, coupling is the degree of interdependence between software modules, a measure of how closely connected two routines or modules are, and the strength of the relationships between modules. Coupling is not binary but multi-dimensional.

Melvin Edward Conway is an American computer scientist, computer programmer, and hacker who coined what is now known as Conway's law: "Organizations, who design systems, are constrained to produce designs which are copies of the communication structures of these organizations." The adage remains relevant in modern software engineering and is still being referenced and investigated.

<span class="mw-page-title-main">Modular design</span> Design approach

Modular design, or modularity in design, is a design principle that subdivides a system into smaller parts called modules, which can be independently created, modified, replaced, or exchanged with other modules or between different systems.

The Toolkit for Conceptual Modeling (TCM) is a collection of software tools to present specifications of software systems in the form of diagrams, tables, trees, and the like. TCM offers editors for techniques used in Structured Analysis as well as editors for object-oriented (UML) techniques. For some of the behavior specification techniques, an interface to model checkers is offered. More in particular, TCM contains the following editors.

<span class="mw-page-title-main">Larry Constantine</span> American software engineer

Larry LeRoy Constantine is an American software engineer, professor in the Center for Exact Sciences and Engineering at the University of Madeira Portugal, and considered one of the pioneers of computing. He has contributed numerous concepts and techniques forming the foundations of modern practice in software engineering and applications design and development.

<span class="mw-page-title-main">Structured analysis</span>

In software engineering, structured analysis (SA) and structured design (SD) are methods for analyzing business requirements and developing specifications for converting practices into computer programs, hardware configurations, and related manual procedures.

Organizational patterns are inspired in large part by the principles of the software pattern community, that in turn takes it cues from Christopher Alexander's work on patterns of the built world. Organizational patterns also have roots in Kroeber's classic anthropological texts on the patterns that underlie culture and society. They in turn have provided inspiration for the Agile software development movement, and for the creation of parts of Scrum and of Extreme Programming in particular.

<span class="mw-page-title-main">Structure chart</span> Chart

A structure chart (SC) in software engineering and organizational theory is a chart which shows the breakdown of a system to its lowest manageable levels. They are used in structured programming to arrange program modules into a tree. Each module is represented by a box, which contains the module's name. The tree structure visualizes the relationships between modules.

Technical documentation is a generic term for the classes of information created to describe the use, functionality or architecture of a product, system or service.

Steven D. Eppinger is an American engineer, and Professor of Management, Professor of Management Science and Innovation, and Professor of Engineering Systems at Massachusetts Institute of Technology, known for his work on product design and product development.

Dr. Carliss Y. Baldwin is an American economist and the William L. White Professor of Business Administration at Harvard Business School. Her book on modularity in complex technological systems, Design Rules, published in 2000 and co-written with Kim B. Clark, has been called "a landmark book" that has impacted research on organization theory, competitive strategy, and innovation.

References

  1. Conway, Melvin. "Conway's Law". Mel Conway's Home Page. Archived from the original on 2019-09-29. Retrieved 2019-09-29.
  2. Conway, Melvin E. (April 1968). "How do Committees Invent?". Datamation . 14 (5): 28–31. Archived from the original on 2019-10-10. Retrieved 2019-10-10. […] organizations which design systems […] are constrained to produce designs which are copies of the communication structures of these organizations.
  3. Conway, Melvin (1968). "How do committees invent" (PDF). Datamation: 28–31.
  4. 1 2 Raymond, Eric S. (October 1996). The New Hacker's Dictionary (3rd ed.). Cambridge, Massachusetts: MIT Press. p. 124. ISBN   978-0-262-68092-9. Conway's Law: prov. The rule […] originally stated as "If you have four groups working on a compiler, you'll get a 4-pass compiler". […] Tom Cheatham's amendment of 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."
  5. Eric S. Raymond. "Conway's Law". The Jargon File, version 4.4.8. Archived from the original on 2012-03-26. Retrieved 2012-03-26.
  6. 1 2 Yourdon, Edward; Constantine, Larry L. (1979). Structured Design: Fundamentals of a Discipline of Computer Program and Systems Design (2nd ed.). Englewood Cliffs, N.J.: Prentice Hall. ISBN   0138544719. OCLC   4503223. Conway's Law: The structure of a system reflects the structure of the organization that built it. Conway's Law has been stated even more strongly: The structure of any system designed by an organization is isomorphic to the structure of the organization.
  7. Coplien and Harrison (July 2004). Organizational Patterns of Agile Software Development. Pearson Prentice Hall. ISBN   978-0-13-146740-8.
  8. 1 2 Muratori, Casey, The Only Unbreakable Law , retrieved 2022-03-21
  9. "Is Tesla disruptive?". Benedict Evans. 2018-09-01. Retrieved 2024-01-24.
  10. Chandler, A. D. (1977). The Visible Hand: The Managerial Revolution in American Business. Harvard University Press, Cambridge, MA.
  11. Henderson, R. M., & Clark, K. B. (1990). Architectural innovation: The reconfiguration of existing product technologies and the failure of established firms. Administrative science quarterly, 9-30.
  12. Baldwin, C. Y., & Clark, K. B. (2000). Design rules: The power of modularity (Vol. 1). Chapter 7. MIT press. (Chapters 1 and 14 are counted as a descriptive industry study.)
  13. Fixson, S. K., & Park, J. K. (2008). The power of integrality: Linkages between product architecture, innovation, and industry structure. Research Policy, 37(8), 1296-1316.
  14. "The Mirroring Hypothesis: Theory, Evidence and Exceptions", Lyra J. Colfer, Carliss Y. Baldwin https://www.hbs.edu/ris/Publication%20Files/16-124_7ae90679-0ce6-4d72-9e9d-828872c7af49.pdf
  15. Raymond1996
  16. Bevan, Nigel (November 1997). "Usability issues in website design" (PDF). Design of Computing Systems: Social and Ergonomic Considerations. Proceedings of the Seventh International Conference on Human-Computer Interaction (HCI International '97). Vol. 2. San Francisco, California, USA: Elsevier. pp. 803–806.
  17. MacCormack, Alan; Rusnak, John; Baldwin, Carliss Y. (2011). "Exploring the Duality between Product and Organizational Architectures: A Test of the Mirroring Hypothesis" (PDF). SSRN Working Paper Series. doi:10.2139/ssrn.1104745. ISSN   1556-5068. S2CID   16097528. 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. […] Our results have significant managerial implications, in highlighting the impact of organizational design decisions on the technical structure of the artifacts that these organizations subsequently develop.
  18. Nagappan, Nachiappan; Murphy, Brendan; Basili, Victor (2008). "The influence of organizational structure on software quality: An empirical case study". Proceedings of the 13th international conference on Software engineering - ICSE '08. New York, New York, USA: ACM Press. p. 521. doi:10.1145/1368088.1368160. ISBN   9781605580791. S2CID   5048618.
  19. Syeed, M. M. Mahbubul; Hammouda, Imed (2013). "Socio-technical Congruence in OSS Projects: Exploring Conway's Law in FreeBSD". Open Source Software: Quality Verification. IFIP Advances in Information and Communication Technology. Vol. 404. pp. 109–126. doi:10.1007/978-3-642-38928-3_8. ISBN   978-3-642-38927-6. S2CID   39852208.

Further reading