ちょっと前の記事ですが、Rough Typeで興味深い記事があったので、自分用にメモ:
Open source's other advantage (Rough Type)
簡単に内容をまとめると:
- オープンソース方式の弱点として、「開発者が分散して存在しているため、開発者間でコラボレーションし難い」という点が挙げられる。逆に従来型のプロプライエタリー方式では、開発者が同じ組織内に属しているため、効率的な開発ができることが強みとされている。
- ところがハーバード大学の調査(Exploring the Structure of Complex Software Designs: An Empirical Study of Open Source and Proprietary Code)によれば、オープンソース方式で開発されたソフト(Linux)の方が、プロプライエタリー方式で開発されたもの(オープンソース化される前のNetscape Navigator)に比べ、プログラムのモジュール化が徹底していた。
(※プログラムのある一部をいじった場合に影響が出る他の部分の数についてMozillaとLinuxを比較したところ、その比率は3:1だった。ちなみにこの比率はMozillaのオープンソース開発が進むについれ、次第に同じ値に近づいていったとのこと。) - だとすると、オープンソースにおける「開発者がバラバラに存在している組織構造」は弱みではなく、むしろ強みと考えられる--特に現在はプラグ・アンド・プレイが重視される時代であり、モジュール化されやすいという点はオープンソース型開発の大きなアドバンテージとなる。
とのこと。僕は残念ながら、この「オープンソース型」というものは体験したことがないのですが、ハーバードの研究者達が出した仮定:
In particular, they believed that the tight organization of a proprietary project would result in a tightly integrated program, with a lot of interdependencies, while the loose organization of an open-source project would lead to a more modular design, with fewer interdependencies.
の前半部分は確かに頷けます。開発効率が何よりも優先されますから、モジュール化は望ましいと分かっていながらも、「とりあえずこの開発チーム内で理解されてるのだからいいや」という気分になります(過去の話なので許して下さい)。
もし自分の身近にいない人物が同じプログラムを触る環境であれば、誤りが生じないようにモジュール化を徹底する動機が増したでしょう。またこれは個人的な感情かもしれませんが、僕は自分が作ったプログラムに「by Akihito」と自分の署名を入れる瞬間が好きでした。と同時に「いつかこの電子データは消されてしまうんだ」と悲しい気分になったものですが、もしオープンソースの環境で開発していたら、なるべく自分の書いたコードが再利用されるように、モジュール化を意識していたかもしれません。
意識の高い開発者ばかりが揃った環境であれば、プロプライエタリー方式の開発でもモジュール化が徹底される可能性はあります。しかし組織構造がプログラムの構造にも影響を及ぼす、というのは面白い指摘です。効率性が重視されない状況であれば、あえて自社の社員をフラットな組織、かつ各々リモート環境で開発させる、というのも1つの手段かもしれません。
と薄い根拠で書いてみましたが、組織論と開発手法を関連付けた研究って進んでいるのでしょうか?自分が知らないだけかもしれないので、気にして見てみようと思います。
コメント