IT ニュース&コラム 2021/ 2/22 通巻824号 ニュース版 ソフトウェアデザイン館 Sage Plaisir 21  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ■■ 新型 コロナ ウィルス 感染経路特定アプリ COCOA の不具合放置問題 ■■ 2021年 2月3日、厚生労働大臣は厚生労働省が配布している新型 コロナ ウィルス の感染経路を特定するスマホ向けアプリ通称 COCOA において、接触があっても 通知されないといった根本的な不具合が4か月も放置されていることを受け謝罪した。 不具合は2020年9月28日のバージョンアップの際に発生した。 つまり、デグレードである。 デグレードとは、機能追加や不具合修正によって、別の不具合が発生してしまうことだ。 例を分かりやすく言うと、ペットボトルの容量を増やして売れるようにしよう!と 改良したら小売店の商品棚に入らなくなってしまった、という全く予想外な不具合である。 小売店の人にとっては簡単に不具合が見つかるが、飲料メーカーの開発者にとっては 営業の人や以前指摘された経験のある人でないかぎり不具合に気づく「きっかけ」がない。 今回の場合、接触した人でなければ気づくきっかけはない。経験がある人などほとんどいない。 COCOAは、アップルやグーグルから提供される Bluetooth を使った新機能を使っている。 ソフトウェア的には API と呼ばれる関数呼び出しを行うことでその機能が使える。 新機能の API の仕様が頻繁に変わるのはどうしよもないことだ。API の開発関係者にとって 予想外なケースへの対応や反応が必要だった場合、API の仕様が変わるからだ。 その仕様変更を繰り返していくうちに(経験・勉強していくうちに)様々なケースに対応 できるようになり、API の仕様は安定するものだ。 「不具合というのは永久になくなりませんので、この手のアプリは。今後何もない、 ということはないと最初から言っておきます」と大臣が発言しているのはそのとおりであるが、 アプリだけでなく API も不具合が永久になくなることはない。 そういう性質のものなら予備費を付ければよいだろう。 しかし、予算は無限に無いし、IT開発はすべてそういう性質のものだ。 なので完成の定義を考える必要がある。たとえば、 第1版は少しの機能しかないが重要なケースで十分使えるもの、 第2版は、多少の不具合があるが十分使えるもの、 そして、保守のための費用、といった具合だ。 ただし、多少の不具合については、完璧なものを求める発注者には報告しないほうがいい。 リスクを許容できる能力のある人でなければ、報告することは双方にとって損だ。 リスクを理解するためには多くの経験と勉強が必要でその教育係ではないからだ。 そういった性質の IT 開発において 3週間の一発受注で終わらせてしまった元請けの パーソルプロセス&テクノロジーには問題がある。 あるサイトでは発注金額の内訳は、 ・株式会社FIXER 1億2062万円 ・株式会社エムティーアイ 1615万円 ・日本マイクロソフト 2201万2000円 ・残りがパーソルP&Tの取り分とすると、1億3570万円 あるサイトでは、 ・株式会社FIXER 9333万円 ・株式会社エムティーアイ 1億9093万円 ・日本マイクロソフト 8416万円 ・パーソルP&T 2194万円 元請けの中抜き額が大きく違うが、安いほうでも工程管理の責任が問われてもおかしくない金額だ。 パーソルは人材紹介業であるから、適切な下請けを探す能力が高いのは間違いないだろうが、 工程管理能力があるかというと無いだろう。紹介業はプロジェクトの遅延に対して責任がないからだ。 なので、工程管理に 2194万円ではなく紹介料に 2194万円だろう。 これは高すぎる。 というか元受けであり続けてはいけない。再委託するな、辞退しろ。 ということは厚労省も分かっているようで、再委託比率が50%を超えることを原則禁止している。 中抜きが少なければいいというわけではなく、元受けが工程管理をもっと専門的にきちんとしろということだ。 つまり、責任はパーソルにある。というか責任を負える立場とも思えないくらい酷い状況だ。 エンジニアにも問題があるだろう。工数が足りないならリソース(人モノ金)を要求するべきである。 あきらめたらそこで試合終了だ。 「5日前にAPIの仕様が変わろうと、実装が変わろうと、 何があっても3週間で完璧なものを作り上げろと言われ、 (それで不具合が出たら)へっぽこエンジニアの烙印を押されるわけだ……」 確かにその通りだ。しかし、それは何も分かっていない人が評価しているからだ。 怒らずに徐々に周りの状況を変えていこう。 また、要件定義が不十分で何を作ったら分からないで怒っているようでは何も解決しない。 誰が解決するのか。それは自分にそれを解決する能力がないからではないのか。 プロトタイプを作ることで合意を取るのはどうか。 少なくとも色々な人の間違った知識を頭から間違いだ!と非難していたら、解決するわけがない。 重要な不具合を見つけたらアピールしないと間違った評価をされるだろう。 発注者や管理者も不具合の発見については賞賛すべきである。Google などは報奨金を付けているほどだ。 不具合の発見が多いと自分で作り込んで評価を上げようとしていると思うかもしれ合いが、 意図的でなくても大量に発生するものだ。 そこで不具合を作り込んだ人を問い詰めても雰囲気が悪くなるだけだ。 逆に問い詰める人には報告しないほうがいい。 今回の不具合の原因は API の使い方であると発表された。改修もすぐできた。 しかし、不具合はたくさん発生する。 COCOA のベースとなった COVID-19Radar に対しては、 1月22日までの時点で、150件以上のIssueや400件以上のPull Requestが送られ、 約120件のIssueが解決、約370件のPull Requestがプロジェクトへ取り込まれた。 そして、正しい API の使い方は仕様変更によって変わる。 デグレードの1つの原因だ。 いくらアプリの機能が全く変わらなくても、依存している API の仕様変更によって 動かなくなるのだ。 このことも予算を組む上では考慮が必要だ。 重箱の隅のケースも網羅した立派なテスト仕様は重要ではない。 完璧な動作が要求されても、論理的に網羅する必要は無い。 最も多いシンプルなケースで完璧に動くことが重要だ。 デグレードが起きないようにするには、自動テスト環境を構築することだ。 機能追加や不具合修正したことと全く関係ないことを手動で再テストすると、 なぜこんな作業をしているのかと鬱になってしまうものだ。 今回はハードウェアが絡むため完全な自動テストは難しいので半自動テストと するのが現実的だろう。 元マイクロソフトの楠さんは Twitter で 「運用保守軽視、バックエンド軽視、ドキュメンテーション軽視、 共通APIの実装差異軽視、外部環境の変化を見積もり条件に入れていない、 どれもついやらかしてしまうことだし、なかなかソフトウェアの お守りをしたことがない人への説明が難しい上に、これほどのフルコンボは初めて経験」 と発言している。 ソース https://www.youtube.com/watch?v=ZNGrpoqV1tI https://twitter.com/masanork/status/1357828710913568768?s=21 https://www.nhk.or.jp/politics/articles/feature/53380.html https://note.com/mugura/n/ncc3c61de39ea https://www.itmedia.co.jp/news/articles/2006/23/news107.html https://www.tokyo-np.co.jp/article/87051 https://www.itmedia.co.jp/news/articles/2102/12/news142.html ■■ 注目ニュース 一覧 ■■ ◇ ユーザーを誘導するダークパターンで得られた同意を認めないという新法が登場。 https://gigazine.net/news/20210201-lawmakers-aim-insidious-dark-patterns/ … 悪意のある契約内容は、悪意のあるプログラム(ウィルス)と同じこと。 ◇ Clubhouse で見かけたさまざまな活用事例。 https://japan.cnet.com/article/35166297/ https://japan.cnet.com/article/35166290/ https://gigazine.net/news/20210209-china-clubhouse-censorship/ … 音声だけの多人数 SNS の形はまだ模索中の様子。 ◇ Signalが検閲国でもサービスを利用可能にするプロキシ構築方法を公開。 https://gigazine.net/news/20210207-signal-proxy/ … これをバグとして改修したら利用できなくなるかもしれない。 ◇ グーグル、Stadia 向け独自ゲーム開発を終了。 https://japan.cnet.com/article/35165897/ … 技術だけではコミュニティ作りができない。 ◇ 開発中止が続くAmazonのゲーム開発部門 Amazon Game Studios はなぜ失敗したのか? https://gigazine.net/news/20210201-amazon-game-studios-failure/ … aws は裏方としては成功している。 ◇ 約65億円でAmazonが物流ドライバーのチップをピンハネしていた一件について和解。 https://gigazine.net/news/20210203-amazon-withheld-tips-flex-drivers/ … 役員にモラルがない。 ◇ Amazonの創業者ジェフ・ベゾスがCEOを退任。 https://gigazine.net/news/20210203-jeff-bezos-step-down-amazon-ceo/ https://japan.cnet.com/article/35166277/ … 後任は AWS の CEO。物流サービスの改善なるか。 ◇ プログラマーに最も愛される言語「Rust」の管理・開発を主導する非営利組織「Rust Foundation」が設立。 https://gigazine.net/news/20210209-rust-foundation/ … Rust が注目されているらしい。 ◇ マスクしたままでも Face ID でiPhoneがロック解除可能に。 https://japan.cnet.com/article/35165886/ … まだリリースされていない。 ■■ ソフトウェアデザイン館 Sage Plaisir 21 ■■ ホームページ >>> http://www.sage-p.com/ メルマガ >>> http://www.mag2.com/m/0000083983.html ブログ >>> http://blog.livedoor.jp/sage_p/ ツイッター >>> http://twitter.com/Ts_Neko ダウンロード >>> http://www.sage-p.com/freesoft.htm サポート掲示板 >>> http://www.sage-p.com/kg_ban09/z6037C8.cgi 東日本大震災 >>> http://www.sage-p.com/saigai.html メール >>> ts-neko◇sage-p.com ←◇を@に変えてください 緊急メールは件名に「うどんメール」を付けてください。 このメルマガの登録・解除 - http://www.mag2.com/m/0000083983.htm