前言
其实刚刚接触这个定律的时候是在看架构设计相关书籍的时候,然后就着重看了下这个定律,发现这个定律跟我们的日常都是息息相关的,而不仅仅只是架构,下面来看下具体是啥
正文
康威定律
Conway’s law: Organizations which design systems are constrained to produce designs which are copies of the communication structures of these organizations. - Melvin Conway(1967)
设计系统的组织其产生的设计等价于组织间的沟通结构。
Conway’s law 最初来自于Conway在1967年发表的论文《How Do Committees Invent?》,之后在《人月神话》这本书中引用了论文的结论,并命名为康威定律(Conway’s law)得以推广。Mike Amundsen 归纳了如下四个核心观点
第一定律
Communication dictates the design
组织沟通方式会通过系统设计表达出来
其实这句话理解起来也是很简单的,就是你的系统架构已经设计好了,你的组织沟通方式其实也就确定下来了,或者说你的组织沟通方式确定下来了,那么你的系统设计其实也已经确定好了,两者是相辅相成的。比如你的系统是前后端分离的,那么组织沟通就必然会涉及到前后端人员和小组的沟通,另外再延伸一下到产品,甚至是生活当中也是一样,一个产品的组织沟通方式其实也是跟系统的设计相辅相成,比如商务、产品、研发、测试等各个部门。联想到每个人的生活也是一样的,你的想法和你最终做的或者获得的东西也都是成套的,相辅相成。
第二定律
There is never enough time to do something right, but there is always enough time to do it over
时间再多一件事情也不可能做的完美,但总有时间做完一件事情
说这个的时候其实就是考虑你的业务场景了,正常的互联网中的项目都是比较赶时间的,所以在这样的一种情况下我们如何把我们的业务快速发展起来,那么敏捷开发就登场了, 既然一件事我们不可能做的完美,那就不断的在过程中去迭代它,不断的变的完美也未尝不是一件好事。联系下每个人的人生也未尝不是这样,总是不停的去进步,不停的去迭代自己的能力,力求做到完美,走上人生巅峰。
第三定律
There is a homomorphism from the linear graph of a system to the linear graph of its design organization
线型系统和线型组织架构间有潜在的异质同态特性
其实这个跟第一定律说的有点相似,也就是你的组织架构和系统架构其实是有异曲同工之妙的,大家都是相辅相成的,这样这个团队才会更加稳定,更加有活力。
第四定律
The structures of large systems tend to disintegrate during development, qualitatively more so than with small systems
大的系统组织总是比小系统更倾向于分解
三国中的开头是这样说的:天下大事,分久必合,合久必分。系统架构也是这样的,其实这个第四定律更多意义上说的是架构,其实架构的本质意义就是拆和合,怎么去拆?按照什么粒度去拆?都是我们需要去考虑的,在微服务架构中,不是拆的越小越好,你要考虑服务之间调用的复杂性,人力维护成本,以及各种外在因素。这个跟团队管理也是一模一样,如果分的太细致,那么沟通的复杂性就上来了,对我们来说也是资源的内耗,所以团队的管理是非常考验管理者的管理水平的。
总结
前面说了这么多,其实总结下来就是架构和管理需要因地制宜,入乡随俗,遵循架构和管理之道,这样最终才能成功,否则就有可能会遭到反噬,另外一点感想就是每个人在考虑问题的过程中不要拘泥于某一点,一定要站在更高的角度,更大的是视野中去看问题,否则就是管中窥豹,略见一斑。