「伽藍とバザールを融合した品質保証」について語るMichlmayr氏

2年前にDebian Project Leaderの任期を終えたMartin Michlmayr氏は、ケンブリッジ大学の技術経営センター(Centre for Technology Management)で博士号を取得するための研究生活を送っている。『Quality Improvement in Volunteer Free Software Projects: Exploring the Impact of Release Management(ボランティアベースのフリーソフトウェアプロジェクトにおける品質の向上:リリース管理による影響の調査)』というのが、彼の学位論文の暫定的なタイトルだ。Michlmayr氏は、多くのプロジェクトが評判を得て成熟度を高めていくには品質保証が欠かせないことに着目している、とNewsForgeに語っている。しかし、各プロジェクトが品質保証の必要性を正しく認識するためには、従来の「伽藍とバザール」という見方を改める必要があるだろう、と彼は信じている。

フリーソフトウェアのコミュニティでは品質保証がないがしろにされることが多い。では、なぜMichlmayr氏は、学位論文の研究としてこのテーマに興味を持ったのだろうか。「私はいつも完璧主義者だったし、今でもそうだ。コミュニティにいる大半の人々は、自分たちがどれだけうまくやってきたかを繰り返し述べている。しかし、私は賛同できない。確かに私たちが多くのことを成し遂げてきたことは認めるが、もっとうまくできたはずのことすべてに目を向けるべきだ」と彼は語っている。

「とりわけ興味深いのが、ボランティア中心で開発を進める場合にどうすれば高い品質を維持できるか、という問題。私がDebianに関わっている理由の1つに、Debianがそうしたボランティアベースの大規模プロジェクトだという点がある。Debianプロジェクトには世界中から1,000人を超えるボランティアが集まっているので、たいていはある種の問題が生じる」(Michlmayr氏)

Michlmayr氏は、Debianの品質保証グループでの活動に言及して、「品質を確保するための技術的な取り組みをいくつか行っているが、個人的な興味があるのは主として、どのようにプロジェクトを管理すれば高品質の成果物を生み出せるかだ」と話している。

フリーソフトウェアにおける品質保証の現状

もともとフリーソフトウェアのコミュニティは、品質保証に関わる「信頼性とコードの質」といった点では優位に立っていた、とMichlmayr氏は説明する。しかし、フリーソフトウェアがビジネスユーザや技術に明るくないユーザにも普及したため、今や各プロジェクトは、これまで無視してきたユーザビリティにも目を向けざるを得なくなっている。その結果、品質保証チームは、フリーソフトウェアのプロジェクトでますます一般的な存在になりつつある。

こうした動向にもかかわらず、Michlmayr氏は次のように話している。「至るところに問題が存在する。私たちがいつも成功例として取り上げるFOSSプロジェクトも例外ではない。よく調べてみれば、実はそうしたプロジェクトも見た目ほどうまくいっていないことがわかる」

この考え方は、Debian の品質保証グループのホームページにも反映されており、そこには「今のところ、Debianには従来の意味での品質保証と呼べる仕組みは存在しません」と記されている。ここでいう「従来」とは、商用ソフトウェアの開発者たちが必要と考えているものを指している。Debianプロジェクトには品質保証の問題に専任で取り組む6名のメンバーがいるが、Michlmayr氏が足りないと考えているのは「さまざまな立場の人々どうしのさらなる協力と、品質保証の活動によって品質レベルが維持されるという保証」だという。「大きな問題は、ボランティアの集まりである私たちが高い品質を保証できるかどうか、あるいは、この品質保証の領域で企業からの支援が役に立つかどうか、である。十分な品質を備えたものはよく目にするが、長い間未解決のままの問題が残っていることも多い。私たちは、セキュリティのバグは2時間以内に修正する、とは述べているものの、何週間、何カ月経っても解決されないバグについては触れていない」

同じように、Michlmayr氏はLinuxカーネルの開発にも言及している。「サブシステムによっては、実によくメンテナンスされているものもあるが、反応があまりよくないメンテナもいる。品質保証の考え方の1つに、場所を問わず高いレベルの品質を維持する、というものがある。もう1つの問題がリリースサイクルであり、このところ、カーネルが不安定だと言うユーザがたくさんいて、リリースサイクルについて開発者との要望の食い違いが目立ってきている。Andrew Mortonがバグ修正に専念するサイクルを提唱したが、カーネル2.6.18では採用されなかった。また最近Andrewは専任のバグマスターを置きたいとも話していたが、私の知る限り、そうした人物を採用しようと進んで言う企業はいない」

Michlmayr氏が研究のために注目しているもう1つのプロジェクト、GNU Compiler Collection(GCC)の品質保証はもっとよくない状態にある。「バグの大半は、1人の担当者が優先順位に従って対処している。GCCの開発者たちも、特定の機能を追加する仲間に対して不満を述べているが、機能が追加された後に何が起こるかについては気にしていない。事実上、開発者たちは自分が作り込んだバグの修正を他人に押しつけているのだ」

結論として、Michlmayr氏は「私たちは、コミュニティとして品質面をもっと強調する必要がある」と述べている。「ここでいうコミュニティには、フリーソフトウェアの存続に関与しているボランティアや企業も含まれる」

フリーソフトウェアにおけるさらなる問題

研究の途中、Michlmayr氏は、フリーソフトウェアのプロジェクトに共通して見られるいくつかの問題を明らかにしている。1つ目は、リリースの管理である。「商用ソフトウェアの開発環境でもリリースを予定通りに行うのはかなり難しい。開発者の多くがボランティアであるような分散開発環境ではなおさらだ」(同氏)。これらの問題には、協力不足や、途中で投げ出したり、一時的に作業に集中できなくなる人々が原因で生じる開発の遅れが含まれる。しかし、Michlmayr氏にとっての最大の問題は、「一部の魅力的な領域の作業にしか興味を持たない人が多く、それ以外の領域が、たとえプロジェクト全体としては重要であっても、放置されてしまうこと」である。そうした放置される領域の1つが品質保証であることが非常に多い、と彼は示唆している。その結果、「リリースが遅れたり、バグが多いソフトウェアが生まれる」ことになる。

もう1つ、フリーソフトウェアのプロジェクトには専任のテスターが少ない、という問題がある。たとえプロジェクトに品質保証チームが設置されている場合でも「ほとんどのテスターは、実はユーザであり、問題を論理的に説明する能力が十分に備わっていないことがあるため、注目すべき点に目を向けていないことが多い」とMichlmayr氏は話している。こうした説明能力の不足は、母国語の言語スキルの欠如、または母国語以外でのコミュニケーションのどちらかに起因している。「また、多くの場合、この問題は、適切に調査されることなく片付けられている。単に人材が足りないだけのこともよくあるが、テスターの心構えの問題でもある」(Michlmayr氏)

これまでにMichlmayr氏が明らかにしてきたなかで特に大きな問題が、プロジェクトの数とそれらを見守る人々の数が増加していくスピードである。フリーソフトウェアのユーザが増えるにつれ、開発者側には開発スピードの向上が求められている。「そのうえ、コミュニティが大規模になっていることで、(人々の)協力と(ソフトウェアの)統合がますます難しくなっている。大部分は、複雑さの問題と、その複雑さに対処する方法を見つけ出す難しさによるものだ」とMichlmayr氏は説明している。

解決策を求めて

Michlmayr氏は、品質保証活動を改善したいプロジェクトのために、自身の観察に基づいて2つの提案をしている。複雑化に対処するために彼が提案しているのは、時間に基づくリリース管理である。「詳細なリリース計画を公開することによって、個々の開発者どうしが各自の作業を調整することが可能になり、リリース前の統合が容易になる。」と彼は説明している。「GNOMEプロジェクトが品質保証を実にうまく行っている一方で、Linuxカーネルのプロジェクトは、過去数年間、リリースモデルを見出して今なお彼らが取り組んでいるやり方を何度も変更しようとしてあがいている」

もっと重要なのは、各プロジェクトがソフトウェアのライフサイクルの考え方や、Eric S. Raymond氏が最初に提唱した伽藍とバザールの方式の違いに対する考え方を改めるべきだ、とMichlmayr氏が考えていることである。伽藍方式 ― 開発が閉鎖的な環境で秘密裏に行われる ― が独占的ソフトウェアの典型的な開発形態であり、バザール方式 ― 万人に対して開かれた状態で開発が行われる ― がフリーソフトウェアの特徴である、という従来のとらえ方に対し、Michlmayr氏は、オンラインで公開されている論文でも述べているように、疑問を投げかけている。独占的ソフトウェアであるかフリーソフトウェアであるかに関係なく、「これら2つの開発方式は、実際には1つのプロジェクトの異なるフェーズを表現している」と彼は述べている。

「プロジェクトをバザール方式で開始するのは不可能だ。なぜなら、最初は多くの開発者を魅了できるような初期プロトタイプを開発しなければならない。そうしたプロトタイプはどのように作られるだろうか。個人または小さなチームが、独立した体制ですべてを掌握しながら開発を行うはずだ。そうした開発体制は、伽藍方式にほかならない」とMichlmayr氏は説明する。

「多くの成功プロジェクトは、プロジェクトをオープンにし、興味を持って機能追加やバグ修正をしてくれるボランティアを増やしながら、バザール方式に移行していくものだ、と私は思っている。しかし、その段階に到達しているプロジェクトは少ない。その理由の一部は、プロジェクトの開始とバザール方式への移行には別々のスキル群が必要になることにある。プロジェクト開始時に必要なのは、優れた設計およびプログラミングのスキルである。しかし、バザール方式の開発体制を作り上げるには、マネジメントのスキルが要求される。多くのプログラマは持ち合わせていないスキルだ。そのため、本当はもっと大きな成功を手にできるはずの小規模プロジェクトが数多く存在している、と私は考えている」(Michlmayr氏)

つまり、品質保証のスキルは、フリーソフトウェア・プロジェクトの早い段階ではそれほど重要ではないが、本当のフリーソフトウェア・プロジェクトになるには、高まる評判と増大化する複雑さに対処するスキルと同様に必ず獲得しなければならないものだ、とMichlmayr氏は述べている。また、彼は、フリーソフトウェアのコミュニティにいる人々の頭の中には、開発形態を伽藍とバザールの2つの方式に分ける考え方がかなり根付いているので、そうした問題に直面するまで彼らにはこの変化の必要性がわからないかもしれない、と示唆している。

「当然のことだが、プロジェクトが大きくなることは、必ずしも品質レベルの向上を意味しない」とMichlmayr氏は話している。「実際、開発者が1人か数名(だがスキルは高い)しかいなくても注目に値するプロジェクトはたくさんある。しかし、高い品質を実現するにはプロジェクトを大きくしなければならないとは言わないまでも、規模と評判は確かに品質に関係している、と私は考えている。この問題については答えの出ていない疑問が依然として多数残っているが、Raymond氏の『伽藍とバザール(The Cathedral and the Bazaar)』が必ずしも典型的なオープンソース・プロジェクトについて述べていないことは間違いないと思う」

学位論文の完成に向けて

今のところ、Michlmayr氏の博士課程は、2007年の夏で終わることになっている。学位論文が仕上がったら自分のホームページで公開して、フリーソフトウェアの国際会議で研究内容について議論を行う予定だという。それまでは、履歴書に列挙する論文の数を増やし、来賓講演者として予備的な知見に関する発表を続けることになる。「今のところ、私が話せるのは、フリーおよびオープンソースのプロジェクトにおける一般的な品質の問題に対する導入部に過ぎない。今後は、リリース管理についての具体的な話ができるようになる予定だ」(Michlmayr氏)

学位論文のテーマに対する意見全般を総括して「私が否定的な面ばかりに注目しているという点で、ちょっとした悲観論者だと述べてもらっても構わない」とMichlmayr氏は語っている。「しかし、この悲観的な見方が役に立つことも多い。というのも、そのおかげで解決の難しい問題を明らかにし、緩和できるからだ。また、その意味ではかなりの楽観論者ともいえる。改善の余地は多分にあり、フリーソフトウェアのプロジェクトにおいて品質保証の取り組みが増えていることからもわかるように、ほかの人々もこのことを認め始めている」

Bruce Byfield氏はセミナーのデザイナ兼インストラクタで、NewsForge、Linux.com、IT Manager’s Journalに定期的に寄稿しているコンピュータジャーナリストでもある。

NewsForge.com 原文