コンウェイの法則

2024/10/01

プログラミング

コンウェイの法則とは

コンウェイの法則は、1968年4月にMelvin Conwayによって発表された論文「How do committees ivnvent?」に次のように記載されている。

(情報システムに限らない、より広義の)システムを設計するあらゆる組織は、その組織のコミュニケーション構造の複製となるような設計を生み出すことを余儀なくされる。

例えば、4チームでコンパイラを開発すると4パスのコンパイラが生み出され、利用する技術によって境界付けられたチームで開発すると3層アーキテクチャが生み出される。また、マイクロサービスアーキテクチャでは、後述の「逆コンウェイ戦略」に従いサービス境界に沿って組織をドメインチームに分割する。


Notion Image

さらに、コンウェイの法則によると以下のようなことが示される。

  • 一つのシステムを複数のチームで協力して作るとチームの数と同じ数のモジュールに分割されたシステムが生み出される
  • 複数のシステムを一つのチームが作ると密結合なシステムが生み出される
  • システムを構築するチームが疎結合であるほど(例えば、チームメンバーが地理的に分散している)、構築されるシステムはよりモジュラーになる傾向がある
  • 逆コンウェイの法則と逆コンウェイ戦略

    逆コンウェイの法則は、コンウェイの法則の反対で、システムの設計が組織の成長に道筋をつけ、組織の構造がシステムに基づいて決定されるという法則。システムの設計が組織の構造と一致するのなら、はじめからシステムの設計に合わせて組織の構造を決めてしまおうというのが「逆コンウェイ戦略」。

    逆コンウェイ戦略をうまく取り入れている代表的な企業がAmazonとNerflixである。Amazonでは「2枚のピザチーム」として知られる組織構造により、小規模のチームがサービスのライフサクル全体を所有するように促進している。Nerflixでは最初から小規模で独立したチームを中心とした構成になるようにすることにより、サービスが互いに独立するようにしており、サービス同士がやり取りするチームが近くに座るように座席計画が組まれる。

    組織はマーケットに従う

    マーケットは矛盾するニーズを抱えた何人かの顧客によって構成されている。組織はこのような個別のマーケットのニーズに応じてシステムを構築していかなくてはならない(ただし、個別のマーケットすべてに共通するものだけを作るというのも選択肢の一つである)。組織の構造がマーケットに従うように設計されていれば、マーケットの境界線に従うきれいなシステムを簡単に作れるようになる。

    時には、別々のマーケットを独立して追いかけられるように、事業の一部を別の会社としてスピンオフするという選択も必要かもしれない。

    参考資料


    著者画像

    ゆうき

    2018/04からITエンジニアとして活動、2021/11から独立。主な使用言語はPython, TypeScript, SAS, etc.