zoukankan      html  css  js  c++  java
  • 康威定律学习一

      

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

      大致的意思是:系统设计(产品结构)等同组织形式,每个设计系统的组织,其产生的设计等同于组织之间的沟通结构(简单点说就是,系统的设计受限于设计系统的组织的人员架构形式。我们也经常说微服务不光是一个技术问题,更是一个研发组织问题)

      1、Communication dictates design(组织沟通方式会通过系统设计表达出来)

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

      3、There is a homomorphism from the linear graph of a system to the linear graph of its design organization(线性系统和线性组织架构间有潜在的异质同态特性)

      4、The structures of large systems tend to disintegrate during development, qualitatively more so than with small systems(大的系统组织总是比小系统更倾向于分解)

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

    参考:

      https://www.jianshu.com/p/ba2d444c89d2

  • 相关阅读:
    Linux关机命令详解
    这二个月都在失眠中。
    GMAIL绑定自己的域名MX解析出现错误
    又上火了。
    FTP命令
    怎样做反向域名解析?
    linux 一些常用到的命令。
    LINUX怎么换IP。
    关于 MOD 和 \ 选择
    WIN2000和WIN2003连备份机的疑问
  • 原文地址:https://www.cnblogs.com/hofmann/p/12966992.html
Copyright © 2011-2022 走看看