オープンプロセスによって、COCOAの信頼を再構築できるのか(2021-03)

みなさま CMなどでおなじみの 接触確認アプリ COCOA。もう忘れている方も多くいらっしゃると思いますが、不具合が放置されていたために 2月に厚生労働大臣が謝罪したことがニュースにもなりました。そのあたりの経緯はこちらの記事に詳しく記載されていらっしゃいます。

補足としては、厚生労働大臣が謝罪されたのが 2/3、COCOA の不完全な改修版がリリースされたのが 2/18 で、このリリースの際に「定期的に(1日1回程度)本アプリを再起動していただきますようお願い」という不具合の告知と、「内閣官房情報通信技術(IT)総合戦略室と厚生労働省の連携チームを発足」という発表がなされています。

「まずは一刻も早い修正を」

きわめて単純ではありますが、重い提言だと思います。何はともあれ不具合を直すことが第一です。ですが、今回の不具合は 2/18 のリリース時点で認識されていて調査が始まっていますが、本記事を書き始めた 4/1 時点(42日, 6週間経過)では何もリリースなどが行われていない状況です。

「ともに考え、ともにつくる」

こちらも大事です。COCOAは単なる情報システムではないので、もちろんすべてが実現できないとしても、多くの人の知恵を集める必要もありますし、多くのアイディアを拾い上げてすこしでもよいものを作ろうという体制を作ってそれを見せていくことが、信頼回復への道のりではないかと思います。  

信頼を再構築とは?

さて冒頭の引用記事のタイトルにもあるとおり、3月開始時点では「信頼を再構築」するフェーズにあります。つまりあからさまに言うと、厚労省と受注業者がこれまで(2月まで)開発して公開していたアプリは全く想定される動作をしていなかった(4/1時点でもまだ直っていない)わけですから、厚労省も受注業者も、誰からも信頼されてはいない状態からのスタートです。2月以前についても受注業者は少なくとも不具合を直さずに(おそらく不具合に気づかずに)アプリをリリースしていたわけですから、開発・テスト・検収などのプロセスに問題があったことは明らかです。また、11月には issue に報告があり、それ以外にも厚労省への問い合わせなどがあったと考えられますが、それらについても隠蔽したとまでは言わないまでも、対処せずに何ヶ月かは経過してしまっているわけです。

この状況で引き続きがんばります、といって体制を継続しても問題解決しないとみなされたために、冒頭の「内閣官房情報通信技術(IT)総合戦略室と厚生労働省の連携チーム」という体制が組まれたものと考えています。

オープンプロセスで?

また、信頼回復への手段として、「オープンプロセスで」ということがうたわれています。もちろんこの note 記事は体制が組まれる前の話ということなので、実際に3月にどのような体制で進行されたのかはわかりませんが。。

あるべき姿のひとつとしての「オープンプロセスで」信頼回復を行うということはどういうことなのか。まず「プロセス」というのが軽く添えられていますがここでいう「プロセス」は「ソフトウェア開発プロセス」訳すなら「工程」であって、どのような作業が行われているかを開示して、それを多くの目で確認することによって、信頼性を回復しようということだと考えられます。これまではブラックボックスで受注企業任せだったわけですが、理想的な姿としては、

・開発時にどのような修正が行われる予定なのか
・テスト時にどのようなテストが行われる予定なのか
・テスト期間はどのくらい見込んでいるのか
・検収時にはどのような項目を確認するのか
・リリース後にはどのようにして改修の効果を測定するのか
・進捗状況はどこまで進んでいるのか
・阻害要因はないのか etc..

このようなことを開示すれば、その時点でどこかで止まっていないか、遅れが発生しないか、新たな問題が発生しないか、といったことを確認しながら進めることができます。

開示することのデメリットとしては、たとえば無駄なテスト項目があると指摘されるとか、テスト項目が足りないという横やりが入るとかそういったリスクがないわけではないので、なんでもオープンにすれば解決とは言えないものの、それらの変更要求に対応するためのスケジュールを公開することで遅れが許容できない場合は変更要求を受け入れないなどの判断もできると考えられます

ところでCOCOAはもともとオープンソースなんじゃないの?

ここにひとつ大きなボタンの掛け違いがあるようにも思いますが。オープンソースとオープンプロセスとは関連はあるけど別の概念です。

一般に、GitHub にソースコードが公開されたプロジェクトがある、という状態から想像されるメリットとしてはたとえば以下のようなことがあげられると思います。

1. ソースコードからアプリケーションがどのような動作をしているか知ることができる(ユーザへの動作内容の開示)
2. ソースコード全体または一部を他のプロジェクトで利用できる(第三者による派生物利用)
3. 不具合改修や新機能追加要望の受付や議論
4. 開発中の次期バージョンのソースコードの開示
5. 外部の第三者からの開発案(PullRequest)の受け入れ

ですが、オープンソースライセンスによって担保される主な機能は、上記でいうと1.と 2. だけということになり、3. 以降はオープンプロセスの一部、として理解する必要があります。

機能追加要望を出せるかとか、開発中のソースコードを見ることができるかとかは、「オープンソース」の定義には直接的には含まれません。あくまでも定義としては配布物とソースコードとの関係の話です。

冒頭の記事でのドイツでは活発に GitHub で開発が進められている……といった話についても、ソースコードを公開するだけではなく、オープンプロセスとして開発工程そのものを公開して進めることで、次のリリースでどの不具合が改修されどのような新機能が追加されるのかを含めて公開しているものであり、すべてが 5. のような外部開発者からの Pull Request によって開発が進んでいるわけではありません。

また、オープンソース / オープンプロセスであるから開発者は無償労働の第三者であるというのも定義とは関係ありません。ドイツの事例をきちんと分析したわけではないですが、雇用されている開発者が責任をもって開発プロセスを進行させている(そしてそれを開示している)ものと理解しています。

ですから、厚生労働大臣が国会で「COCOAはオープンソースだったから不具合はあるものなんです」のようなことを答弁したりした事件も 3/11 にあったのですがそんなのも明らかな誤情報ということになります。

話がそれましたが、COCOA が当初からオープンソースである理由は、強制ではないもののできるだけ多くのひとが安心してインストールできるようにするため、ソースコードを公開して、たとえば不正なコードや個人情報収集などの不正な機能実装などが含まれていない、ということを開示するための措置であると考えられます。つまりおおげさにいうと国家権力の濫用の懸念に対して国民が監視できるようにするためにソースコードを公開していると位置づけることができます(上記の 1番)。

また、COCOA の他のアプリと大きく異なる点として、プライバシー保護などの理由から1国1アプリが Google/Apple の方針として決められているため「嫌なら他のアプリに乗り換える」「第三者が fork して別の開発方針でプロジェクトを進行する」といったことが不可能な点があります(上記の2番への制約)。

現状は?

GitHub ではいくつかの提案が close された程度で、IT室補佐官も厚労省参与も、議論に参加するでもなく厚生労働省からの指示待ちを公言するような事態になってしまっています。


画像1

さらには、以下のようにコミュニティを離れる選択、といった発言まで出てきてしまいました。。

画像2

3月から(実際には2月26日から)冒頭の記事にある「オープンプロセス化」によってこれまでの「オープンソース」に加えて GitHub 上での Issue や PR を歓迎するという方針が出されたわけですが、COCOA の特異性から考えると、「コミュニティを離れる選択」と言われても、代わりに他のコミュニティに行くことができませんし、「嫌ならアプリを使うな」というわけにもいかない(政府の方針とも異なっている)わけで、ちょっと不用意な発言であったと考えています。

ここまでのまとめ

・信頼度最低レベル、マイナスからのスタート
・オープンプロセスと信頼の再構築との関係
・オープンプロセスとオープンソースとの関係

改善点についてはこちら


この記事が気に入ったらサポートをしてみませんか?