オープンソースにおける開発方法

伽藍(がらん)方式とバザール方式ここまで、いくつかの開発プロセスについて説明してきましたが、ある意味、これまで説明してきた開発プロセスよりも、大きな成果を上げている「やり方」があります。それが、バザール方式です。これは、エリック・レイモンドの論文「The Cathedral and the Baza

上川 伸彦

2009年4月30日 20:00

伽藍(がらん)方式とバザール方式

ここまで、いくつかの開発プロセスについて説明してきましたが、ある意味、これまで説明してきた開発プロセスよりも、大きな成果を上げている「やり方」があります。それが、バザール方式です。

これは、エリック・レイモンドの論文「The Cathedral and the Bazaar(伽藍とバザール)」(http://www.catb.org/~esr/writings/cathedral-bazaar/、翻訳版:http://cruel.org/freeware/cathedral.html)で論じられている方式です。論文では、Linuxの開発方式を「バザール方式」、それ以外のよくある開発方式を「伽藍方式」と定義し、主にバザール方式のメリットを説いています。

伽藍方式

伽藍方式とは、中央集権的に伽藍を組み上げるかのようなやり方を指す。少数の高スキルの開発メンバーで慎重に開発する。完成するまでベータ版すら出さないような、リリースに対して厳しい考え方。一応言っておくと、多くのオープンソースが、このやり方で成功を収めている。

バザール方式

Linuxの開発で採用されているやり方。任せられるものは他人に任せ、早めにしょっちゅうリリースするという、リリースに対して厳しくない考え方。いろいろな作業やアプローチが渦巻くバザールのようなので、このような名前がついた。

両者の根本的な考え方の違いの1つが、バグに対する考え方です。伽藍方式では、バグは「あってはならないもの」です。つまり、バグがない状態でリリースするために、リリース前に、少数の開発者が長い期間バグ探し(そしてバグ修正)を行います。他方、バザール方式では、極端な言い方をすると、バグは「直すもの」でしかありません。リリースすれば、全世界の利用者によってバグ探しが行われます。

バグが発見されると、これまた全世界の開発者によって修正され、次のリリースに反映されます。バザール方式では、利用者も開発者も全世界の大多数となることもあり、そうなると、このバグ探し、バグ修正、リリースのサイクルを非常に短くできるのです(図1)。

バザール方式の考え方

エリック・レイモンドは、Fetchmailの開発に際して、意識的にバザール方式を実践したと述べています。そして、バザール方式を実践する上での注意点を4点挙げています。

1)早めにしょっちゅうのリリースを心がけた

リリースを増やす(=リリースサイクルを短くする)ことにより、バグ探し、バグ修正のサイクルを短くすることができます。また、プロジェクトの成果が明確になるため、開発者のモチベーション維持にも効果があります。

2)誰かがFetchmailの件で連絡してきたら、その人をベータリストに加えてリストを増やした。

3)リリースごとに騒々しいアナウンスをベータリストに送りつけて、みんなに参加をうながした。

ベータリストを増やすことにより、開発者を確保することができます。開発者を増やすことにより、バグ探しやバグ修正のスピードアップを期待できます。もちろん、ベータリストから多数参加してもらうことが重要です。

4)ベータテスタたちの言うことを聞いて、設計上の判断について意見を求め、パッチやフィードバックを送ってくれたら必ずほめた。

「言うことを聞く」のも「意見を求める」のも「ほめる」のも、開発者や利用者のモチベーションを向上させます。言うまでもないことですが、モチベーション向上は生産性向上に直結します。

上記の考え方は、特に「頻繁なリリース」「開発メンバーのモチベーション」といった切り口で、アジャイルな開発プロセスと共通していると言えるのではないでしょうか。

人気記事トップ10

人気記事ランキングをもっと見る

企画広告も役立つ情報バッチリ! Sponsored

ClickHouse Cloudが実現した広告運用SaaS「ATOM」のデータ基盤革新、パフォーマンスを向上しながら、運用負荷とコストを削減 11月11日 6:20 AIで開発が加速する時代、品質保証はどう変わる? Tricentisが示すAIエージェント活用の実像 11月9日 6:45 悪用までの猶予が「1分」に迫るフロンティアAI時代に開発と本番を貫く脆弱性管理が必要 10月29日 8:30 欧州CRA対応とSBOM運用。AI生成コードのOSS混入問題の対策とは ――スニペット単位で検出する「FossID」「Insignary Clarity」によるSBOM運用 9月16日 6:40 PostgreSQLからTiDBへ、稼働中SaaSで進める段階的DB移行の実践と再設計への展望 9月7日 6:30 機能安全開発におけるGoogleTestの活用を支援!「Parasoft C/C++test CT」で実現する効率化&AI連携 4月14日 6:30 【CNDW2025】Grafanaが明かす「オブザーバビリティの哲学」ー最小限の労力で実用的なインサイトを得るには 1月23日 6:30 【CNDW2025】プロダクト急増に備える基盤刷新 ーウェルスナビがECSからEKSへの移行で得た知見とは 1月15日 6:30 【CNDW2025】250環境を5人で運用、構築時間は30分に ーKINTOテクノロジーズが語るインフラ基盤組織の作り方 2025年12月18日 6:30 新たな自動化で熱視線! AIエージェントの「推論能力」を支える2つのコンポーネントとは? 2025年11月28日 6:30