いま「AIエージェント 人類と協働する機械」を読んでいる(良い本だ)のだけれども、その中でずいぶんと懐かしい話が出ていた。それはMicrosoft Windows Vistaのリポジトリと組織に関する研究だ。いわゆるコンウェイの法則の話だけれども、改めていろいろ読み返している、という話。
コンウェイの法則の妥当性は、多くの実証研究によって裏付けられています。
マイクロソフトの研究チームが2008年に発表した「Windows Vista ケーススタディ」は特に興味深い結果を示しています。3,400以上のバイナリと組織メトリクスを解析した結果、組織の複雑さが高いモジュールほど障害率が高いことが明らかになりました。さらに驚くべきことに、組織指標は従来のコード指標よりも故障予測精度が高かったのです。これは、コードの品質そのものよりも、どの組織の誰が関与したかという組織的要因が障害発生に直結することを示しています。
AIエージェント 人類と協働する機械、第7章 人と半導体の価値転換、より
Making Software
このVistaの話を初めて知ったのは「Making Software ―エビデンスが変えるソフトウェア開発」に収録されたエッセイからだった。2011年の本であるが示唆のある良書だ。この本は様々なソフトウェア開発に関する言説を、複数の論文などを参照しながら複眼的に検証するというもので、他にもなかなか楽しい話が載っている。
Vista研究について言及するのは「11章 コンウェイ法則の系」で、ここではVista研究だけでなく複数の研究をもとに、コンウェイの法則について検証している。結論を抜粋するとこんな感じだ。
コンウェイの法則の系は、ソフトウェア開発という挑戦にマイナスの影響もプラスの影響ももたらし得るものであり、プラスの影響を活用することで、プロジェクトのステークホルダたちに力を与えることができます。今やその効果を支持するエビデンスが存在するわけですから、それを無視するならそれなりのリスクを覚悟すべきでしょう。
Making Software ―エビデンスが変えるソフトウェア開発 11章 コンウェイ法則の系、より
ただ、当時は機械翻訳の精度もまだまだであり、生成AIもなかったので、現論文を参照してより深く考えるということはできなかった。しかし、今は違う。というわけで 現論文を今回はちゃんと読んでみようと思ったのである。
The Influence of Organizational Structure on Software Quality
以下、論文を読んで理解したことを書くのだけど、いくつか注意点がある。まず Vistaの開発は25年前の話であるということ。また、有名なMicrosoftの「Hit Refresh(ヒット・リフレッシュ) マイクロソフト再興とテクノロジーの未来 (日経ビジネス人文庫)」(再起動)前の話であり、Microsoft社内の開発者文化はおそらくかなり悪かった(このあたりは 最近読んだ「FRICTION(フリクション) 職場の問題を解決する摩擦の力」でも紹介されている)だろうという点である。
そのあたりを差っ引いた上で、論文に書かれていることをざっくりと読んでみよう。
組織指標(Organizational Metrics)
あるバイナリ(モジュール)に関与した
- 開発者数
- チーム数
- 上司(マネージャ)の数
- 途中で担当者が変更された回数
- 組織構造の複雑さ(報告ラインの多さ)
などを組織メトリクスとして、故障(Failures)との関係性を分析するというのが論文のアプローチだ。すでに嫌な予感が……
実証的な研究は味わい深い
本論文で語られていることは、嫌な臭いとしてエンジニアには経験的に知られているものだとは思うが、データとして実証されると極めて示唆深い。
Google Scholar あたりで本論文を引用している論文などを漁れば、もうちょっと面白い話が読めるのではないかと思う今日この頃。