社会・産業のデジタル変革

デジタル基盤センターのOSSコラム:オープンソースエコシステムをどのように変えていくか

公開日:2024年12月23日

独立行政法人情報処理推進機構(IPA)
デジタル基盤センター デジタルエンジニアリング部
ソフトウェアエンジニアリンググループ
今村 かずき

本コラムは、執筆者の見解に基づく内容であり、独立行政法人情報処理推進機構としての公式⾒解を示すものではありません。

目次

このコラムでお伝えしたいこと

エコシステムとは、生態系を意味する英語「ecosystem」に由来し、異なる要素やプレイヤーが相互に影響し合いながら、全体として調和を保つ仕組みを指します。
エコシステムに関わる要素が連携することで、効率的かつ持続可能な成長が実現できます。逆に一部のバランスが崩れると、全体に悪影響を及ぼす可能性があります。
持続可能なエコシステムではすべてのプレイヤー間で課題解決に向かう文化が育まれます。健全なエコシステムは単なる技術の発展に留まらず、社会的な価値の創出にも寄与します。

日本においてエコシステムの形成はすべてがすべてうまくいっているとは言えません。
ここではオープンソースのエコシステムについてどのような課題があるか、いくつか挙げてみましょう。

日本国内でのオープンソースエコシステムの課題
  • プレイヤー間の連携不足:企業間や官民連携が弱く、特定のプレイヤーに負荷が集中する
  • 短期的利益への偏重:長期的な視点での投資や協力体制の構築が苦手で、わかりやすい目先のメリットを優先しがち
  • 課題共有の不徹底:エコシステム内のプレイヤーが直面する課題をオープンに議論する文化が不足している
  • etc...

また、プレイヤーあるいはステークホルダーによって、そのエコシステムがうまくいっているのか否か、評価が分かれることもあると思います。そのような認識のギャップは人的・技術的・資金的なリソースの偏在によって起こることもあれば、政策が現場の実態に即していないことも原因になり得ます。

この問題に対処するためには、エコシステムの全体像の理解が必要です。
現在IPAのオープンソース推進チームでは日本国内を起点としたオープンソースエコシステムのリサーチと分析を進めています。
エコシステムが良い方向に回りだすにはどこに介入すると効果的なのか、レバレッジ・ポイント—“テコの原理”によって、小さい力で大きくシステムを変容させるポイント—を探し出すワークを行っているところです。

このコラムでは、私たちがオープンソース推進の活動の一端として行っているオープンソースエコシステムのリサーチの内容の一部をお伝えします。

なぜオープンソースのコミュニティは持続が難しいのか

特に公共分野のオープンソースプロジェクトではたびたび「コミュニティが持続しない」ことが課題としてあがります。
そこで、日本国内では何が問題になっているのかを推察しました。おおむね以下のようなことが問題なのだと思います。

日本国内でのオープンソースのコミュニティが持続しない理由(仮説)
  • オープンソースコミュニティの形成が十分に行われておらず、協力やリソースの共有、相互サポートが不足する
  • 重複調達・重複開発によりコストや開発期間、人的リソースの無駄が発生し、慢性的なリソース不足を引き起こす
  • 発注側がOSSプロジェクトの開始後にそのメンテナンスやサポートから距離を置いてしまう

これらは総じて、オープンソースに対する理解不足のために非効率な実践や機会損失が生じてしまい、その結果プロジェクトの持続可能性に問題が生じているのでは、というのが私たちオープンソース推進チームの仮説です。

オープンソースプロジェクトとコミュニティが持続する条件とは

オープンソースコミュニティが持続するために、そもそも普及するOSS、人気のあるOSSとはどんな特徴があるのか?という質問に対して、今のところ特効薬的な回答は見つけられていません。
一方で、普及するOSSのグッドプラクティスから導出されたポイントは見えてきました。普及しないOSSのプロジェクトにはおそらく以下のいずれかが欠けているのだと思います。

  1. 使う人がいる
  2. ユースケースがある
  3. ファンがつく見込みがある

とはいえ、これも今はあくまで仮説です。

なぜ失敗してしまうのか

開発者/作り手としては最初に「このアプリ/モジュール/機能を作りたい!」という意志があったはずで、その時点で自分自身が最初のユーザーです。「何のために作りたいのか」という意図があれば、ユースケースを挙げることも難しいことではないでしょう。
あとは、自分以外の人々に愛着を持って使ってもらえるか、です。愛着を持ってくれたユーザーは「こんな機能が追加されると良さそうだな」とか「ここは不具合みたいだから、私がソースコードを修正してあげよう!」とか「この操作はわかりにくいから、説明書を作ったら他のユーザーの役に立ちそう!」と思うはずです。それがソースコードの改善提案につながり、オープンソースのコミュニティが活性化していきます。
愛着を持ってくれるユーザーが現れないときは、ユースケースを十分に示せていないかもしれないですし、そもそも作り手自身が意志を持って作っていない可能性もあります。
ソースコードをオープンソース化する前に、考えること、準備することはたくさんあります。その計画や戦略がないままではオープンソースプロジェクトは失敗に終わるでしょう。

多様な有識者たちとオープンソース推進を検討

IPAでは過去にもオープンソース推進の事業を行っていました。2006年にIPA内に「オープンソースソフトウェア・センター(OSSセンター)」を設立し、普及促進、基盤整備、情報の集約と発信を3本柱とする活動を開始しました。続けてOSS情報データベース「OSS iPedia」を開設しましたが、その7年後、事業終了とともにサイトをクローズしました。OSS iPediaでは初心者向けの解説記事や導入事例を掲載するなどナレッジベースを提供していました。今となっては当時の貴重なデジタル資産へアクセスできなくなったことが惜しまれます。

今年度のオープンソース推進チームでは多様な有識者のみなさんにご協力いただいて検討の場を重ねています。オープンソースコミュニティ、ビジネス、行政システム構築、リサーチ、政策といった多方面からの観点で、オープンソースエコシステムが持続するためにはどうすればいいかを議論しています。

エコシステムをどうやって変えていくのか

毎度の会議でオープンソースについて議論していると、話題がどんどん発散していってしまいます。オープンソースにはいろいろな側面があることがうかがえます。
ここでどのような側面があるか、ざっと挙げてみます。

  • コミュニティ
  • 技術
  • ビジネス/経済
  • 公共/政策
  • カルチャー/社会
  • 学術/研究
  • データ提供
  • 多言語
  • 標準化
  • etc...

これらすべての側面をカバーするのはたいへんです。とはいえ、この中から取捨選択するのは簡単なことではありません。
なので、行き当たりばったりの考えではダメなのです。
IPAがオープンソースエコシステムを変えるためにどんな施策を打つべきか、今は多方面からの意見を聞きながら、腰を据えて検討をしているところです。

リサーチ・クエスチョン(問い)を明らかにする

「なぜオープンソースの推進が必要なのか?」「オープンソースを推進する目的は何か?」という問いは繰り返し自分自身に課しています。
オープンソースを推進した結果、社会がどのような状態になっていることを目指すのか?
ただ、世の中の森羅万象はどこまでもつながっているので、この問いを突き詰めると行きつく先は“世界平和”ということになるのでしょう。
どこまでも連続している世界で、私たちが対象とすべきスコープの“境界”はどこなのか、それを見定める作業を日々やっています。
今のところは問いとして「エコシステムを変えるには、どんなプレイヤーにどんな行動変容をもたらせばよいのか?」というのを設定しています。
発注側が変われば、本当に状況は良い方向に変わるのだろうか?おそらくプレイヤー個々の問題ではなくシステムの構造的問題であるのだろうと思います。

そこで今はエコシステムを変えるために必要なドライバーを明らかにするためのリサーチを進めています。
それにはまず、対象のエコシステムの全体像を把握しなければなりません。エコシステムの全体像、すなわち「このシステムにはどんな要素が存在し、それらは互いにどのようにつながっているのか?」「システムの内部にはどんなストーリーがあって、どんな問題を抱えているのか?」を知る必要があります。
このような現実の複雑な社会の構造を把握するにはシステム思考が役立ちます。システムを知ることができたら、レバレッジ・ポイントを探し出し、介入策を考えます。
システムの全体像を描きだす前に、システムに関わっているステークホルダーについて知っておくことが重要です。
あるステークホルダーにとっては良いエコシステムに見えていても、他のステークホルダーは不満に感じている、ということはよくある話です。
次に紹介する「アクターズマップ」というマッピングの手法を使うと、ステークホルダー同士の対立や、相容れない思惑などが浮かび上がってきます。

システム・オブ・システムズ(System of Systems) として現実の社会を捉える

オープンソースのエコシステムの構造を描くために、デザイン思考にシステム思考を掛け合わせた「システミックデザイン」の手法を取り入れ、サービスデザインの専門家も加えてチームでワークを進めています。

ここでワークのひとつ「アクターズマップ」をご紹介したいと思います。アクターズマップとは、システムを構成するアクター(組織、個人、人間、人間以外のエージェント)を洗い出して、その関係性を描いていくものです。
現在はGEO/GISのオープンソースエコシステムのマッピングに取り組んでいます。アクターを洗い出してみると、実に多様なアクターの存在が浮かび上がってきました。大企業、省庁や都道府県、コアコントリビューター、スタートアップやベンチャー、基礎自治体、ビギナーユーザーといった様々なアクターの存在がわかりました。
しかしながら、現時点では潜在的なイシューにはたどり着けていません。今後もリサーチを続けていく予定です。

  • 現在作業中のGEO/GISのオープンソースエコシステムのアクターズマップ(付箋の内容は固有名詞を含むため秘匿化)

レバレッジ・ポイントの探索と介入策の検討へ

オープンソースエコシステムについてリサーチを進めていくと、その構造がいかに複雑で、多くのパラメーターを持っているのかがわかってきました。
このエコシステムが良い方向に変わるためのレバレッジ・ポイントはどこにあるのか?介入策は何か?
この実践のためには、エコシステムに関わるステークホルダーたちと一緒に「目指したい未来社会のビジョン」を設定し、そのゴールにたどり着くためには何が変化する必要があるのかをバックキャスティングで探っていくプロセスが重要になります。
そして、システムの全体図の中には私たちIPAがアクターとして入っているべきです。大きなシステムを変えていくためには、まず自分が変わることが大事です。
どこまでもつながっている世界の中で、私たちが変えていきたいシステムの境界を見定める。そしてその中にいる自分がまず小さくでも行動する。そうすれば、変化が周囲に伝わっていって、やがて大きな変容につながっていくはずです。境界の外側の他のシステムともつながって、さらに大きく変容することも可能になるでしょう。

歴史的にみても数々のイノベーションに共通しているのは、「自分の身の回りのことを変える」ことが起点なのだろうと思います。
手元にある「自分ごと」から「なぜこれをやるのか?」「この価値は何か?」「これをやることにどんな意味があるのか?」を自分自身に繰り返し問い続けていくと、身近なところにソリューションが転がっていることに気づきます。それらを組み合わせて作った新たなソリューションは、自分のために作ったものながら、他者を惹きつける魅力のあるものになっていると思います。そして、それがまた他の誰かの「自分ごと」として受容されていく、この現象をイノベーションと呼ぶのではないでしょうか。

  • イノベーションとは イメージ
    イノベーションとは、きっとこういうこと

おわりに 「推進」とは

IPAの「P」は「Promotion」の頭文字であることを私は常に意識するようにしています。
Promotion、推進とはどういうことか。おそらくそれには2段階あるのだろうと思っています。

  • 第1段階:関心のある人たちに確実に届ける
  • 第2段階:困っている人たちに届ける

いま困っている人たちというのは、私たちが本来届けるべきターゲットなのだと思います。ただし、いきなりそこへ届けるのはとても難しいです。
なので、まずは関心のある人たちに確実に届けなければなりません。
しかしながら、現時点で私たちオープンソース推進チームの活動は、「できる人に届いている」状態にまでしか達していません。
推進を着実に進めるためには多様なアクター/ステークホルダーとの共働が必要です。そのためにも、私たちはしっかりと土台を作っていく活動をしていこうと思います。

更新履歴

  • 2024年12月23日

    公開