苦いCOCOA
(2023.03.22)
「新型コロナウイルス接触確認アプリ(COCOA)の取組に関する総括報告書」が2023年2月17日に公表されました。(https://www.digital.go.jp/policies/cocoa/)
よく知られたCOCOAの開発から停止に至る経緯をまとめた報告書です。ITのシステム開発に関わる方はぜひ一読されるのがよいでしょう。
COCOAは、国の期待を負っていること、緊急対応が必要なこと、しかし国民のプライバシーは最大限守らなければいけないこと、等々の厳しい条件の下、短期間でリリース・運用に至りました。
しかしその後、2021年2月に接触通知がAndroid端末に到達していないという不具合が長期に渡って見逃されていたことが発覚し、信頼を失うという事態になりました。そして2022年9月には陽性者の全数届出が限定されたことから、COCOAの役割も終りとなりました。
総費用13億円、ダウンロード数41,287,054件という実績です。
私もCOCOAをスマートホンにインストールして、動作させていました。幸い、期間中に接触通知は一度も来ず、内心、残念な気分にもなりました。
この一連の経緯について、公式には二つの報告書が出されています。
第一は厚労省の「接触確認アプリ「COCOA」の不具合の発生経緯の調査と再発防止の検討について(報告書)」(2021年4月16日発表)(※1)です。これは不具合の発覚に対応して、その再発防止策をまとめたものです。
第二の報告書は上に取り上げた「総括報告書」です。
この二つの報告書を読むことによって、「トラブルの種はどこに潜んでいるか」について、いくつかの知識を得ることができると思います。
●事前に予測されたリスクを回避する体制がなかった
COCOA開発チームは、時間的な制約や技術的な制約をリスクとして認識していましたが、そのリスクを実際に回避する手段が弱かったと見えます。たとえば補正予算の確定を待たずに開発に入ったことから、十分な実機テスト環境を用意することができませんでした。普通の開発プロジェクトであれば、おそらくは工期延長を提案するのがベストだったでしょうが、事の緊急性はそれを許してくれませんでした。
●役所の仕事プロセスが緊急時に足かせになった
いろいろな経緯から、COCOAの開発責任者は厚労省となりましたが、当時の厚労省はCOVID-19対応に相当の人数を割いていたため、COCOA開発に専念できるマネージャーはいなかったとされます。またマネージャー・クラスは必ずしもITの専門家ではなく、プロジェクトの監理も甘くなっていた節があります。
●ソフトウェア開発の落とし穴
今、野球の話題が日本中で盛り上がっていますが、その野球では、守っている野手の間にポトンと球が落ちるという”お見合い”が発生することがあります。野手同士が互いに相手が捕球してくれるだろうと暗に期待したために、どちらも捕球しなかったという事態になります。
今回、COCOAのソースコードをGitHubとよばれるデータベース(誰もがレビューに参加できる仕組み)に収めて、管理していました。しかし受託した開発業者は、GitHubを参照することを作業項目として認識しておらず、そのためApple側アプリの仕様が一部変更になっていたことに気付かなかったという状況になりました。”誰かがやってくれるだろう”という思い込みがありました。それが長期間に渡ってエラーが放置された理由とされています。
これも急ごしらえの開発体制の中で生じた、体制の穴と言えます。
●学ぶこと
ソフトウェアの開発には障害発生はつきものです。それを直しながら、成熟させていくプロセスが必要です。技術的に障害発生率を抑える方法はいくつかあります。しかし大事なのはそれを実行できる環境(時間、資金、スキル、体制)を揃えることです。
残念ながら、COCOA開発においては、この環境整備が追いつきませんでした。
今回取り上げた二つの報告書には、技術者たちのくやしい思いがにじんでいる気がしてなりません。
最も求められているのは、緊急時に、機動的に体制を作り、専門家を動員し、思い切った権限委譲までできるような、国の組織行動力ではないでしょうか。「ゴジラ」の出現で慌てふためき、思考停止状態になった中央官庁の光景は、映画の中だけであってほしい。■
※1 https://www.mhlw.go.jp/stf/shingi/other-soumu_030416.html