ご利用いただくには、購読のお手続きが必要です。このサイトは朝日新聞デジタルの一部です。朝日新聞デジタルを有料(フルプラン)購読中の方は、ログインするだけでお読みいただけます。公共コンサルティング事業部へ出向。著書に「実践!企業のためのマイナンバー取扱実務」(日本法令、2015年3月)がある。前回は、オープンガバメントとソーシャルコーディングの考え方に基づくオープンコーディングの基本理念と原則について提案を行った。現行の法律にオープンコーディング規約を適用した、具体的な試行例も提示した。これで、オープンガバメントの「透明性」と「参加」についてはある程度のイメージを得られたが、3つめの「協働」については不十分だと指摘を受けることだろう。本稿ではこの連載の最終回として、立法過程におけるITを活用した「協働」の可能性について取り上げたい。「協働」の方法については法律に留まるものではなく、国民と行政が協働して文書を扱う場合など、公的な分野において広く有効なものとなるだろう。法改正の現状と総務省のe-LAWSオープンコーディングの基本理念の3番目である協働について、前回の原稿で「法律の立法過程における協働について、すべての人々や機械が協働できるよう、パブリックコメントとその回答だけでなく、条文の修正提案について議論できるよう、環境を整備しなければならない」と提示した。オープンコーディングの原則の5として「法令文書の制定・改正について、国民が参加できる協働立法作業環境を提供すること」を掲げた。本稿では、この協働をどのように実現していくかについて考えてみたい。通常有識者から構成される検討委員会が設置され、要綱や大綱をまとめて所管の省庁が法案の作成に入る。要綱案や大綱案が公表され、国民の意見を求めることもあるが、一般的には新しい法案の条文作成そのものに国民が参加することは難しいだろう。現実的に、すでに運用されている法律の改正について、改正の主旨に従って国民が協働して条文の修正・追加・削除などの議論をしていくことについて考えていくことにする。現状の法改正について確認するが、第2回で紹介したように内閣法制局では法令審査支援システムを稼働させている。法制関係の事務を自動化するe-LAWSというシステムを開発中である。開発のきっかけは、残業をなくして女性が働けるよう、法制執務業務を効率化すべきというワークライフバランスの要請だったという。現在開発途上にあり、2016年10月の本格運用を目指している。e-LAWSの概要を図表1に示す。法令データベースから改正対象法令を特定し、新旧対照表形式(新旧とも同じ内容)でダウンロードする。改正箇所に傍線を引き、新の部分に改正内容を入力して、新旧対照表を作成する。その新旧対照表を改め文作成補助システムにアップロードして、自動的に改め文を作成するというものである。e-LAWSはここまでの機能であるが、この後に改め文を内閣法制局の法令審査支援システムに送り込む。法令審査支援システムは、改め文の形式チェックや溶け込みチェック等を行い、溶け込み後の新条文を作成する。新旧対照表とチェックするという、いわばe-LAWSと法令審査支援システムが相互にチェックし、法令文書の誤りを検出する仕組みとなっている。完全な自動化はできず、表形式などの処理の課題を残しているという。このように法改正の作業を効率化するためのIT活用に取組んでいるものの、あくまでも政府内部での効率化が目的であり、法改正のプロセス自体を一般国民に開放しようという方向性までは持っていない。ソーシャルコーディングとバージョン管理システム第3回ではプログラム開発を民主化したと評価されている「ソーシャルコーディング」の考え方について触れたが、それについてもう少し掘り下げてみよう。ソフトウェアの開発においてはコードの修正が宿命とも言え、バグの修正だけでなく、機能追加によるコードの修正やソフト環境の変更によるコードの修正などもたびたび発生する。複数のプログラマが同じモジュールを修正することもあり、少人数のプロジェクトであれば相互のコミュニケーションで調整できるが、大規模な開発になるとライブラリアンを配置して、ライブラリの管理やモジュールの払出し管理などを行わなければならない。オープンソースの世界では、世界中の誰もがソースコードを開発して公開するだけでなく、誰もが自由に変更することができる。そこにおける相互の変更の整合性を自動的にコントロールするソフトがバージョン管理システムである。このシステムは、ソースコードのバージョン管理だけでなく、誰もが自由にソースコードを改変でき、さらにオリジナル開発者と改変するプログラマがコミュニケーションできる機能も持っている。System)やSubversionから、分散型システムのGitへと主流が変わりつつある。集中型システムは、アクセス集中によるサーバー接続不可や、サーバーの故障等によるサービス一斉停止などが起きた場合に、不都合が大きいからだという。Gitについて簡単に解説しておこう。Gitとは、プログラムや文書といった資産に対して、「誰が」、「いつ」、「何を変更したか」といった情報を記録し、過去のある時点の状態を復元したり、変更内容の差分を表示できるシステムである。Linuxの開発時にLinuxのソースコードを効果的に管理するために開発された、比較的新しいバージョン管理システムである。Linuxの開発では非常に多くのプログラムファイルを扱うため、正確かつ高速にファイルの変更履歴管理が行えるよう工夫されている。Gitの仕組みを利用して、世界中の人々が自分の作品(プログラムコードやデザインデータ等)を保存、公開することができるようにしたWebサービスの名称がGitHubである。GitHub社が運営しており、個人・企業問わず無料で利用できる代わりに、登録した資産については全て公開される。有料サービスを選択すれば、限定されたユーザだけで、プライベートに資産を管理することができる。一般的に、法律の条文や会社の規程など、変更を加えながら長期間利用する文書の変更履歴を管理しようとすると、簡単な方法として「ファイル名で管理」する。変更する前にファイルをコピーし、ファイル名に日付や変更者の名前等を付け、いつ、誰が変更したファイルであるかをわかるようにしておく。この方法では、ファイル名の付与規則を組織で共有し順守しなければならない。変更箇所を確認するためには、変更前のファイルを探し、変更後のファイルと目視で比較しなければならず、大きな労力がかかると同時に、誤りの発生も多くなる。組織内で複数名が同時に変更を行う場合、先に変更した人の変更内容が消える(上書きされてしまう)というリスクも発生する。バージョン管理システムは、このような問題解決のために開発された電子ファイルの変更履歴管理システムといえる。バージョン管理システムの代表的な機能としては、最新原本の取得、原本への変更の反映、最新原本の維持と変更履歴の管理、変更作業における競合の解決、誤った変更の修復がある。Git/GitHubによる文書の変更と協働の可能性このGit/GitHubを使って文書の変更作業を行い、協働の可能性を探ってみよう。バージョン管理システムはプログラマが利用するツールであり、コマンドベースでコントロールするものであった。Interface)ツールが出現し、コマンドを使わなくても画面上の操作で使えるようになっている。Windowsがある。基本的な操作を図表3で示す。最新の原本は、リモートリポジトリという共有書棚で管理されている。これを変更する場合、原本と同じものを自分専用書棚であるローカルリポジトリに複写(クローン)する。Aさんはこのローカルリポジトリを使って文書の変更を行うが、変更の作業中においてはローカルリポジトリの写本は変更されない。変更完了(コミット)を宣言して、ローカルリポジトリの写本の内容が変更される。ローカルリポジトリにおいて変更作業がすべて完了したら、その内容をリモートリポジトリへ反映(プッシュ)することができる。このとき、すでにBさんがリモートリポジトリの原本を変更していると「競合」が発生し、その状況を解決しなければ反映することができない。これが簡単な操作の仕組みだが、GitHubになるとGitHubのWebサイトに変更グループごとのリモートリポジトリが設置され、もっと大規模な組織による変更作業が可能となる。GitがWordの文書比較機能を呼び出して表示)であるが、右上の枠内には旧文書が表示され、右下の枠内には新文書が表示され、中央に比較した結果が表示される。表形式であっても、どの部分が変更されたかが明確に示される。このようにツールの有効性は確認できたが、課題も明らかとなってきた。GUIツールが提供されているとはいえ、一般人には各操作の概念理解が難しく、使いづらいことがあげられる。操作中にエラーなどが発生した場合、GitHubに詳しい管理者が必要となる。Pluginを使うことでWord、Excel、Powerpointなどのファイルも扱うことができるが、変更がファイル単位になるため部分的な修正でも競合が発生してしまう。TEXTファイルを使えばそのような問題は解消できるが、法令文書には表形式も含まれるため、さらなる機能の向上が望まれる。Git/GitHubの特徴として、Linux開発用のため大規模なプログラマ集団の管理や多層管理が可能となっており、修正ミスが発生しても拡大させずに復元できるといった豊富な機能を持っている。そのため、使いこなすには管理者も利用者もかなりのスキルを必要とする。一般的な使い方をするためには、管理者が機能を絞り込み、運用ルールを決めたうえで使わせる必要がある。このように、バージョン管理システムはプログラマ用ツールから汎用ツールへ進化中であるといえ、まだまだ課題が残っている。バージョン管理システムの機能をそぎ落とし、一般的な概念で文書が扱えるツールを開発すれば、一般人でも十分使いこなすことができるだろう。法令文書の条文だけでなく、計画書やガイドラインの変更など、公共分野における協働作業環境として、大きな可能性を持っている。おわりに日本においても、GitHubを公開用ツールとして使う事例がでてきている。Information)などの様々な分野に適用されつつある。文書やデータなど、デジタルな資源をオープンに互恵の精神で使うというソーシャルコーディングの考え方は、オープンソースのプログラムに限らず、公的部門のデジタル資源にも広がっていくだろう。新たなツールを用いて、デジタルな公共資源をより多くの人々が共有できるようになれば、我々の世界を現在よりもより民主的な世界へと進化させていくことができる。一方で、日本の電子政府の現状を見る限り、立法を含めまだまだ「紙文化」から脱却できていない。法改正は改め文と新旧対照表で行われるが、機能的には新旧対照表だけで十分である。改め文を使っているのは、新旧対照表だと紙が膨大な量になるという理由からだ。紙では膨大な量でも、電子データならばメモリチップに入る。実は、苦労して改め文を作る必要はないのである。法令提供データベースは実質的に原本の役割を果たしているが、法的には原本とみなされず、曖昧な状態に置かれたままだ。法令文書の書式変更、横書きや西暦の採用もいつになるかわからない。このような状況のままで、我が国は民主的な国家であるといえるのだろうか。ITという技術の進展は、国のあり方自体を問うまでになっている。システムエンジニアとして、自治体向け住民情報システムの開発作業に従事。システムなどの構築に関わる。中心にコンサルティング活動を実施。中心に研究活動に従事。