先週末、島根で開催された「オープンソースカンファレンス2010島根」に参加した。 私は午前中のコマで「OSSを活用した実践的情報技術教育の実施と評価」と題して1時間ほど講演した。 内容は、大学や専門学校、社会人教育を対象とした情報技術教育においてソースコードベースでの議論が実践できるOSSの活用がいかに有効であるかを報告したもの。 当日の講演はUstreamで中継され、現在も録画が残されているので、興味がある方はそちらも参照してみてほしい。 58分と長いビデオで恐縮だが、お時間と興味のある方はご視聴下されば有難い。
OSSコミュニティに不足する人材の育成
私の講演に先んじて、韓国の이상묵(Yi, Sang-Mook)先生から韓国におけるOSS活動支援の報告があり、その中で、教育に関連する指摘もあった。 曰く、官が主導するOSS関連教育活動においては、技術的な部分はコミュニティに任せればよい。 OSSに関するマーケティング活動やコンサルティング活動の人材不足が急務であり、その点を政府が支援して人材育成すべきである、とのこと。 OSSをめぐるコミュニティ活動において、マーケターやコンサルタントが圧倒的に不足しているという点は紛れもない事実であり、まさしく仰る通りと肯かざるを得ない。
開発者が中心となる開発コミュニティのモチベーションは、自らが欲しいソフトウェアを創り出したいというものであり、他のユーザがどう利用するかは二の次である場合が多い。 サーバ分野で多数の成功事例があるOSSでありながら、クライアントアプリケーションでの成功事例はそれほど多くないことの本質的な理由はこの動機付けにある。 なぜならばサーバ分野では各種ソフトウェアのユーザは開発者自身あるいは開発者に非常に近い立場のエンジニアである一方で、クライアント分野はそうではないからだ。
一般の商用ソフトウェアとOSSの大きな違いがここにある。 当たり前だが、販売を前提としたパッケージソフトウェアは、開発に先んじて市場調査が行われる。 市場にニーズが無ければ開発は進められない。 また出来上がった製品を担ぐ営業部隊が存在し、時にはマスメディアも利用して大々的な宣伝活動が行われる。 販売により直接の利益を上げることが難しいOSSにおいては、そもそも収益を上げるビジネスモデルを考えることから始めなければならない。 ビジネスモデルのプランニングから具体的なマーケティング活動まで実践できる人材が求められているわけで、それは人材育成も急務であろうというわけだ。
コミュニティで技術者育成は本当に可能か
一方、技術者育成をコミュニティに任せきってよいのか? という部分は疑問が残る。 私の意見は、任せられるコミュニティもあるかもしれないが任せられないコミュニティもある、というものである。
件の「オープンソースカンファレンス(OSC)」自体、OSSに興味を持つエンジニアが積極的に参加して自ら技術的研鑽を積むよい機会だろう。 このようなイベントを全国を巡って定期的に開催されているスタッフの尽力には頭が下がる。 またOSCに限らず、IT勉強会カレンダーを見ると様々な勉強会開催予定がひしめき合っている。 このような活動を通じて技術者が育っていくだろうというアイデアは、楽観的ではあるが素晴らしい。
しかし、残念ながらOSSのコミュニティ全てがこのような健全な成長をしていないという点もまた事実である。 開発に関する議論やプロジェクトをよい方向に進めていこうという熱意が、いつの間にか感情論に発展し、とても技術者育成どころではない状態になっているコミュニティという事例もしばしば耳にする。 そのようなコミュニティで、古株が権威を振りかざして若手の意欲を削ぐような状況になっているケースも、残念なことに、実在する。
コミュニティでの議論は有意義だ。 しかし技術を高める方向での議論は歓迎だが、単なる人間関係の縺れでせっかくのコミュニティが台無しになってしまう例はよくある。 これは日本に限った話でもなく、開発の方向性を巡ってプロジェクトが分裂(これをフォークするという)することは、たまにある話。 人間関係でゴタゴタしているOSSコミュニティには諫言を差し上げたい。 せっかく魅力的なソフトウェアを核として集まった貴重な人材なのだから、つまらない政治ごっこに明け暮れず、技術者育成にも資する前向きな議論を深めてほしいところである。
集中的な高度IT教育との連携が有効
話題が少々脱線したので、IT技術者教育に議論を戻そう。 OSSのコミュニティ、とくに活発な開発コミュニティは技術者育成にとても効果的だろうという点には、私も同意する。 開発の最先端に触れることができ、何よりそこへ参加しようという意欲は学習にもプラスに働くはずだからである。
私たちは、ここ数年、OSSを活用したIT技術者教育に関する研究を進めてきた。 その一環として大学の先生と議論をする中で、「OSS? そんなの研究室の活動でずっと昔から使っているよ」というコメントをしばしば頂いている。 ただし、さらに一歩踏み込んでコミュニティ活動まで連携した研究活動としていたり、機能拡張やバグフィクスをコミュニティにフィードバックすることを教育の一環として扱っていたり、といった「コミュニティの持つ技術者育成能力」を効率的に活用した実践事例はまだ少ない(全く無いわけではない)。
学外の組織との連携、しかもコミュニティという何だかよく分からない集まりとの連携が難しいという事情も分からぬではないが、効果的なIT技術者教育方法の研究事例として、教育に関する研究テーマとしても面白いのではなかろうか。