※注意:どちらかといえば技術的な話はほとんどないです。ですが、コロナウイルス対策サイトなどの類を運用する方にぜひ読んでほしいと思い、Qiitaで執筆いたしました。長文で読みにくいところは多々あるかもしれませんが、これを機にいろいろ考えていただければ幸いです。
まずお前何者だよ
主に、兵庫県非公式 新型コロナウイルスまとめサイトでデータ管理(スクレイピング等、以前こんな記事を書きました)やデータをビジュアライズするグラフの管理等をして、大阪府公式版のデータスクレイピングスクリプトを書いたり、京都府版でも似たようなことしたりしているような人です。
なぜこんな記事を
各都道府県版が制覇されて、各市や区、そして日本国総合版まで出来始めて、はっきり言ってそろそろ乱立しているようにさえ感じます。皆さんそれぞれの地域の情報をわかりやすく伝えたいという思いがあると思うので、別によいとは思うのですが。各都道府県版も、2つや3つとまである県もあったりで、そろそろ1つに統合してくれないかなぁと思っていたりするのです(かつて私も、兵庫県版を立ち上げようとしたところ既に立ち上がっていると知って、そちらに参加したという流れがあるので...)。
また、各地域ごとに自治体が公開するデータの違いもあったりして、それぞれの地域版で表記できるデータも変わってくると思います(兵庫県版ではかなり多めのデータが公開されているので、グラフも多めに作ることが出来ています。兵庫県の担当者の方、いつもありがとうございます)。そんな中で、表記すべきデータ、表記しなくていいデータ、表記すべきでないデータなどがあります。
他にも、その地域版に持続性はあるのか、長続きせず力尽きてサイト閉鎖をしてしまうようなことがないかなど、私なりに各地域版に物申したいことがあるのです。おせっかいかもしれません。でも、私は心配なのです。
今回は、主にサイトの内容の改善についてと、長期運用に関する改善についてお話したいと思います。
記事構成(目次)
簡単に言えばたった二項目です、これを気を付けてほしいというものを兵庫県版や、その他の地域版での体験/経験をもとにまとめます。
データの可視化は考えて
兵庫県版では、他の地域版では見られない、クラスター別陽性患者数というグラフを採用しています。実はこのグラフ、かなり変更が加えられているのです。
最初は以下のような表でした。
今となってはこの表は「テーブルを表示」で見られるようになっていますが、「これは可視化にしては見にくい」という部分がありました。
そこで、次は以下のような横棒グラフを実装しました。
しかし、実はこの後表に戻しており、現在はさらに以下の散布図に変えているのです。
いったい何があったのでしょうか。
ビジュアライズの懸念
ビジュアライズには責任が伴います。データだけではわからないものが、グラフにすることで目で見てわかる形になるだけ、と軽視すると痛い目を見ます。先ほど挙げた「クラスター別陽性患者数」グラフに使われているデータは、兵庫県がクラスターの情報を公表することで対策につなげようとしたものだと思います。
最初、クラスターの情報を有効活用して可視化しようと、マップ形式にするという案が出されました。しかし、これは各クラスターのある地域に対する風評被害を及ぼす可能性があるとの指摘が挙がりました。
風評被害は押さえたいが、出来る限りの可視化はしたい、ということで最初は表が用いられました。クラスターごとの陽性患者数を出すことにしたのです。しかし、これでは数値だけで直感的にはわかりにくい、というような指摘が挙がってきたのです。
そこで、横棒グラフでの実装に切り替わりました。数値を認識しやすい形にすることで直感的にわかりやすくしたのです。しかし、今度はクラスターを比較しても意味はないし、そのクラスターにおいて感染が終息したかどうかの判断が出来ない、という指摘が挙がったのです。
風評被害を抑えるべく表にしたけど、わかりにくいからグラフにした、でもこれだと意味がない...。私たちはビジュアライズの難しさを痛感しました。
そんなとき、同じ兵庫県の情報をまとめているサイトで、クラスターの情報が時系列でわかる図を参考にしようという案が持ち上がりました。これなら、時系列で判断可能なうえに、点の集合体として直感的にもわかりやすい、現状最もベストなグラフであろう、ということで議論の末に現在の実装におちついたのです。
ビジュアライズの難しさ
ここからが私の伝えたい点で、私が現状ビジュアライズにおいて注視している点です。
- まず、誤解を与える(もしくは与えやすい)グラフ/表ではない
- 関係各所(医療機関等)への迷惑をかけにくい(影響を与えにくい)
- (当たり前ですが)わかりやすい
1と2についてお話ししましょう。私たちの運用する兵庫県版はあくまでまとめサイトにすぎませんが、これを見たユーザーがどのような行動をとるかは私たちにはわかりません。予想もしないような行動をする可能性だってあり得ます。なので、まずはじめに誤解を与えるような内容は載せないようにしましょう。円グラフにして何パーセントが~なんていう、可視化+数値というのは案外強力な力を持っています。誤解や行動のミスリードを誘う可能性が非常に高いのです。
以前、「入院患者数と残り病床数」という円グラフを採用していたのですが、正しいデータが取れなくなってしまったことを機に非表示にしています。実はこれ、以前より非表示にしようという案がありました。「頑張っておられる医療の現場に対して病床数が足りないのではないかなどと不適切な問い合わせをするようなユーザーが現れかねない」という懸念が出始めたためです。これは関係各所への迷惑をかけることになりえる、として代替案の模索をしていたところで、正しいデータが取れなくなってしまったためにやむを得ず非表示にしました。
実は、「入院患者数と残り病床数」グラフはほかの地域版にも用いられていることを調査済みです。私の書いたコードを使用してくれていることはOSSデベロッパーとして非常にうれしいです。しかし、兵庫県ではこれから「宿泊療養」といった、入院ではないものが出てくると思います。なので、恐らくこのグラフを兵庫県版で復活させることはないと思います。あくまで兵庫県版の話にすぎませんが、ほかの地域版にもこの知見が参考になれば幸いです。
兵庫県版ではいろいろ議論の上で表やグラフを実装するような方針になっていますが、これでも懸念が残ることはあります。どんな可視化にもメリットとデメリットは伴うものです。グラフを新規に実装する際はしっかり考えて実装するようにしていただければ幸いです。また、既に実装済みのものであってもしっかり議論したうえでの実装では無ければ議論し、改善するように呼び掛けてみてください。
継続的な運用を出来るように
こちらの方が重要だと思います。大きく育ってしまったサイトは急には消せません。継続的な運用が必要です。新しいグラフの追加や、サイトの見やすさ改善などは順次必要でしょうが、一区切りついた段階で「継続的、安定的に運用できる体制を整える」ことが必要になってきます。
継続的なデータ更新環境の整備
今、サイトのデータ更新などを自動化しているところはほぼ継続的な運用に向けて動けているといっても過言ではないでしょう。手動でのデータ更新は非常にめんどくさいですし、感染者数や検査人数が増えれば対応が難しくなっていきます。データの公開形式があまりよくないために自動化できない、という場合はせっかくCode for Japanがオープンデータ定義書を作ってくださっているので、それをもってお役所に交渉するべきだと思っています。
サーバーなどの整備
今、サイトを提供するためのサーバーはさくらインターネットや、Netlifyなどから無料で貸してもらっているところもあれば、代表の人なんかが自腹を切って運用しているところもあるかもしれません。現在はその運用で成り立っているかもしれませんが、将来的にはどうでしょうか?これは、北海道版の運営団体「JUST道IT」内で議論に上がっていた話の一つです。サーバーを無料で貸し出してくれる期間/期限などは定められています。その期間が終わったらどうなるのでしょう。誰かが自腹を切ることになるのでしょうか?それともみんなでお金を出し合うようにするのでしょうか?
まだ先の話かもしれませんが、ここら辺を今のうちから議論しておき、決めておくとよいと思います。期限ギリギリにあたふたするのではなく、あらかじめ決めておいて、スムーズに運用方法の切り替えなんかを出来るよう準備しておきましょう。運営団体なんかがそんなことで分離/解散するようなことは悲しいことです。せっかくの今までの努力の結晶が解散によって水の泡になるなんてことは誰も望まないでしょう。
コロナウイルスが収束したころに、みんなで「頑張ったね」と打ち上げや乾杯などしたくないですか?
達成感を感じてきれいに終わってこそ、このプロジェクトに最大の意味が生まれると思います。
終わりに
議論はプロジェクトの活性化や安定した運用などにおいて必須といっても過言ではないと思います。議論があってこそ、チームで物を作り上げることに意味が生まれ、そのチームやプロジェクトを良い方向に導いてくれるはずです。OSSには年齢も性別も関係ないと思います。いろんな人がいてこそ成り立っていると思います。このススメをみて、たくさん議論して良いものが出来、日本でのコロナウイルス収束に大きく貢献することとなれば幸いです。