オープンソース環境に見る将来の開発形態

The future of software development environment まえがき私は，平成 10 年 3 月に大阪大学大学院基礎工学研究科物理系専攻を単位取得認定退学し，同年 4 月から大阪大学大学院基礎工学研究科情報数理系専攻にて助手として着任しました．卒業研究で研究室に配属されてから，ソフトウェア工学の分野，特にソフトウェア開発環境やソフトウェアプロセスに関する研究に携わっています．
今回，本コラムへの投稿の話を頂いて「どういう話を書こうか?」とあれこれ考えた結果，私が現在個人的に関わっている，日本国内の FreeBSD プロ
ジェクトの活動についてご紹介させていただき，これらの活動から得られる知見から，将来のよりよいソフトウェア開発環境について話を進めてみたいと思います．

 国内における FreeBSD の活動の紹介
最近では，Linux などの PC で動作する UNIX 系 OS がさかんに使われています．FreeBSD もこれらの仲間であり，IBM-PC 互換機や COMPAC 社のAlpha PC で動作する BSD UNIX 系の OS です．6 年ほど前にアメリカで誕生した FreeBSD ですが，日本はおそらく世界中のどこの国よりも FreeBSDが普及した国と言っても良いかもしれません．それだけ，日本国内におけるFreeBSD の活動はめざましいものがあります．
一口に「FreeBSD に関する活動」といってもいろいろな物がありますが，おおまかには「コードを書く」「文書を書く」「文書やコードを書く人々の支援をする」という 3 つに分類することができます．これらの活動全体では，主なメンバーだけでも約 50 人，小さな作業を含めると数百人以上もの人々が関わっています．

OS も 1 つのソフトウェアですから「コードを書く」活動はまさに直接的な活動と言えます．PAO と呼ばれるノート PC 用の支援パッケージ，FreeBSDのカーネル内部における新しい枠組を構築するための newcon g，光磁気ディスク，サウンドカード，シリアルカードなどのドライバ開発など，いろいろな分野でソフトウェアを書くための作業が進められています．
プログラムだけがソフトウェアの構成要素ではありません．FreeBSD に関する「文章を書く」作業もまた活動の 1 つです．英語で書かれているマニュアル等の翻訳作業を始め，問答形式のガイド等，FreeBSD を利用する際に有用となる情報を執筆するさまざまな作業があります．

1

コードや文章や文章を書く人々が，その作業に集中できるための環境作りもまた重要です．開発作業を行う計算機のメンテナンス，日本中のあちこちに住む作業者間の情報交換インフラストラクチャの維持，コードや文書の成果物の配布など，活動の屋台骨を支える活動があります．私はこの分野で活動しており，計算機メンテナンスや電子メールの配送管理をさせていただいています．

 活動で用いられるツールたち
これらの活動は，通常のソフトウェア開発組織が行う開発活動と良く似ていますが，大きく異なる点があります．それは「活動全体が強く結びついているわけではなく，個人の活動がゆるやかに結びついてる」所です．
この事は，上記の活動を行う際に用いられているツールや技術によく反映されています．作成されたコードや文書は CVS システムによって管理されています．CVS は複数人での分散した作業環境で良く用いられているツールであり，互いに並行した作業を CVS を用いて同期させています．CVS で管理された内容を外部へ公開するために用いられているのは WWW と ftp です．
この他に，CVS に特化した配布方法である CVSup も提供されています．各個人の間の情報交換は単に電子メールだけで行われます．さまざまな目的別にリストが作成されており，過去の内容を WWW 等で閲覧できるシステムが構築されています．この他，FreeBSD の本家プロジェクトでは，バグ報告等の管理を行うために GNATS と呼ばれるシステムが用いられています (国内の活動ではまだ GNATS は用いられていませんので省略します)．
以上のことから，非常に極端な話をすれば「インターネット環境に CVS とWWW とメーリングリストさえあれば，オープンソースの開発環境は構築できる」と言って良いかもしれません．

 活動がうまく進んでいる理由
しかし，「各種のオープンソース活動は非常に開発能力が高いと聞いている．
もし，その種のツールを導入すればどんな開発組織でもソフトウェア生産効率を上げられるだろうか?」という疑問には，残念ながら「それはありえない」という答しかないと私は思っています．ソフトウェア開発に限らない話ではありますが，形だけ導入してもうまくいかないのは言うまでもありません．

FreeBSD はもちろん優れた OS ですし，国内のさまざまな活動によってもたらされた成果もまた非常にすばらしいものです．でも，これらの活動を本業として行っている方は残念ながら誰ひとりとしていません．つまり，余暇の時間の一部がこの種の作業として行われているに過ぎません．まとまっ

2

て時間が取れない，あるいは，いつ時間が取れるかわからないということは，作業の効率という点からすると決して良いことではないはずです．にも関わらず，確かに活動は非常にうまく動いているように見えます．これは，先に述べた「個人の活動がゆるやかに結びついている」という点にあると考えられます．
コードや文書は全て CVS によって管理されていますので，他人の作業結果は全ていつでも閲覧し，それに自分の作業を，自分の好きな時間に，自分の好きなだけ追加していくことが可能です．電子メールでやりとりを行うことにより，競合する，あるいは協調する作業を行う人々の間の連絡もまた好きな時に行うことができます．自分の作業によって，他の作業者を無闇に煩わせることがありません．
「とりあえずやってしまえ」という，全く管理されないスタイルであるための利点が，非常に強調されているのがこの種の活動における特徴と言えます．
また，活動に参加している各個人の多様性も，活動がうまくいっている理
由として無視できないのではないかと思います．ソフトウェア会社で実際に開発に携わっている方や，計算機関連の研究者はもちろんですが，本業が計算機とは全く関係のない方も多数 FreeBSD の開発活動に参加しています．異なる価値観を持つ人々が意見を交すことによって得られる効果は多分非常に大きいのではないかと思われます．
活動がうまくいく理由と考えられることは他にもいくつか考えられます．しかしながら本当にそれが「どの程度有効に働いているのか」はまだはっきりとわかっていないような気がします．

 むすび
ソフトウェアハウスで行われているごく一般的な開発を「がんじがらめ」だと呼んで良いならば，FreeBSD のような活動は「あけっぴろげ」と呼んで良いでしょう．従来のよくあるソフトウェア開発環境や開発方法は，多分程度の差こそあれ「がんじがらめ」であることが前提になっているのではないかと私は感じています．
これは組織というまとまりを単位として行われる活動である以上仕方のないことではあります．しかし，一般の組織でも「あけっぴろげ」のスタイルの持つ良い所を吸収できれば，従来の「がんじがらめ」から脱却した，より良いソフトウェア開発環境を構築できるのではないか，と，漠然と考えています．
以上，かなり一人よがりの考えをとりとめなく綴ってしまいました．このような場を勧めてくださった大阪大学大学院基礎工学研究科情報数理系専攻の菊野亨教授に心から感謝致します．

3