康威定理

软件架构和团队架构的关系

康威定律 (康威法则 , Conway's Law) 是马尔文·康威1967年提出的:"设计系统的架构受制于产生这些设计的组织的沟通结构。" ——M. Conway[1]

即系统设计本质上反映了企业的组织机构。系统各个模块间的接口也反映了企业各个部门之间的信息流动和合作方式。

埃里克·雷蒙在《新黑客词典》中,称康威定律指出了软件架构与软件团队架构的等价(congruent)。例如,“如果你有4个团队在做一个编译器,你会得到一个4遍处理的编译器”。

James O. Coplien与Neil B. Harrison在《敏捷软件开发的组织模式》中写道: “如果团队、部门、子部门等的组织结构没有紧密反映产品的必要组成或产品组成的关系,那么项目将会遇到麻烦。因此,应该确保组织结构兼容于产品架构。

组织架构服从于软件架构。

康威的原文中提出的各定律:

  • 第一定律 组织沟通方式会通过系统设计表达出来
  • 第二定律 时间再多一件事情也不可能做的完美,但总有时间做完一件事情
  • 第三定律 线型系统和线型组织架构间有潜在的异质同态特性
  • 第四定律 大的系统组织总是比小系统更倾向于分解

Conway's Law asserts that organizations are constrained to produce application designs which are copies of their communication structures. This often leads to unintended friction points. The 'Inverse Conway Maneuver' recommends evolving your team and organizational structure to promote your desired architecture. Ideally your technology architecture will display isomorphism with your business architecture.

posted @ 2021-09-08 19:47  ted  阅读(932)  评论(0编辑  收藏  举报