康威定律(Conway's law)

系统是设计该系统的组织结构的映射。
Conway’s law 最初是Conway在1967年发表的论文《How Do Committees Invent?》,然后 Fred Brooks 在《人月神话》(The Mythical Man-Month)这本书中引用了这篇论文的结论,并命名为康威定律(Conway’s law)。
观点
康威定律的结论
Organizations which design systems (in the broad sense used here) are constrained to produce designs which are copies of the communication structures of these organizations. We have seen that this fact has important implications for the management of system design. Primarily, we have found a criterion for the structuring of design organizations: a design effort should be organized according to the need for communication.
This criterion creates problems because the need to communicate at any time depends on the system concept in effect at that time. Because the design which occurs first is almost never the best possible, the prevailing system concept may need to change. Therefore, flexibility of organization is important to effective design.
Ways must be found to reward design managers for keeping their organizations lean and flexible. There is need for a philosophy of system design management which is not based on the assumption that adding manpower simply adds to productivity. The development of such a philosophy promises to unearth basic questions about value of resources and techniques of communication which will need to be answered before our system-building technology can proceed with confidence.
论文主要的观点:系统的结构受限于设计这个系统的组织的沟通结构。由于系统的结构可能会随着设计的深入而变化,所以必须保持设计组织结构的精简与灵活。
原论文是基于一种社会学的观察得出来的结论,所以这里的系统可以指代广义的系统,一个政府,一架飞机,一个芯片都可以认为是一个系统。
变体
The organizati 大专栏 康威定律(Conway's law)on of the software and the organization of the software team will be congruent.
软件本身的组织结构与软件团队的组织结构式一致的。
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”.
如果组织(团队,部门,或者分支部门)的组成部分不能正确地与产品的必要组成部门相对应,或者组织之间的关系不能反映产品组成部分之间的关系,那么这个项目就会有麻烦。。。所以:必须保证组织与产品架构的相互兼容。
The structure of a problem reflects the structure of the organization that created it.
问题的结构反应了产生问题的组织的结构。
论据
compiler
Conway博士在一个研究组织中作了如下实验:分别给COBOL编译器开发团队安排5个人,给ALGOL编译器开发团队安排3个人,最后COBOL编译器和ALGOL编译器分别是5个步骤和3个步骤的。
interface
只有模块A的开发者和模块B的开发者有沟通,模块A和模块B才能有良好的接口(interface)。所以系统的接口结构会反应开发这个系统的组织的结构。
TODO
“康威定律” 没有提供相应的诊断工具,帮助执行团队判断自己的组织框架是否合理,以及公司在什么时候进行重组比较合适。它只引发了一个问题:公司的组织架构能否为用户提供最好的产品?
Reference:
康威定律(Conway's law)的更多相关文章
- Conway's law(康威定律)
		
Mel Conway 康威在加利福尼亚理工学院获得物理学硕士学位,在凯斯西储大学获得数学博士学位.毕业之后,他参与了很多知名的软件项目,如 Pascal 编辑器.在他的职业生涯中,康威观察到一个现象 ...
 - 构造定律(constructal law)-构造定律作为第二个时间箭头,将和热力学第二定律一道将宇宙推向无序。
		
优化系统结构,使信息和物质流在结构内的流动更畅通. 构造定律(constructal law) 由Adrian Bejan于1995创立的构造定律(constructal law): For a ...
 - 墨菲定律-Murphy's Law (转载)
		
墨菲定律 “墨菲定律”(Murphy's Law)亦称莫非定律.莫非定理.或摩菲定理,是西方世界常用的俚语. “墨菲定律”:事情往往会向你所想到的不好的方向发展,只要有这个可能性.比如你衣袋里有两把钥 ...
 - 默菲定律 [Murphy's Law]
		
一.关于默菲定律(Murphy's Law) “墨菲定律”.“帕金森定律”和“彼德原理”并称为二十世纪西方文化三大发现. “墨菲定律”的原话是这样说的:If there are two or mo ...
 - 里特定律 - Little's Law
		
里特定律(Little's Law)源自排队理论,是IT系统性能建模中最广为人知的定律. 里特定律揭示了前置时间(Lead Time).在制品数量(Work In Progress, WIP)和吞吐率 ...
 - GitHub上最火爆!码代码不得不知的所有定律法则
		
目录 介绍 定律 阿姆达尔定律 (Amdahl's Law) 布鲁克斯法则 (Brooks's Law) 康威定律 (Conway's Law) 侯世达定律 (Hofstadter's Law) 技术 ...
 - 一篇文章带你了解Cloud Native
		
背景 Cloud Native表面看起来比较容易理解,但是细思好像又有些模糊不清:Cloud Native和Cloud关系是啥?它用来解决什么问题?它是一个新技术还是一个新的方法?什么样的APP符合“ ...
 - Microservice 微服务的理论模型和现实路径
		
两年前接触到了微服务的概念,面对日益膨胀的系统感觉豁然开朗.之后的两年逐步把系统按微服务的架构理念进行了重构,并将业务迁移到了新架构之上.感觉现在差不多是时候写一篇关于微服务的总结文章了. 定义 在 ...
 - 通过GeneXus如何快速构建微服务架构
		
概览 “微服务”是一个非常广泛的话题,在过去几年里,市面上存在着各种不同的定义. 虽然对这种架构方式没有一个非常精确的定义,但仍然有一些概念具有代表性. 微服务有着许多围绕业务能力.自动化部署.终端智 ...
 
随机推荐
- 吴裕雄--天生自然 PYTHON3开发学习:面向对象
			
class MyClass: """一个简单的类实例""" i = 12345 def f(self): return 'hello wor ...
 - List集合分组依据集合中对象的属性
			
直接上代码 用到了Spring的BeanWrapper类 public static <T, K> Map<K, List<T>> groupByProperty( ...
 - C++ malloc()函数的注意点及使用示例
			
1.malloc()函数的头文件是stdlib.h,其函数声明如下: void* malloc(size_t size); 其中参数size_t size表示动态内存分配空间的大小,以字节为单位. s ...
 - c语言中getchar的用法
			
/************************************************************************* > File Name: getchar2. ...
 - TPO1-3Timberline Vegetabtion on Mountain|have the advantage over
			
The upper timberline, like the snow line, is highest in the tropics and lowest in the Polar Regions. ...
 - Codeforces 1292A/1293C - NEKO's Maze Game
			
题目大意: 有一个2*n的图 NEKO#ΦωΦ要带领mimi们从(1,1)的点走到(2,n)的点 每次会操作一个点,从可以通过到不可以通过,不可以通过到可以通过 每操作一次要回答一次NEKO#ΦωΦ能 ...
 - ios alamofire4.x网络框架url 中文问题
			
一种方式是把参数放到Parameters里面 request 增加 encoding:URLEncoding.default 就可以 还有中文在path上 比如 http://www.chao. ...
 - 1051: [HAOI2006]受欢迎的牛 (tarjan强连通分量+缩点)
			
题目大意:CodeVs2822的简单版本 传送门 $Tarjan$强连通分量+缩点,若连通块的个数等于一则输出n:若缩点后图中出度为0的点个数为1,输出对应连通块内的点数:否则输出0: 代码中注释部分 ...
 - js中使用EL表达式总结
			
1.js中使用el表达式要加双引号或单引号:'${list}' 2.js变量获取el表达式中的对象:不能直接获取,直接获取得到的是该对象的toString值. 有两种方法:一:el中直接写对象的属性v ...
 - MySQL_学习资料
			
https://mp.weixin.qq.com/s/qOmyaEEpVJTUMZYfomp3ug