Slide 1

Slide 1 text

一般社団法人コード・フォー・ジャパン 関 治之 オープンソースソフトウェ アとは何か ~ 東京都コロナサイト開発の事例 ~ 1

Slide 2

Slide 2 text

関 治之 東京都 DXフェロー 浜松市フェロー 西粟倉村フェロー 政府CIO補佐官

Slide 3

Slide 3 text

ともに考え、ともにつくる。 3

Slide 4

Slide 4 text

4 世界26カ国で「Code for xx」が活動

Slide 5

Slide 5 text

5 全国、約80地域で「Code for xx」が活動

Slide 6

Slide 6 text

6 各地で自らの地域を良くするための活動

Slide 7

Slide 7 text

コロナ禍で生まれた様々なアクティビティ ダッシュボード 検索サイト アイデア募集 NPO支援 プロトタイピング

Slide 8

Slide 8 text

11月30日に東京都が国に提出した要望

Slide 9

Slide 9 text

オープンソースとは何か? システムを構築するためのソースコードを、再利用が可能な形で オープンに公開すること ● 商用、非商用の目的を問わず利用/修正/頒布することを許す ● ライセンス条件が付与されており、条件に従えば、著作者の 許可を取らなくても利用できる ○ クレジット表記をする、派生物も同じ条件が摘要される、などの条件がある

Slide 10

Slide 10 text

みなさんが使っている製品の多くは、多くのオープンソースソフト ウェアに依存している これもオープンソース Android phone ウェブサーバー ウェブブラウザ SSL通信

Slide 11

Slide 11 text

東京都の新型コロナウイルスサイト 金賞

Slide 12

Slide 12 text

GitHub というサイトでオープンソース化

Slide 13

Slide 13 text

GitHub とは? ソースコード等のホスティング環境。 複数人でサイトを更新しても、適切にバー ジョンが管理できる他、課題管理やリリース 管理の機能もある。 世界中に4,000万を超えるユーザがいる。 オープンソースに限らず、様々なプロジェクト で利用されている 世界標準のソフトウェア開発プラットフォー ム。 無料で使える機能も多い。 ソースコード 取得 ソースコード ローカルで開 発・バージョン 管理 ソースコード ローカルで開 発・バージョン 管理 更新 取得 更新 バージョン管理 開発者 開発者

Slide 14

Slide 14 text

東京都のサイト公開に対し、世界中から貢献があった 3週間の間に 224 名が改善に協力 750 件の提案 671 件が取り入れられる

Slide 15

Slide 15 text

No content

Slide 16

Slide 16 text

なぜこれだけ多くの人が共創できたのか?

Slide 17

Slide 17 text

海外でもシビックテックが活発に https://note.com/hal_sk/n/nd5d71fa9ff5d 台湾、韓国ではマスク在庫 APIを公開、多くの民間アプリが生まれた https://www.reallygoodux.io/blog/korean-mobile-apps-coronavirus-covid-19

Slide 18

Slide 18 text

行政は、オープンソースに投資すべき https://note.com/hal_sk/n/nc9df8b8fd765 1. 進めたい政策の理解や 発展につながる 2. 自治体ごとに同じような システムを個別に作らな くて良くなる 3. 社会的な知的資本の蓄 積に繋がる なぜなら・・・

Slide 19

Slide 19 text

1.進めたい政策の理解や発展につながる ● ソースコードを共有するというこ とは、ソリューションの設計図を 共有すること。 ● ソースコードに対する要望や改 善は、課題や期待する結果に対 するフィードバックでもある。 ● 別の用途に使われた場合でも、 新たな発展系を学べる 課題 ソリュー ション 期待する 結果 ソース コード 要望・改善・ フィードバッ ク ソース コード 別の用途に利用 別の解法やより良い やり方の発見

Slide 20

Slide 20 text

● 東京都コロナ対策サイト の GitHub を、アクセシビ リティで検索した結果は、 20件 ● 業界のプロフェッショナル による意見交換が多い ● これを読むだけで、サイト が供えるべきアクセシビリ ティについて相当詳しくな れる https://github.com/tokyo-metropolitan-gov/covid19/issues? q=is%3Aissue+is%3Aclosed+%E3%82%A2%E3%82%AF %E3%82%BB%E3%82%B7%E3%83%93%E3%83%AA% E3%83%86%E3%82%A3

Slide 21

Slide 21 text

No content

Slide 22

Slide 22 text

東京都の定義書をベースに、政府が標準を作成

Slide 23

Slide 23 text

2.同じようなシステムを個別に作らなくて良くなる 今回、70以上の自治体でこのサイトが活用 されたが、いつものように各自治体ごとに仕 様書から作っていたら、どれだけの費用と 時間、人手がかかっただろうか?

Slide 24

Slide 24 text

3.社会的な知的資本の蓄積に繋がる コロナサイトリリース後、Code for Japan の Slack (チャットグ ループ)参加者は8倍を超える 4,300人に (コロナ対応にフォーカスした チャンネルは1429人)

Slide 25

Slide 25 text

東京都サイトでは、様々な情報が瞬時にまとめられた

Slide 26

Slide 26 text

技術的にも興味深い記事がぞくぞく https://employment.en-japan.com/engineerhub/entry/2020/05/19/103000 https://visual-shift.jp/19350/ 東京都の新型コロナ対策サイトはなぜ NuxtJSだったの か? ─ シビックテックのベストプラクティス オープンソースで作る東京都新型コロナウイルス対策サイ ト。透明性が求められるサイト構築の舞台裏とは

Slide 27

Slide 27 text

10代、20代が大活躍中! http://ccc2020.code4japan.org/

Slide 28

Slide 28 text

https://note.com/hal_sk/n/n86dd3c808b0d 高校生、大学生がプロジェクトをリードし始めている

Slide 29

Slide 29 text

QoS を上げるには、こまめな改善が必要 課題の発見 システム設計 開発 実装 リリース 状況確認 ● 現代のシステム開発は、常に改善し続ける必要がある ● リリースしてからの改善プロセスが重要 ● オープンな開発プロセスをうまく使うことで、自分たちでソフ トウェア品質をコントロールできる ● 他の組織とオープンに学ぶことができる 反復型開発

Slide 30

Slide 30 text

行政機関でのオープンソース活 用事例

Slide 31

Slide 31 text

https://www.businessinsider.jp/post-212276

Slide 32

Slide 32 text

国土地理院はオープンソースを活用している GitHubリポジトリも活用 地理院パートナーネットワークとい うコミュニティもある

Slide 33

Slide 33 text

https://geek-out.jp/column/entry/2018/07/05/110000/

Slide 34

Slide 34 text

オープンデータカタログ CKAN もオープンソース

Slide 35

Slide 35 text

スマートシティで使われる基盤FIW AREもオープンソース FIW ARE 複数都市での利用前提の、 EU SynchroniCity

Slide 36

Slide 36 text

g overnm ent.g ithub.com には大量の海外事例が

Slide 37

Slide 37 text

持続可能な開発をサポート する幅広い目的のために、 地理空間情報をよりアクセ スしやすく相互運用できる ようにすることを目的として いる。 EUの資金で各国が調達す るソフトウェアは、オープン ソース化され共有されてい る EUのINSPIREイニシアチブ

Slide 38

Slide 38 text

https://assets.documentcloud.org/documents/3008871/M-16-21.pdf 連邦政府機関が業務システムを 新たに開発する際は、まず他機 関が公開したOSSをチェックし、 使えるものは再利用する。他に 存在しないソフトだけを新規に開 発し、それもOSSとして公開す る。ホワイトハウスは今後3年間 に開発するソフトの20%をOSSと する目標を掲げる。国家の安全 保障に関連するシステムなどは OSSの対象外とする。 米国連邦政府のオープンソースポリシー

Slide 39

Slide 39 text

GSA (U.S. General Services Adm inistration) のCode.g ov Vision: コミュニティリーダーとしてコード の再利用とオープンソース開発 を推進し、コードの品質を向上さ せながらコードの使用量を削減 する M ission: 私たちの使命は、コードの再利 用を促進し、オープンソースコ ミュニティを教育して結びつける ことで、政府のパートナーや開 発者がコストを削減し、品質を 向上させることができるようにす ることです。

Slide 40

Slide 40 text

英国 GDS (Governm ent Dig ital Service)のサービス標準 1. 利用者とニーズを理解する 2. 利用者のために全体の問題を解決する 3. すべてのチャネルで統合された経験を提供す る 4. シンプルに使えるサービスを作る 5. 誰もがサービスを利用できるようにする 6. 多職種のチームを持つ 7. アジャイルな働き方をする 8. 反復し、頻繁に改善する 9. 利用者のプライバシーを守る安全なサービス を作る 10. .成功がどのようなものであるかを定義し、パ フォーマンスデータを公開する 11. 適切なツールや技術を選ぶ 12. 新規のソースコードをオープンにする 13. オープンな標準や共通コンポーネントやパター ンの利用と貢献 14. 信頼できるサービスを運営する https://www.gov.uk/service-manual/service-standard

Slide 41

Slide 41 text

[今後やるべきこと1] 反復型開発のワークフロー定義 ● GitHub を使った開発マネジメントができるようにす る ○ 今後入ってくるデジタル人材の必須の武器に ● GitHub 上の組織アカウントの運用ルールの策定 ● 反復型開発を可能とするワークフローを組み立てる

Slide 42

Slide 42 text

[今後やるべきこと2] システム調達要件に、OSSでの公開を入れる ● OSSで公開する前提にすることで、可読性が高い ソースコードが提供される ● 技術力のあるベンダーを選定できる ● 他の自治体にも広がれば、より品質が向上する可能 性がある ● 不必要なベンダーロックインを排除できる ● 知的資産への投資になる

Slide 43

Slide 43 text

1)[調達] 公共調達の仕組みは、オープンソースソフトウェアの開発にあまり向いていない。 ● リポジトリの公開や、そのメンテナンスコストを誰が持つのか? ● OSSで公開したい時に、どのように調達仕様書をかけばよいのかのノウハウが各自治体に無い ● 対象ドメインがニッチすぎる場合、扱えるベンダーが少なすぎる場合は調達が不調になったり、品質が低 くなる可能性がある ○ そもそもGitHubくらい使える企業とやりとりすべき。 ○ いないのであれば、入札へ参加する企業を増やす努力が必要 2)権利処理 ● [公有財産問題]税金を使って開発したソフトウェアを、なぜ他市に無料で提供するのか?と言われる ○ 無料で公開したことによって実際に機会損失が発生するケースはほぼ無い ○ 東京都が先例を示したことにより、説明はしやすくなった ● ベンダーがもともと持っている知的財産の場合、オープンにさせるのは難しさもある。 ○ 「今回の委託費用で支払った部分は」という条件にする ○ SaaS の利用はオープンソース対象外とする [オープン開発の課題]

Slide 44

Slide 44 text

[オープン開発の課題2] 3)運用(メンテナンス) ● Pull Request (一般からの改善報告)が来た際に誰がどう対応すればよいのか? ○ そこも含めて運用委託業者に依頼(現在の東京都コロナサイトのやりかた) ○ 大阪市のように、Pull Requestの機能自体無効にするという手もある 4)責任 ● オープンソースを使った場合、誰が責任を持つのか? ○ 問題の在り方としては、パブリッククラウド利用の場合の SLA問題と似ている ○ そもそも、内部的にOSSを使っていないシステムというのはあまり無い ○ 普通に考えれば、ベンダーが吸収すべき(オープンソースなのだから、直そうと思えば直せる はず。そのリスクを織り込んだ見積を作れば良い)

Slide 45

Slide 45 text

まとめ ● 行政システムのオープンソース利用 /共有は、英国、米国、EUではあたりまえ ● ソースコードをオープンにすることで、日本全国の知的資本が向上する ● オープンソースをデフォルトにすることで、ベンダーロックの排除と、納入コードの品質向上に繋がる ● 海外のように、GitHub で、ソースコードを公開すべし ● ただし、本当に活用するには、「反復開発」というワークフローに慣れなくてはいけない ● できない理由があるとしたら何か?何故か? ○ セキュリティが心配→世の中の多くのサービスもオープンソースになっているが、即セキュリティ問 題となるわけではない。 ○ 企業が反対する→そりゃ、企業に聞いたらそういうところもあるでしょう。でも、発注するのはこちら だし、もっと良いベンダーと付き合えるチャンスかも ○ 品質が心配→「オープンソースだから質が悪い」というのは大きな勘違い。みなさんが使っている サービスの多くはオープンソースソフトウェアで成り立っています。(もちろん、中には品質の悪いも のもありますが、それはクローズドソースでも同様)