【 ここから本文 】
- TOP
- > Topics : オープンソース
- >
オープンソース
ソーシャルブックマークに登録 :
印刷用ページの表示
オープンソースが「開発系」で強い理由
開発者とOSSの良好な関係を生むエコ・システム
(2007年04月19日)
開発系OSSソフトウェアの
利用価値
最後に、開発系OSSを利用するメリットについて考えてみたい。一般的にOSSのメリットは、まず「無料で利用できること」、そして「ソースコードが公開されていること」の2つだと考えられている。
無料ゆえに全開発者が広く利用できる
無料という点は、OSSに対する誤解のもとともなるので筆者としてはあまり強調したくはないのだが、触れないわけにもいかないだろう。それに、有料のソースコード管理ツールを導入したもののライセンス料の問題で全開発者に配布できず、無理な運用をして破綻した例を見ているだけに、筆者も無料であることの価値を認めないわけではないのだ。
実際、開発用のソフトウェアで、全開発者が直接各自のPC上から自由に利用できなければ意味を持たないものは多い。例えば、開発環境などはその最たるものである。現在広く利用されている開発環境としては、真っ先に「Eclipse」が挙げられる。Eclipseが選ばれるのは、もちろん使いやすいからでもあるだろうが、無料であるため全開発者が利用可能であるという点が最大の決め手になっていると考えられる。パフォーマンスや軽快に動作するという点も、開発環境を選ぶうえでの重要なポイントであることには違いないが、かと言って、そのポイントを押さえるためなら、いくらかかってもいいというわけではない。
同様に、ソースコード管理ツールや、バグ追跡システム、自動テスト・ツール、開発用フレームワーク、アプリケーション・サーバなど、各開発者が自由に利用できなければならない開発インフラについても、無料であることは重要である。有料であるがゆえに十分な数のアプリケーション・サーバを確保できないまま多数の開発者がWebアプリケーションを開発するとしたら、特定のサーバ機で、テストのための順番待ちが起きてしまい、開発のスピードは極端に落ちることになる。同様に、バグ追跡システムへのアクセスが自由に行えなければ、修正リポート1つ作成するのにも余分な作業が発生し、開発のリズムが狂わされてしまう。
ソースがオープンであることのメリット
次にソースコードがオープンという点だが、ソースコードを入手したからといって、だれもがそのソフトウェアを修正できるというわけではなく、実際には、できないことのほうが多い。重要なのはむしろ、カスタマイズが容易なこととサンプル実装が可能なことだ。
例えば、業務で開発するソフトウェアに決まりきったテンプレートがあれば、開発環境に組み込むプラグインをあらかじめ開発しておき、作業効率を高めることができる。このような場合、OSSの開発環境であれば、仮に作成したプラグインに問題があったとしても本体のソースを含めてソースコード・レベルでデバッグすることができるため、問題点を容易に特定できる。一方、ソース非公開の開発環境の場合には、自作プラグインからツール内に制御が移った時点でブラックボックス内に入ってしまうことになる。また、前述したように人気があるOSSであれば、関連プロジェクトのソースコードを参照することで、ゼロから作り方を学ぶ必要性がなくなる。
ソースコード・レベルのデバッグは、アプリケーション・サーバやフレームワークを利用する場合にも重要である。実行時に問題が起きるとすれば、おそらくほとんどの場合は開発したソフトウェア側の問題であろう。それでも、ブラックボックス内でエラーが出るのと、問題となった個所をソースコードで特定できるのとでは大きく違う。
このように、ソースコードがオープンであるということは、開示されたソースコードをすべて読むということとは、まったく別物だ。必要となった時点で必要な個所を読めるということが、重要なのである。
以上をまとめると、開発系OSSの利用価値は、全開発者が同等の開発環境を得ることができるという点と、ソフトウェアのバグ修正などにソースコードが利用できるという点にあるということになる。
開発系OSSを
企業が活用するには
ここまで見てきたように、開発系OSSには「開発者教育の場の提供」「ソフトウェア開発における利用」という2つの価値がある。前者は、個々の開発者がOSSにコミットすることで得られる個人的なスキル向上や開発者としてのモチベーション維持という精神的/知的な価値であり、後者は実際にソフトウェアを開発する際に利用する開発インフラとしての価値である。
この2つの価値を、企業は共に享受できる。後者に関しては特に説明の必要はないだろうが、前者については実際に経験しなければ、どのようなものかも想像するのは難しいだろう。理系の大学で学んだ方なら、研究室の雰囲気をもっとオープンにしてより幅広いメンバーの参加を得、直接研究室に集まる代わりにメーリングリストやIRC、ブログを活用すると言えば、イメージがつかめるかもしれない。
実際に開発者教育の場という価値を得るためには、例えば自社の開発要員の中でもソフトウェア開発指向が強いメンバーをOSS開発にコミットさせるといった方法が考えられる。この開発者を通じて、OSSが持つ教育効果やコミュニティからの技術情報/技術動向などを得るわけである。
OSS開発へのコミットと言っても、フルタイムでLinuxカーネル開発に参加したり、巨大な自社製コードベースを提供したりといったことまでする必要はない。メジャーOSSを積極的に活用し、そこから自社プロジェクト用に開発が必要となったプラグインやユーティリティなどの関連プロジェクトをOSS化していくだけでよいのである。成功すれば、他の開発者によるブラッシュアップや、デファクト・スタンダード化が見込め、仮に失敗しても参加した自社開発者の教育になるというわけである。
















