康威定律

作者: qiana薛倩 | 来源:发表于2019-06-02 22:13 被阅读3次

在工作的前一两年,是一个沉迷于代码,努力学习如何做好每个feature的状态。随着经验的积累,在技术方面开始接触一些架构方面的新知识。最近重新研读 Uncle Bob 的博客合集 《整洁架构之道》, 还是有很大收获。其中之一就是对于康威定律有了更加全面的认识和思考。

Conway’s law 最初来自于Conway在1967年发表的论文
《How Do Committees Invent?》,之后在《人月神话》
这本书中引用了论文的结论,并命名为康威定律(Conway’s law)得以推广。

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 reversed:You won’t be able to successfully establish an efficient organizational structure that is not supported by your system architecture design.
如果系统架构不支持,你无法建立一个高效的组织。


Mike Amundsen 归纳了如下四个核心观点:

  • 第一定律

Communication dictates the design
组织沟通方式会通过系统设计表达出来

对于复杂的,需要协作完成的系统开发,沟通是必须要持续提升的问题。
每个团队由5-10人组成(沟通成本 = n(n-1)/2 - 《人月神话》),在团队内部进行频繁的、细粒度的沟通。对于团队外部,定义好接口,契约,只进行粗粒度的沟通。这样可以降低沟通成本,同时也符合高内聚,低耦合原则(代码和人员管理有些时候真是相通的)。

  • 第二定律

There is never enough time to do something right, but there is always enough time to do it over
时间再多一件事情也不可能做的完美,但总有时间做完一件事情

这就是我们在用kanban管理迭代时几乎都有一列是BAU(Business As Usual ),其中会包括一些日常修复的Bug Story。敏捷开发中将迭代引入,做到持续交付,快速验证,迅速反馈,持续改进。

  • 第三定律

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
大的系统组织总是比小系统更倾向于分解

合久必分,分久必合,团队以及架构都是在不断优化的。一个团队随着人员的增加,沟通以及管理成本一定会增加。

一些思考:
康威定律只是Conway本人基于软件开发的经验,对于架构以及团队管理普遍现象的总结。软件行业半个世纪的发展也验证了其正确性。理解了康威定律可以帮助开发人员从另一个角度理解架构设计。现实中的问题是,仅仅基于康威定律,还是不能评判某个架构是否是合格的?如何提升?什么时间进行提升?等一系列问题。我还在学习中。。。

相关文章

  • 敏捷漫画#85-康威定律

    康威定律(Conway’s Law) 作者评论: 康威定律(Conway’s Law)是以程序员Melvin Co...

  • 阅读K8S文档

    k8s文档链接 康威定律 在看Label这一段的时候,提到了设计Label的动机,出现了康威定律。Flag 康威定...

  • 后端架构师技术图谱(四)-微服务

    微服务思想 《微服务架构设计》 《微服务架构技术栈选型手册》 康威定律 《微服务架构的理论基础 - 康威定律》定律...

  • 康威定律

    参考:每个架构师都知道的康威定律,你确定不来看看? 康威定律是马尔文·康威1967提出的:“设计系统的架构受制于产...

  • 康威定律

    原文 https://yq.aliyun.com/articles/8611 为了写微服务的方案,翻到这篇文章,一...

  • 康威定律👀

    小板听说最近流行“微服务”,问架构师咱们的系统要不要来一套?老板又听说最近流行“中台系统”,问架构师咱们要不要搞起...

  • 康威定律

    康威定律详细介绍Mike从他的角度归纳这篇论文中的其他一些核心观点,如下: 第一定律:Communication ...

  • 康威定律

    概述 微服务架构是一种非常流行的新概念,即便可供以借鉴的经验比较少,当然不能阻挡它成为热门话题与研究对象。 令人惊...

  • 康威定律

    在工作的前一两年,是一个沉迷于代码,努力学习如何做好每个feature的状态。随着经验的积累,在技术方面开始接触一...

  • 康威定律

    原文链接:https://www.solves.com.cn/it/cxkf/jiagou/2019-10-14/...

网友评论

    本文标题:康威定律

    本文链接:https://www.haomeiwen.com/subject/omaxxctx.html