接触確認アプリの不具合という問題の所在は、OSSコミュニティではなくリリースプロセスの不備にあるのでは
いよいよリリースされた厚生労働省の接触確認アプリですが、「ストアで接触確認アプリと検索しても見つからない」「利用開始の日付が更新されてしまう」「初期設定時にBluetoothの許可をしないとアプリが立ち上がらない」などといった不具合が見つかり、Twitter 等で、接触確認アプリのベースとなるコードをオープンソースで開発し提供した Covid19Radar コミュニティ(以下OSSコミュニティ)に対して批判が出ています。
しかし、接触確認アプリの不具合に対して、問題の所在をOSSコミュニティそれ自体と捉えて、殊更これを責めるというのは、日本のOSSコミュニティの文化醸成のみならず、IT業界にとっても良いことでは無いと考えます。
「誰が悪い」といった責任論は問題の所在の全容を見えにくくしてしまいがちなので私は好きでは無いですし、問題は問題として把握してした上で、できるだけ建設的に「みんなで良くしていこうよ」というスタンスをシンプルに貫くのが私のポリシーですが、さすがに今の状況については声を上げておくべきだと思い、この記事を書いています。
OSSコミュニティは製品の最終責任を負う立場ではない
そもそも今回の場合、オープンソースソフトウェアを採用する上で、どの技術をベースにするかを決定し、足りない部分を補強し、テスト計画を立て、運用計画を作り、遅滞なくリリースするための工程管理をし、最終製品として納品する責任を負うのはOSSコミュニティではなく、指示を出す政府もしくは政府から委託を受けた事業者であるはすです。
また、納品された製品の検収を行い、リリース判断を行うのは委託元である政府であり、最終的な責任も政府が引き受けるべきです。
日経の記事によると、厚生労働省の接触確認アプリにおいても、OSSコミュニティが担う作業と、工程管理や運用についての作業は切り分けられており、工程管理や運用は委託先が担うように書かれています。ボランタリーのチームで十分な品質管理まで行うのはもとより不可能であり、委託費はまさに品質を担保するために支払われているはずですので、少なくとも、現状のようにOSSコミュニティが一手に批判を引き受けているのはいびつな状況だと感じます。(委託内容が明らかになっていないので詳しい点はわかりませんが。)
(ちなみに、Code for Japan が東京都の新型コロナウイルス感染症対策サイトを東京都から委託で開発したように、オープンソース=ボランティアでは無いのですが、関係者自身が明言していますので、この記事ではOSSコミュニティはボランティアチームだと判断しています。)
リリース日に関してプレッシャーがあったのでは?
冒頭に上げたような不具合であれば、1週間でも良いのでちゃんと受け入れテスト期間を設けていれば容易に発見できたのではないでしょうか。Covic19Radarに関わったメンバーはこれまでの実績や評価が伴っていると思われる人たちであり、適切な準備期間があればOSSコミュニティ内でも発見できた不具合であったと感じます。関係者のツイートなどからすると、「○日までにリリースせよ」的なプレッシャーがあったという面が窺われます。
個人的にも、テスト計画を立てていればまっさきに書かれるような異常系のテストが行われていなかったのには違和感があり、納期に関するプレッシャーがある中で、委託事業者側でも十分な受け入れ計画を作ったり、OSSコミュニティから引き継ぎを行う余裕がなかった可能性を感じているところです。
そもそも、既に1次感染のピークは過ぎており、今の時期に急いでリリースを行う必要があったのでしょうか。次に発生するかもしれないピークに向けての重要なツールであるだけに、テスト不足により信頼を失ってしまったことは非常に残念です。
以前から Code for Japan としても訴えてきたことですが、政府内で十分な検収を行う体制もなく、リリースを行うためのリリース判定プロセスもないことがそもそもの問題だと感じます。これを教訓として、政府にはぜひそのような体制を整えてほしいと思います。平時に準備していなかったものを緊急時にいきなりできるようにはなりませんので。
広報体制に不備があったのでは?
アプリのダウンロードサイトには、「ご利用いただくアプリは、最初の公開日から1カ月間は、試行版(プレビュー版)になります。」とありますが、iOS版アプリのダウンロード画面にもアプリそのものにも、試行版であることについて説明がかかれておらず、試行版であることを知らずにインストールしている人も多いと思います。
国民の注目度が相当に高いアプリであり、試行版として提供するのであれば、いきなり全国民にリリースして2日間で241万人にダウンロードさせるのではなく、「パブリックベータテストである」と明確にして、限られた人数から始めるべきだったのでは無いでしょうか。また、試行版なのであれば、明確なフィードバックプロセスも明示すべきでした。(今はアプリにはお問い合わせのメールアドレスしかなく、不具合の報告方法も明示されていません。)
Apple の Review ガイドライン でも、デモ版をApp Storeに掲載することを禁じています。 Google Play ストア では 新型コロナウイルス接触確認アプリ (日本厚生労働省公式) - プレビュー版 と書かれているのに、App Store ではプレビュー版の文字が消えているのは、この制限に引っかかったからではないでしょうか。
2.2 ベータ版テスト
デモ版、ベータ版、トライアル版のAppをApp Storeで公開しないでください。代わりにTestFlightを使用してください。TestFlightを使用したベータ版配信のために提出されるAppは、一般公開を意図し、「App Reviewガイドライン」に準拠している必要があります。ただし、TestFlightを使用しているAppは、クラウドファンディングの報酬など、何らかの対価としてテスターに配信することはできません。ベータ版への大きな更新がある場合は、テスターに配信する前にTestFlightのApp Reviewに提出する必要があります。詳しくは、「TestFlight ベータ版テスト」を参照してください。
であれば、Storeからプレビュー版という文字を消してリリースするのではなく、誤解を招かないようにiOSのリリースは見送るべきだったと思います。
経緯や体制に関しても、政府側が、メディア経由で間接的に美談的な側面だけを伝えるのではなく、どのように事業者を決め、どのような仕様で、どのような責任範囲で委託を行っているのかを明らかにすべきでした。
今からでも間に合う。正しい情報を明確に伝えてほしい
政府側としても、意図的にOSSに責任をかぶせるつもりではなかったと思いますが、リリースに至るまでのコミュニケーション量が圧倒的に不足していたことは否めないかと思います。日本のためにと立ち現れた貴重なシビックテックの動きを潰さないように、今からでも、できればOSSコミュニティに責任は無い旨を発信してほしいですし、少なくとも、この経験を生かすためにも、問題の所在を明確にして欲しいと思います。
これを読んだ皆さんも、建設的に不具合を解消するために協力していただきたいと思います。Covid19RadarのOSSコミュニティがいなければ、アプリのリリースはもっと先になったはずです。Kumiko Sasaki さんがとても良い記事を書いていました。
尚、不具合については、特定の個人に直接伝えるのではなく、厚生労働省の窓口にメールしましょう。 [email protected] が窓口のようです。
公助のサポートや共助の精神でボランタリーに頑張ってきたメンバーが責任追及の矢面に立ち、だれも守ってくれないようでは、緊急時の初期段階で日本のために貴重なリソースを提供しようと思う人達はいなくなってしまいますし、ようやく日本で進み始めた政府によるオープンソース活用も後退してしまいかねません。(行政にとってオープンソース活用が重要な理由はこちらの記事をご一読ください。)
新しい事にチャレンジする際は、失敗がつきものです。批判するのは簡単ですが、多くの問題にはわかりやすい悪者がおらず、構造的な課題があります。それを改善するための王道は、腹を割って話し、相手の立場も理解し、建設的に考え、改善策を出し合うことです。
エンジニアである皆様、プロフェッショナルであるならば、OSSになっているアプリの不備を列挙することに終始するのではなく、このプロジェクトをコードで支援し、不具合を一刻も早く解消し、国民に安心して使ってもらえることを一丸となって目指しませんか?
「ともに考え、ともにつくる」が Code for Japan の理念です。皆でこの素晴らしいムーブメントを応援し、育ていける未来を願ってやみません。
Code for Japan 関 治之