ソフトウェアやサービスの不具合は、そこにあるのに見えないことがあります。Dan Luuの「Bug blindness」は、まさにその“見えなさ”をめぐる話です。筆者は自分だけが細かいバグを見つけやすいのではないかと長く考えてきましたが、実際には多くの人が同じ問題にぶつかっていて、それに気づいていないだけなのではないか、と考えるようになった。この記事は、製品の品質をどう評価するか、そして「うまく動いている」という周囲の空気をどこまで信じてよいのかを考えさせます。
元記事の筆者は、週に何百から何千ものバグを自然に見つけてしまうと書いています。最初は、自分のコンピュータの使い方が特殊だからそう見えるのだろうと思っていたものの、長く観察するうちに、周囲の人たちは単に同じ不具合に出会っても気づいていないのではないか、と考えるようになったそうです。非プログラマーであれば、そのほうが世界の見え方としては自然かもしれないが、プログラマーにとっては品質の問題を見抜く力が役に立つ、と筆者は言います。実際、知人にバグを指摘し続けると、数週間ほどで相手も気づくようになることがあるとも述べています。
筆者は、企業の幹部が「本当に問題点を見つけられる人」として自分に評価を頼むことがある、とも振り返ります。そこで見つかる問題は、何もないこともあれば、「軽度」から「中程度」まで、そして時には「その製品は実際には使えない」と言ってよいほど深刻なこともある。興味深いのは、内部では「すばらしい」「よく動く」といったコメントが積み上がっているのに、実際に触ると直感に反する回避策をいくつも踏まないと使えない状態になっている例があることです。普通の利用者なら使えず、むしろひどい体験として周囲に話すはずだ、と筆者は見ています。
記事では、検索エンジンの例として Google、Bing、Kagi を挙げています。筆者が試した検索では、どれも良い結果を返せず、低品質なSEOスパムや詐欺サイトが目立ったという。筆者はこれを「中程度」の問題と位置づけています。ここでの「深刻」は、たとえば半分くらいの確率で500エラーが出る、結果の大半が詐欺、というレベルで、普通の利用者がそもそも使えない状態を指すと説明します。Kagi について反論する人もいたものの、実際の検索結果を見せてもらうと、役立つ結果がなく、スパムが多いケースばかりだったといいます。
筆者は、好きなものの欠点が見えなくなるのは人間としてよくあることだ、とも書きます。Volvo の例では、長年「信頼性が悪い」という統計や整備士の実感があるのに、オーナーは自分の車が壊れていないので「統計が間違っている」と感じがちだという話が出ます。Blackboard という大学向けの course management software では、学生にも教員にも非常に嫌われていたのに、会社の中の人は「人気がある」と思い込んでいた、という逸話も紹介されます。さらに Discourse の web performance の話では、実際の読み込みを遅くしてまで LCP などの指標をよく見せるコードが入っていた例に触れ、見た目の数値と実感の乖離を問題にしています。
終盤では、筆者自身は自分の仕事や自分自身の欠点ばかりに目が行くタイプだと述べ、批判されてもむしろありがたいと受け止めていると明かします。昔、子どものころに汚れた mechanical mouse を使っていて、友だちにはまったく動かせなかったのに、自分は気づかないうちに手を大きく振って補正していた、という体験も出てきます。つまり、劣化した状態に慣れると、それが普通に見えてしまう。この記事全体は、その“慣れ”が品質判断をいかに歪めるかを、検索結果、車、学習管理ソフト、フォーラムソフト、そして自分の昔のマウスまでつないで語っています。
この記事でいちばん面白いのは、バグの有無そのものより、「誰の視点で見れば問題になるのか」をずらしている点だと思います。開発側は、動く人の数や成功率を見る。利用者は、自分がちゃんと目的を達成できたかで見る。ところが、両者の間にはかなり大きな溝がある。筆者が言うように、内部の会話では「順調だ」となっていても、外から触ると回避策だらけ、という状態は珍しくないはずです。特に厄介なのは、少し工夫すれば動くケースです。そこでは「一応使えた」という事実だけが残り、使う側の摩擦が見えなくなる。
この話は、最近のプロダクト開発全般にそのまま当てはまると思います。ログや指標、A/Bテストは増えましたが、それでも「実際の体験」が数字に吸われてしまうことがある。LCP のような指標をよく見せるために現実の読み込みを犠牲にする、という筆者の例はかなり象徴的です。数字が改善すると、人は安心する。でも利用者は、数値ではなく待ち時間や手間を覚えています。そこで起こるのは、改善ではなく“見栄えの最適化”です。この記事は、その危うさをかなりはっきり示していると思います。
Volvo や Blackboard の例は、いわば「好きだからこそ欠点を無視する」現象の説明です。これは単なる心理学の話ではなく、組織の意思決定にも効いてきます。自社製品を信じる人が多いほど、悪い報告は軽く扱われやすい。まして社内で長く使われている製品なら、「みんな慣れているから問題ない」となりやすい。筆者が不思議がっているのは、そうした自己防衛が、第三者から見て明らかな不便さや失敗まで覆ってしまうことです。
私はここに、コミュニティの閉じ方も関係していると思います。検索エンジンの結果がひどい、あるいは大学のソフトが不評だ、という外部の感覚は、同じサービスを愛用する人の輪の中では薄まる。反対意見に日常的に触れないと、「不満を言う人は少数派だ」という物語が自然に成立してしまうからです。だからこそ、筆者のように外から壊れ方を見つける人は貴重です。ただし、その役割は嫌われやすい。問題を指摘する人は、しばしば場の空気を壊す人にもなる。そこを引き受けられるかどうかで、製品の生存率はかなり変わるのではないかと思います。
最後の mechanical mouse の話は、この記事の中でもっとも実感しやすい部分でした。汚れたマウスボールに慣れた本人だけが、無意識に大きな手の動きで補正していた。これはソフトウェアにもそのまま当てはまります。使い続けるうちに回避策を覚え、それを“普通”だと思い込む。すると、新しい利用者がつまずく理由が見えなくなる。筆者が「普通のユーザーは使えないはずだ」と言うとき、その根拠は大げさな怒りではなく、慣れの外側に立てていることにあるのだと思います。
ここで重要なのは、「自分が問題を見つけやすい」ことを万能視していない点です。筆者は、自分にも盲点はあると認めています。ただ、少なくともこの種類の劣化には比較的強い、という自己認識がある。その姿勢は、開発者にとってかなり示唆的です。自分の体験だけで判断しないこと、内部の好意的な評価だけで安心しないこと、そして実際に初見の人に触ってもらうこと。どれも教科書的ではありますが、この記事を読むとその当たり前が急に重く見えてきます。品質は、慣れた人の感想ではなく、まだ慣れていない人の足の止まり方に出るのだと思います。
参考: Bug blindness