Conwayの法則~アーキテクチャは組織にしたがう
デブサミ2011で鈴木雄介さんの講演を聞いた後でTwitterを何気なく見ていたら、Conwayの法則を見つけたのでメモ。
AgileJapan2011北海道の資料でも、Conwayの法則が紹介されてますね。
ラフなメモ書き。
【元ネタ】
AgileJapan2011北海道サテライトに参加してきました - tricknotesのぼうけんのしょ
生成的開発プロセス・パターンランゲージ - lamuuの勿忘草日記
Conwayの法則
* Conwayの法則
組織を製品のアーキテクチャに当てはまるようにしなさい。このパターンランゲージにおいて、ここでは、組織がアーキテクチャに影響をおよぼすべきであるというよりも、アーキテクチャが組織に影響をおよぼすべきであるといえるだろう。
コンウェイの法則 - Strategic Choice
(引用開始)
「ソフトウェアの構造(アーキテクチャ)」は、それを作った「組織」を反映したものになります。たとえば、コンパイラを4チーム編成で作れば、4パスのコンパイラが作成されます。
(中略)
「組織」と「ソフトウェアの構造(アーキテクチャ)」の相互依存関係も重要ですが、「組織」と「プロセス」の相性も重要です。
書籍「リーンソフトウェア開発と組織改革」では、役割で分割されたチーム、すなわちテクノロジラインで編成したチーム「組織」で、アジャイル「プロセス」を実践し、苦労している企業の例が紹介されています。
データベースチーム、メインフレームチーム、Webサーバーチーム、テストチームのような具合にチーム分けを行います。このようにテクノロジ(あるいは役割)で分けたチームは、他のチームの作業に依存し、小さなフィーチャーセットですら、大量のコミュニケーションと協力が必要になってしまいます。コミュニケーションの手間がますます時間を食い、誤りの可能性もオーバーヘッドコストも増えていきます。こうなると、インクリメンタルに小さなリリースを重ねることは現実的でなくなってしまいます。
(引用終了)
鈍重な開発チームは鈍重なシステムを作る? - @IT情報マネジメント
(引用開始)
Melvin Conwayが1960年代後半に定義したConwayの法則は、「どのソフトウェアも、それを作り出した団体の組織構造を反映している」としている。このようなことが起きるのは、人は自分たちがどのように組織化されているかを反映した形で作業をするためだ。つまり、分散したグループは分散アーキテクチャのシステムを作り出す可能性が高い。プロジェクトチームの組織構造にある長所や短所は、いずれも彼らに生み出されるシステムに必然的に反映されることになり、それは効率的なITアーキテクチャが目標ならITの組織構造が効率的でなくてはならないことを暗示している。
(引用終了)
組織構造がアーキテクチャ、開発スタイルに影響する。
組織構造が開発の効率性に制約をかける。
では、WF型開発やAgile開発の組織はどんな影響を与えるのか?
さかばさんのBlogを読むと、答えが見えてくる。
[#TiDD] プロセスプログラミング2 - ウォーターフォールとアジャイル -: ソフトウェアさかば
WF型開発は構造化設計、Agile開発はオブジェクト指向設計に影響を受けているのが読んで取れる。
ソフトウェアプロダクトライン、派生開発も同様に、アーキテクチャと組織構造が密接に関係している。
Agileに開発したいなら、Agileなアーキテクチャ、Agileな組織構造が必要。
もう少し調べてみる。
| 固定リンク
「モデリング」カテゴリの記事
- UMTPモデリングフォーラムのパネル討論の感想(2022.11.29)
- Go言語でできることは何なのか(2022.11.06)
- クラウド上の開発がJavaに与えた影響は何なのか(2022.10.16)
- 「ソフトウェアアーキテクチャの基礎」本はアーキテクトが読むべき本だった(2022.09.18)
- 組込みソフトウェア開発でUMLを使う手法を説明した書籍のリンク(2022.06.17)
「プロジェクトマネジメント」カテゴリの記事
- PM理論では課業志向の方が関係志向よりも生産性が高いことを主張しているのではないか(2023.01.22)
- 現代日本人の弱点はリーダーシップ不足と生産性が著しく低いこと、そしてリスク許容度が著しく低いことだ(2022.12.23)
- プロセス設計はどの範囲を指すのか?~プロマネの仕事はテーラリングにある(2022.06.19)
- 知識は経験よりも大切か、経験は知識よりも勝るのか、SECIモデルは相互作用を語る(2022.04.26)
- プロジェクト管理の基本はテーラリング、Redmineはプロセスをテーラリングするツール(2022.04.21)
「ソフトウェア工学」カテゴリの記事
- ChatGPTにEclipseでEclEmmaとJaCoCoからカバレッジを出力する方法を聞いた(2023.02.01)
- DDPは品質管理に役立つのか(2022.12.13)
- 組合せテストにおける因子と水準はどちらを最優先で考えるべきか(2022.12.04)
- XPエクストリームプログラミングは偉大だ~時代がその設計思想に追いついた(2022.11.16)
- 第23回東京Redmine勉強会の感想~コミュニティは仲間から生まれて続く #redmineT(2022.11.06)
「Agile」カテゴリの記事
- PM理論では課業志向の方が関係志向よりも生産性が高いことを主張しているのではないか(2023.01.22)
- 現代日本人の弱点はリーダーシップ不足と生産性が著しく低いこと、そしてリスク許容度が著しく低いことだ(2022.12.23)
- DDPは品質管理に役立つのか(2022.12.13)
- UMTPモデリングフォーラムのパネル討論の感想(2022.11.29)
- XPエクストリームプログラミングは偉大だ~時代がその設計思想に追いついた(2022.11.16)
コメント