未来のいつか/hyoshiokの日記

hyoshiokの日々思うことをあれやこれや

開発コミュニティの社会的責任

オープンソースソフトウェアが社会基盤を担うようになって来てその重要性がませばますほどその社会的な責任というのはどうあるべきかという問題について議論をする必要がでてくる。社会がそのソフトウェアに依存すれば依存する程、開発コミュニティにも社会的責任が生じて来るのではないだろうか?あるいは開発コミュニティはボランティアの善意によって運営されているのだから免責されるべきなのだろうか?何が免責され何が免責されないのか?
例えば、ソフトウェア品質特性という概念がある。またまたgoogleしてみるとhttp://www.cam.hi-ho.ne.jp/adamosute/kyotu/iso9126.htm
ISO/IEC9126という標準があるそうで、そこで6つの品質特性、
- 機能性
- 信頼性
- 使用性
- 効率性
- 保守性
- 移植性
が定義されている。通常のソフトウェアの場合、例えば上記の尺度によって品質特性が評価される。まあ、ソフトウェアというものはすべからく顧客の満足度を満たさなければいけないわけで、その上での品質特性であることは間違いない。バグが無いソフトウェアでも顧客の要求を満たしていなければ何の価値も無いと言うことである。バグが少々あっても顧客の要求を満たしていればまあ合格という感じでもある。ここらへんは古典的な品質管理の教科書にいやというほど書いてある。
さてオープンソースソフトウェア(OSS)の場合の品質特性をどう評価するかという話である。オープンソースと言うのはある意味で言えば、あるオープンな仕様に関する実装であり、狭い意味での機能性は一緒で、何が違うかと言うと実装だけが違う、なーんてことが起きる。POSIXという仕様のXXXという部分を実装したのがLinuxというカーネルであるとか、SQLの仕様のなんちゃらを実装したのがMySQLだとかPostgreSQLである。という感じである。もちろんその仕様を満足する商用製品もあったりするが。
OSSを評価する時、上記の6つの品質特性だけではなく開発コミュニティそのもののdependabilityというのも非常に重要になってくるとわたしは思っている。仮に、OSSの機能はまだ十分でなかったとしても開発コミュニティが非常に活発で、バグフィックスも頻繁に出し、機能拡張も積極的、セキュリティフィックスに対しても前向きに対応しているコミュニティが開発している物と、機能はそこそこあるんだけど、コミュニティはそれほど活性化していないものがあったとしたら、どっちにより依存した方が安全か?OSSをより社会基盤の根幹に近いところで使おうとすればするほど、開発コミュニティに対する依存性が好むと好まざるとにかかわらづ発生し、それに対する責任感を開発コミュニティがどれだけ持ち得るのか?というのがわたしの設問である。これは広い意味でのOSSコミュニティの責任になりうるというのが限定的だがわたしの現在の立場である。そしてその責任をとるという覚悟が無い限りOSSは商用ソフトウェアとのdependabilityの競争に勝利できない。こーゆー事を言うと商用ソフトウェアだって、バグフィックスは保証していない、という反論が聞こえて来る。限定的な保証しか与えていない。虫眼鏡で読んでもよく分からない使用許諾書という契約書なんだかわからないものを見ても無保証というような感じにしか読めなくもない。にもかかわらづ24時間*365日のサポートサービスと言うのはお金を払えば提供されて、そこで提供されるサービスレベルの契約書というのは存在する。顧客がそれを喜んで購入するか否かは別としてもミッションクリティカルなシステムではその手の契約を結ばざる負えない。そして商用システムベンダーはそのサービスを提供するのである。
OSSについてミッションクリティカルなサービスを提供できるのか?そんなことは可能か?仮に可能だとしてそれが商業的に成立ち得るのか?否か?結局そのようにしてサポートされるOSSは商用ソフトウェアとどれだけ違うのか、違わないのか?OSSの有利な点は結局何なのか?わたしの頭の中には漠然とした回答はあるのだがまだ精密に記す事はまだ難しい。いろいろな意味で。
OSS開発コミュニティに社会的責任があるとすると誰がその責任を果たすのか?セキュリティホールが発見された時、誰がセキュリティフィックスを提供するのか?バグが発見された時誰がバグフィックスを提供するのか?機能追加を誰がするのか?そしてそのメカニズムが他の商用ソフトウェアより系(エコシステム)としてどう優れているのか?論点は多いが、今日はこのくらいまで。