Hack For Japan のプロジェクトとして、東日本大震災 通知・事務連絡集 というサイトを構築・運営されている高橋さんから、プロジェクトの立ち上げの模様と現状について寄稿いただきましたので掲載させていただきます。
www.sinsailaw.infoが出来るまで
1. 弁護士有志の方々の想いと活動
3月11日の東日本大震災後、弁護士有志の方々は被災地の直接支援も含めて様々な活動をされてきました。その活動の中で、地方自治体が住民の方からの相談を受ける際に、中央省庁からの通常の法令やガイドラインを参考に対応をされていたのですが、震災後に各省庁から様々な震災対応の法令、ガイドラインが発行されていることが周知されていない状況がありました。各省庁のホームページでは震災対応の法令やガイドラインの情報は発信されているのですが、情報は省庁単位に別々のページで公開され、ある特定のトピックについて省庁をまたがった閲覧や情報の検索が出来ない状況でした。
この問題を解決するために弁護士有志の方々で、各省庁のWebサイトを見て、省庁から発信されている法令、通知などの情報をExcelスプレッドシートにまとめる作業が始まりました。ただ、発表をExcelに書きこむだけではなく、その内容のサマリーを識者の観点でワンポイント解説として加えました。一見難解な省庁の発表内容もワンポイント解説を見ることで内容が理解しやすくなります。
2. IT技術者と弁護士有志の方々の出会いとサイト構築
Excelスプレッドシートにまとめた情報は600を越え、この内容を情報を必要としている人に届ける方法についての検討が行われました。数百もの情報をWebページにして公開するのは手作業では膨大な手間と時間がかかるため、当初はExcelファイルをそのままWebサイトに貼りつけてダウンロードしてもらったら良いのではないかという考えもあったそうです。ですが、Excelをサイトに貼りつけただけでは参照性も悪いですし、検索エンジン経由の検索も難しくなります。
そこで、弁護士有志の代表の方は、Webサイトの作成についてYahoo! JAPANの方に相談しました。Yahoo! JAPANの方はHack for Japanの活動を知っておられたので、スタッフの関さんを紹介してくれ、そこからHack for Japanに相談が来ました。
Hack for Japanの関さんと大垣さんで、早速スプレッドシートからWebサイトを生成する方式の検討が始まりました。ExcelをGoogle Docsにアップロードし、Google DocsのJava Script APIとGoogle Sites APIを用いることで、スプレッドシートの各セルを読み込んで、Google Sites上のページコンテンツに変換することが可能なことが分かりました。この時、プロトタイプは2日程度で完成したようです。
3. サイト構築と技術的な課題
スプレッドシートのセルを読み込みGoogle Sitesのページを生成するプロトタイプが完成し、その後の作業を私が引き継ぎました。プロトタイプの段階ではAPIを活用することでスムーズにページが生成出来ると考えていましたが、実際にサイト全体を整備する中で幾つかの技術的課題に直面しました。幾つかの課題は技術的に解決出来ましたが、リリースまでの時間と使っている技術の制約で解決出来ないままリリースに至ったものもあります。
3-1. Google Apps Scriptではあまり長時間かかる処理を実行出来ない
Google Docsのスプレッドシートを数百行処理してHTMLを生成しようとするとスクリプトが途中でハングしてしまうことが、開発中に分かりました。Google社に問題として報告して解決して頂く方法もありましたが、サイトの早期リリースを優先し、データを100行単位で処理するようにスクリプトを修正しました。あまり格好良くない解決策ですが、最終的なサイトの内容には影響させないで済みました。
3-2. Google SitesのSub Page Listは表示順序をカスタマイズ出来ない
http://www.sinsailaw.info/mhlw のような省庁別の通知・事務連絡リストはGoogle SitesのSub Page Listという機能を使っています。単純で使い易い機能で、フォルダとコンテンツを階層構造で配置するだけで下位階層のコンテンツをフォルダ別に並べて、アコーディオンのオープン・クローズ機能も自動で付けてくれます。ただ、この機能を使った場合にはリストの表示はページのタイトルで自動的にソートされてしまいます。弁護士有志の方々からの要望としては、日付順にコンテンツが並んでいるということだったので、各コンテンツのタイトルには通知・事務連絡の発表日付をyyyy/MM/dd形式で追加することで日付順に並べるようにしました。
3-3. カスタム検索の実装
Google Sitesにはサイト上を任意の検索キーワードで検索する機能が標準であります。弁護士有志の方からはサイト検索に加えて、任意の省庁名と日付範囲で通知・事務連絡を検索出来る機能が要望されていましたが、これはGoogle Sites外(例えばGoogle App Engine)でのアプリケーション開発が必要になり、時間がかかるということで、今回のリリースでは見送っています。実際にはカスタム検索が無くてもある程度サイト検索で検索結果の絞り込みが出来ますので、利用上の不満にはなっていないと判断しています。
3-4. Google Sites上のコンテンツのGoogle検索エンジンへの登録
www.sinsailaw.infoをWebマスターツールに登録した後に、サイト上のコンテンツをテスト的に削除、変更、追加を繰り返していたところ、検索エンジン上に登録されているコンテンツと実際のサイト上のコンテンツに差異が出来てしまい、検索されても表示出来ないという状況が発生してしまいました。結果的には、検索エンジンのクローリングによってサイトの最新の情報をインデックス化するのを待つことで状況は解消されましたが、この点については私が検索エンジンのクローリングのメカニズムを良く理解していなかったための誤算でした。リリース後はリンクやURLに影響するページ名の変更などはおおがかりに実施しないように気をつけています。
4. 当サイトの意義と利用状況
おかげさまで、9/16にYahoo! JAPAN様の震災情報サイトからリンクを頂き(http://info.shinsai.yahoo.co.jp/#33083)サービスをリリースしました。リリース以来1244人のユニークユーザーにサイトを訪問して頂いております(2011/10/24集計)。毎日およそ50人程度のユーザーがサイトを利用してくださっています。
www.sinsailawa.infoが想定しているユーザーは地方自治体に勤務する職員の方です。職員の方は住民の方にサービスを提供するために法令や省庁からの通知を参考にしているわけですが、今回の震災で様々なな特例が出てきていることが周知されておらず、最新の情報が伝わっていません。場合によっては、最新の情報を職員の方が知っていれば、住民の方に支援が出来るようなケースでも情報が伝わっていないために支援が出来ないケースが発生しているわけです。www.sinsailaw.infoのサイト内検索あるいはGoogleからの検索で特定のキーワードにヒットする省庁からの法令や通知の情報を参照して頂くことで最新の情報に基づいた行政サービスが実現出来ると考えています。
5. これから同様の活動をする人へのメッセージ
5-1. 難しく考えすぎないこと。必要な要件を最低限満たす形でひとまず作ってしまいサービスを公開すること
当サイトでも解決出来ない技術的な課題が残りましたが、まずはコンテンツ、サービスをユーザーに届けることを優先しました。
エンジニアとしては自分の理想像を追求したくなると思いますが、Webベースのサービスでは後からサイトの仕組みを作りなおすことは比較的容易なため、ひとまずリリースしてから修正するという考えで取り組んだ方が良いと思いました。
5-2. 利用者にとってのメリット、効果は何か、一番重要なことは何かを考えること
これについては、今回は情報を収集してくださった弁護士有志の皆さんがニーズとウォンツを把握されていましたので、エンジニア側は技術面だけを考えれば良いという恵まれた状況でした。直接ユーザーの声を事前に聞けない場合には、サービスを公開した上でユーザーの声をコメント欄などでフィードバックしてもらうという手もありますし、アクセス数の変動を監視して、サービスの改善の効果を測定する方法もあるでしょう。
5-2. 使ったことのある技術を最大限に活用すること
技術的なチャレンジは多いに結構ですが、特に震災対応という観点ではリリースまでのスピードがサービスの利用価値に直結します。誰かが実装して実績がある(Proven)な技術、自分が使い慣れた技術を使うことでリリースまでの時間が短縮出来るでしょう。