動かないコンピュータForum


動かないコンピュータ・フォーラム 第30回

「オープンソースの不具合で動かないコンピュータ」への読者の反論から考える

動かないコンピュータ・フォーラム 主宰者
中村 建助=日経コンピュータ編集

日経コンピュータを読む理由No.1 「動かないコンピュータ」連載が単行本になりました。12月9日全国の書店で発売

 今回の動かないコンピュータ・フォーラムは、本誌の「誤算の検証 動かないコンピュータ」に対して寄せられた、読者のメールから考えてみたい。そのメールは、今年5月19日号の記事と、この号の表紙に掲載したそのタイトルに対する指摘だった。この読者からのメールに考えされられることが多かったからである。

 以下に指摘の対象になった記事の概要と指摘の内容を記す。その後に、今回のフォーラムで記者が皆さんと議論したいと考えているテーマを示すことにする。

 今回のフォーラムに対する、皆さんからのご意見をお待ちしています。皆さんのご意見は、このページの下方にある「Feed Back!」から書き込んで頂けるようになっています。

オープンソースのソフトを利用した開発でトラブル

 まず、5月19日号に掲載した「誤算の検証 動かないコンピュータ」の記事の内容について説明したい。

 この記事は、「早稲田大学が、新たに履修管理システムを開発して運用を開始したところ、すぐにシステムの応答時間が以上に長くなり、学生からの履修申告を処理できなくなった」というものだ。

 早稲田大学は、問題を把握した直後からシステムの応答性能を向上させるために原因究明・対策を続けたが、一週間以上も問題は解決しなかった。早稲田大学は、結局昨年まで実施していたマークシート記入方式で、学生からの履修申告を受け付けることにした。

 早稲田大学は新しい履修申告システムを、オープンソースのソフトを利用して開発していた。OSにLinux、WebサーバーにApache、データベースにPostgreSQL、開発言語にはPHPを用いた。これらのソフトを利用した開発に不慣れだったことと、十分なテスト期間が取れなかったことが重なって、複数の不具合がシステムに残っていた。

5月19日号の表紙 この号の表紙に掲載した「動かないコンピュータ」のタイトルは、「オープンソースの不具合で学生5万人に影響」であった。一方、本文のタイトルは「履修管理システムがほとんど利用できず 不慣れなオープンソースの開発でミス」というものだった。

 記事の全文を読まれた読者の方からのご指摘は、おおよそ次のようなものである。

 この履修管理システムのトラブルについては、開発の統括/マネジメント/技術力に大きな問題があると思える。「不慣れなオープンソースを使ったことがトラブルを招いた」わけではないと考えられる。たとえ、不慣れであったことが原因だとしても、それがオープンソースのソフトであったことは関係ない。

 特にタイトルの表現は、システム開発に利用したオープンソースに問題があったように受け取れるが、これは記事の内容とも記事本文のタイトルとも異なる。トラブルの原因については意見の相違もあるかも知れないが、表紙の表現は明らかに問題がある。

 すべてもっともなご意見である。今後はこういったご指摘を受けることのないよう、取材の進め方や記事の内容、タイトルの付け方について一層努力していきたい。わざわざご指摘いただいた読者の方には、改めて「有り難うございました」と申し上げます。

技術者の能力は万全だったのか

 長々とこれまでの経緯を引用したのには理由がある。それは、システムを開発する技術者の能力についての疑問である。

 実はこの読者からのメールと同様のご指摘を、私は取材先で直接、何人ものオープンソースに詳しい技術者から受けたのである。

 履修管理システムの応答性能が低下した最大の原因として、記事中ではWebサーバーとデータベース・サーバーの接続方法の問題点を挙げた。Webサーバーが処理要求を受け付けるたびにデータベース・サーバーと接続し、処理が終わると接続を切っており、これが性能を低下させる最大の要因だった。

 取材先からの指摘は共通してこの部分に対するもので、以下のような内容だった。

 Webサーバーが処理要求を受け付けるたびにデータベース・サーバーと接続し、処理が終わると接続を切る方法で応答性能が上がらないというのは、Webのシステムを開発しようとする技術者であれば、ごく基礎的な知識として知っているはずのことである。

 こういった基礎的な知識もない技術者がシステムの開発に携わること自体が不思議だし、開発が難航した理由がオープンソースの問題である、と考えるのはおかしい。

 もちろん、これらの「常識」はオープンソースの開発に特に詳しい方々の意見である。また私は、直接早稲田大学に取材して執筆した記者ではないので、開発の中でどういった経緯があったのか、細部までは把握していない。

 それでもあえてこの話を取り上げたのは、システムの開発が難航している事例で、似たような話を聞くことが多いからだ。つまり、開発に携わった技術者の力量に疑問があり、これが原因で開発が難航するケースが少なくないということである。

技術者はどう選ぶべきなのか

 一例を挙げる。2002年3月11日号の「誤算の検証 動かないコンピュータ」で取り上げた大学病院は、院内の全業務を支援する「統合医療情報システム」を、正常に稼働する状態に完成させることができなかった。大学病院は、一度選定したベンダーを別のベンダーに変更し、再度開発をやり直してシステムを稼働させた。

 最初のベンダーがシステムの開発に失敗した要因の一つに、100万ステップ以上に達するシステムを、Web向きの簡易開発言語として知られる「Perl」で開発しようとしたことがあった。医療機関のシステム開発に詳しいベンダーは、多数の患者が来診する大学病院の統合医療情報システムをPerlで開発しようとしたことを知って、いずれも言葉を失ったという。

 あまりソフトの開発に詳しくない記者も、Perlという言葉を聞いたときには、「なぜPerl?」という疑問が心をよぎった。この大学病院からは、なぜPerlが使われることになったのかの細かい理由を聞くことはできなかった。現在もその理由は不明である。

 システムの開発には、プロジェクトマネジメントが重要だと言われる。技術者の選定もプロジェクトマネジメントの一環に含まれるだろう。しかし、プロジェクトマネジメントに多少の不備があったとしても、システムに利用する言語やミドルウエアについての基礎的知識に欠ける技術者が選ばれるだろうか。どう考えても開発が難しいと思える言語に固執する(あるいは他の言語が使えない)技術者を、プロジェクトに参画させるものなのだろうか。

 また、こういった技術者あるいは技術陣が開発を進めていることに、他のプロジェクトの参加者は気付かないものなのだろうか。別の問題になるが、プロジェクトに参加する技術者への教育が、どういったものになっているのかについても疑問が残る。

 ここからが本題です。果たして、プロジェクトに参加する技術者の選択基準とは何なのでしょうか。そして、技術者の選択の実態はどのようなものなのでしょうか。

 早稲田大学の履修管理システムの場合であれば、オープンソースで開発することが決まった段階で、どういった対処をとればよかったのでしょうか。

 皆さんからのご意見をお待ちしています。


 以下の「Feed Back!」欄で読者の皆様のコメントを募集中です。実名や所属組織の概要なしで書き込んでいただいて構いません。もちろん、引き続き実名、所属組織の概要を「Feed Back!」欄に書き込んで頂ければ、歓迎いたします。ハンドル・ネームを利用されても構いません。

 特定の法人や個人を誹謗中傷するような内容や、公序良俗に反する内容の書き込みは受け付けません。一度掲載した後でも、上記のルールにそぐわないメッセージがあると判明した場合には、掲載後も削除することがあります。ご了承願います。締め切りは6月27日(金曜)午前10時までとさせていただきます。

 いただいたご意見は、本フォーラムのほか、本誌Webサイトおよび本誌編集部発行の「日経コンピュータ Express Mail」、日経コンピュータ本誌、縮刷版など日経コンピュータ本誌の再録媒体において掲載させていただくことがありますので、ご了承ください。それ以外への転用は致しません。


 今回のテーマへの投稿は6月27日(金曜)午前10時で締め切らせて頂きました。ありがとうございました。みなさまのご意見を基にした総括記事は、7月3日木曜に当サイトで公開する予定です。