伽藍とバザール
The Cathedral and the Bazaar
「伽藍(大聖堂)とバザール(市場)」は、エリック・レイモンドによるオープンソースソフトウェアの開発方式に関するエッセイで登場した言葉です。そこで強調されるのは「バザール方式」。バザールには、全体をとりまとめる責任者がいないにもかかわらず、それなりの秩序を保ったコミュニティが成立しています。これは、生物でも同じ。統括細胞がいないにもかかわらず(脳は統括はしていません、調整情報を発行する単なるサーバーです)、個々の細胞が協調して全体がうまく動くのです。自律分散協調系・非平衡開放系です。
伽藍方式とバザール方式
伽藍方式
- ソフトウエアのソースコードは非公開、あるいは限定的な公開
- 開発はクローズドなチームのメンバーに制限される
- 設計者がすべての計画と体制を確立して開発する
- 企業などで一般的に行われている開発方式
バザール方式
- ソフトウエアのソースコードはインターネットで公開される
- 不特定多数の利用者・開発者が - 市場のように集まって - 設計と実装を進める
- Linuxカーネルの開発(リーナス・トーバルズ)がその先駆け。
バザール方式の19の教訓
以下、WikiPedia:伽藍とバザールから引用
- 全ての良いソフトウェアは開発者の個人的な希望から始まる。
- 良いプログラマは何を書けば良いか知っている。凄いプログラマは何を書き直せば・何を再利用すれば良いか知っている。
- 破棄する計画を立てる。いずれにせよ、そうすることになる。
- 適切な取り組みをしていれば、おかしな問題は自発的に主張してくる。
- ソフトウェアに興味がなくなった時には、ソフトウェアを手放して優秀な後継者に引き継ぎする。
- 利用者を共同開発者として扱うことは迅速な実装改善と効率的なデバッグの最短ルートである。
- 素早く頻繁なリリースを実施し、顧客の話を聞く。
- 十分なベータテスターと共同開発者の基盤があれば、大半の問題はすぐに特定されて誰かが直す。
- 賢いデータ構造と愚かなソースコードは、その逆であるよりずっと良い成果を出す。
- あなたがベータテスターを最も有益な資産として扱うなら、彼らは最も有益な資産となり応えてくれる。
- 次の最適案は利用者による良いアイディアに気付かされる。後から出たアイディアの方が良いこともある。
- 大半の衝撃的で革新的な解決策は自身の問題の捉え方が間違っていることに気付くことから始まる。
- 完璧な設計はそれ以上の追加することがなくなった時ではなく、それ以上の削減することがなくなった時である。
- 全てのツールは想像通りに便利であるべきであるが、本当に凄いツールは作者の想像を越えた便利さを与える。
- どんなゲートウェイソフトウェアを実装する場合でも、データストリームへの影響は可能な限り最小限に抑え、受け手が強制しない限りはデータを決して破棄しない。
- 自分の書き方がチューリング完全から外れているなら、シンタックス・シュガーは手助けになる。
- セキュリティシステムのセキュリティはそれが秘密である時だけ意味を成す。見掛けのセキュリティには注意すること。
- おかしな問題を解決することは、おかしな問題を探すことから始まる。
- 開発コーディネーターが少なくともインターネットと同等に良質な交流手段を持って圧力をかけない先導手法を知っているなら、必然的に頭数は多い方が良い。
参考
- ツリー構造とセミラティス構造 Christopher Alexander
- スケールフリーネットワーク Albert-László Barabási / Réka Alber
- 正規分布とべき分布