Conway's law

From Wikipedia, the free encyclopedia
  (Redirected from Conway's Law)
Jump to: navigation, search

Conway's law is an adage named after computer programmer Melvin Conway, who introduced the idea in 1968; it was first dubbed Conway's law by participants at the 1968 National Symposium on Modular Programming.[1] It states that

organizations which design systems ... are constrained to produce designs which are copies of the communication structures of these organizations

—M. Conway[2]

Although sometimes construed as humorous, Conway's law was intended as a valid sociological observation. It is based on the reasoning that in order for two separate software modules to interface correctly, the designers and implementers of each module must communicate with each other. Therefore, the interface structure of a software system will reflect the social structure of the organization(s) that produced it.

Variations[edit]

Eric S Raymond, an open source advocate who co-founded the Open Source Initiative, restated Conway's law in The New Hacker's Dictionary, a reference work based on the Jargon File he maintained for years. 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 that "If you have four groups working on a compiler, you'll get a 4-pass compiler".[3][4]

James O. Coplien and Neil B. Harrison stated that "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 organization is compatible with the product architecture".[5]

Supporting evidence[edit]

There is supporting evidence of Conway's law that has been published by a team of Harvard Business School researchers. They "find strong evidence to support the mirroring hypothesis" and their study reveals "significant differences in modularity, consistent with a view that distributed teams tend to develop more modular products".[6]

Additional case studies of Conway's law have been conducted by Microsoft Research[7] and by Succi Petrinja.[8]

See also[edit]

References[edit]

  1. ^ Yourdon, E. N., and Constantine, L. L. Structured Design (Prentice Hall, 1978), p. 400
  2. ^ Conway, Melvin E. (April 1968), How do Committees Invent?, Datamation 14 (5): 28–31, retrieved 2009-04-05 
  3. ^ Eric S. Raymond (October 1996). The New Hacker's Dictionary - 3rd Edition. ISBN 978-0-262-68092-9. 
  4. ^ Eric S. Raymond, Conway's Law, retrieved 2012-06-18 
  5. ^ Coplien and Harrison (July 2004). Organizational Patterns of Agile Software Development. ISBN 978-0-13-146740-8. 
  6. ^ http://www.hbs.edu/research/pdf/08-039.pdf
  7. ^ http://research.microsoft.com/research/pubs/view.aspx?type=Technical%20Report&id=1425
  8. ^ http://link.springer.com/chapter/10.1007/978-3-642-38928-3_8#page-1