バグだらけのアプリケーションを書くのは至難の業です。何十年もの間、世界中のソフトウェア開発者は、リリースするほぼすべてのプログラムでそのことを証明してきました。しかし、真に興味深いバグは比較的稀です。私が言っているのは、テクノロジー製品やサービスが長期間動作しなくなるようなバグ、あるいはまるで取り憑かれたか、あるいはそれを利用する人間に恨みを抱いているかのような振る舞いをさせるようなバグのことです。バグ自体は、タイプミスや計算ミスといったありふれたエラーから発生することが多いものの、その症状は決して退屈なものではありません。
この記事のために、世界最大級のソフトウェアおよびサービスプロバイダーの顧客を悩ませた、実に奇妙なバグを9つ集めました。(爆発や人命の損失といった壊滅的な副作用を伴うバグは取り上げていません。Simson Garfinkel氏がWired.comで、それらのバグについて不気味ながらも興味深い記事を書いています。もちろん、バグに関して言えば、Windowsは独自のカテゴリーに属しています。これは「過去10年間のWindowsの最悪の欠陥」でご覧いただけます。また、問題はミスというよりも、最初から非常にまずいアイデアだったという場合もあります。「史上最悪のテクノロジー製品25選」と「これまでで最も愚かなテクノロジー製品10選」をご覧ください。)
PC時代全体を網羅するつもりで調査を始めましたが、すぐに、最も奇妙なバグのほとんどが近年発生していることに気付きました。実際、私のリストにある最も奇妙なバグ3つ(GoogleのAndroid OS、MicrosoftのZune、そしてGoogle自身に関するもの)は、すべてここ数ヶ月の間に発生したものです。ソフトウェアのバグが増えているかどうかは分かりませんが、バグが奇妙になっていることはほぼ間違いありません。
しかし、最初のバグはもっとシンプルな時代のものです。当時は、ソフトウェア企業が極めて機密性の高い情報を暗号化するといったことを思いつかなかった時代です…
1995年:多くの不幸な帰還

奇妙な症状が現れた。Intuit社のMacInTax(後にTurboTaxに置き換えられたプログラム)は、Macユーザーが確定申告をできるように設計されていた。しかし、1994年の確定申告シーズンのバージョンには、ある納税者によって発見された別の機能があった。通信に関する知識が少しあれば、誰でも6万件もの納税申告書が保護されていない状態で保存されているコンピュータにダイヤルインできるのだ。アクセスすれば、ユーザーはすべての申告書を閲覧したり、変更を加えたり、あるいは完全に削除したりすることができた。
バグ: MacInTaxには、顧客がモデムの問題を診断するのに役立つデバッグユーティリティがバンドルされていました。このユーティリティは、Intuitの下請け業者が運営するサーバーにダイヤルインしていました。このユーティリティは、暗号化などの方法で難読化されていないアカウント名とパスワードを使用していたため、偶然それらを見つけた人は誰でもMacInTaxユーザーのデータに完全にアクセスできました。Intuitはこの不具合を「見落とし」と呼び(冗談ではありません!)、謝罪しました。同社は、この不具合によって申告書に問題が発生したユーザーが被った罰金を負担することを申し出ました。
1998年:オークション中断

奇妙な兆候が見られました。 6月10日、当時も今も世界最大のオンラインオークションサイトであるeBayがダウンしました。特に目立った出来事ではありませんでした。1990年代後半、eBayの出品者と入札者は、予定外のダウンタイムに頻繁に直面していました。しかし、今回のダウンタイムは延々と続きました。6月11日にサイトが復旧するまでに22時間も経過し、進行中のオークション230万件が影響を受け、eBayは巨額の手数料を放棄せざるを得なくなりました。
バグ: eBayは、このメルトダウンの原因をデータベースの破損と断定し、そのデータベースの破損はSun Microsystemsのソフトウェアのバグが原因だとしました。14ヶ月後、eBayは14時間にわたるシステム停止に見舞われ、ほぼ同程度の恥辱と多額の損害を被りました。その時は、eBayはハードウェアの問題が原因だと主張しました。
2005年:サプライズエンディング

奇妙な兆候: TiVoのマスコット、つまり片方の口角を上げて笑っている小さな擬人化されたテレビに、サディスティックな一面があると疑ったことがあるだろうか? 2005年後半に同社のDVRを所有していた人なら、そう感じたかもしれない。当時、テレビを見ない人々は、TiVoが番組の最後の部分をランダムに大きくカットし、サスペンス満載の結末を迎える番組をクリフハンガーで終わらせていることに気づき始めた。
バグ:同社は対応に時間を要しましたが、最終的に、録画が途切れる問題は、長時間連続稼働していたTiVoシリーズ2のみに影響を及ぼすと結論付けました。当初、同社は所有者に対し、DVRの電源を定期的にオフにし、その後、問題を恒久的に解消するためのパッチをリリースしました。
2006年:ゲームオーバー

奇妙な症状: 1980年代のアーケードゲーム「バブルボブル」のニンテンドーDSリメイク版「バブルボブル レボリューション」は、驚くほど難しいゲームだったと言えるでしょう。例えば、レベル30は文字通りクリア不可能でした。ゲームには合計100レベルもあったことを考えると、これは少々奇妙な話です。
バグ:多くのアーケードゲームと同様に、「バブルボブル レボリューション」のレベルは、プレイヤーがボスと呼ばれる超敵を倒すことで終了する。しかし、レベル30には倒すべきボスがいないため、レベル31に進むことができなかった。数ヶ月後、パブリッシャーのコードマスターズは欠陥のあるカートリッジをデバッグ済みのバージョンと交換し、謝罪として別のゲーム「レインボーアイランド レボリューション」を同梱した。
2007年:Skypeの衰退

奇妙な症状が現れた。 8月16日、大人気インターネット電話サービス「Skype」のファンが、Skypeが正常に動作していないことに気づいた。しかも、それは一時的な問題ではなかった。数百万人のユーザーのほとんどにとって、Skypeは2日間も利用できない状態が続いた。おそらく、主要なWebサービスとしては史上最長の障害だっただろう。
バグ:停電中、Skypeの従業員は頻繁にブログで状況を公表し、復旧に向けた取り組みについて報告していました。しかし、サービス復旧に成功した後になってようやく、何が起きたのかが説明されました。MicrosoftのWindows Updateが膨大な数のSkypeユーザーのPCに一斉にパッチを適用し、再起動を余儀なくされたのです。再起動後、すべてのPCが同時にSkypeにログインしようとしました。理論上はサービスに影響はなかったはずですが、大量の接続試行によって、リソース割り当てアルゴリズムに深刻なバグが存在することが明らかになりました。その後の投稿で、SkypeはMicrosoftを責めていないと述べています。しかし、問題を引き起こしたWindows UpdateのパッチはWindowsのバグを修正するために設計されたものだったことを考えると、この一件は、バグを根絶することが放置するのと同じくらい危険であるという、興味深い事例として記憶されています。
2007年:海賊、海賊、どこにでも海賊

奇妙な兆候: MicrosoftのWindows Genuine Advantageコピー防止技術は、ソフトウェアの窃盗犯に対し、ソフトウェアのアップデートを拒否し、金銭の支払いを要求し、便利な機能を無効化することで、彼らを悩ませるように設計されています。しかし8月26日、WGAはWindowsのコピーに金を支払った人々に対して、無作為に嫌がらせ行為を開始しました。19時間の間、WGAは実質的に、有料版の顧客と海賊版利用者を区別できなくなりました。
バグ:復旧後のブログ記事で、マイクロソフトのアレックス・コチス氏は、同社が誤ってWGAサーバーに試作コードを送信し、Windowsのコピーを正規品として認証してしまったと述べています。試作コードは、Windowsライセンスコードの超強力な暗号化を提供するソフトウェアの存在を前提としていましたが、そのソフトウェアはまだ導入されていませんでした。ベータコードと未リリースソフトウェアの組み合わせが悪影響を及ぼし、WGAは正規のWindowsライセンスを偽造品として拒否するようになりました。WGAの不具合はこれが初めてではありませんでしたが、間違いなくこの技術の最悪の時期でした。おそらくこの対応策として、マイクロソフトはその後、WGAの厳格さを緩和しました(また、最近、この機能の名称を「Windows Activation Technologies」に変更しました)。
2008: <Ctrl>-<Alt>-<Del> よりも簡単

奇妙な症状: GoogleのAndroid OSを搭載した最初の携帯電話、T-Mobile G1が秋に発売されると、ユーザーはすぐに、小さなキーボードで「再起動」と入力すると、実際に携帯電話が再起動してしまうことに気づいた。これはバグではなく、メリットのように聞こえるかもしれない。しかし、これはAndroidアプリのあらゆる場面で発生し、たとえおばあちゃんに新しいソフトウェアをインストールした後にPCを再起動するようにアドバイスするメールを急いで送っているような状況でも発生した。
バグ: LinuxベースのAndroidには、プログラマーが最高権限でログインし、リモートデバイスからスマートフォンにコマンドライン命令を発行できるという、ちょっと変わった機能が同梱されていました。しかし残念なことに、この機能はバグだらけで、スマートフォンは権限レベルに関わらず常にコマンドを受け入れてしまうという問題がありました。リモートデバイスが見つからない場合は、キーボードで入力されたコマンドを常に実行していました。この欠陥は、望ましくない再起動を引き起こすだけでなく、潜在的に甚大なセキュリティホールを生み出していました。GoogleはAndroidにパッチを当ててこの欠陥を解消した際に、この点を認めました。
2008年:Zuneが静止した日

奇妙な症状: Zuneユーザーを気の毒に思わざるを得ない。彼らが愛用するMP3プレーヤーが「またしてもMicrosoftのクールさを追求する失敗作」の代名詞となっているだけでなく、12月31日には、30GBハードドライブ搭載モデルの所有者全員が、プレーヤーが勝手に再起動し、再起動しようとするとフリーズしてしまうことに気づいたのだ。まるで誰かが世界中の30GB Zuneの供給に罠を仕掛け、2009年まで供給が途絶えないようにしたかのようだった。
バグ:閏年は紀元前45年にジュリアス・シーザーが発明して以来存在していたようですが、ソフトウェア開発者は未だに理解していないようです。Zuneは、閏年の処理方法にエラーがあったため起動しませんでした。これは、1年に1日追加されるという概念をソフトウェアがうまく処理できない多くの例の一つです。幸いにも、修正は簡単でした。1月1日にZuneを再起動すると、復活しました。とはいえ、大晦日のパーティーを盛り上げるためにZuneを使おうと考えていた人にとっては、少々面倒なことだったかもしれません。
2009年: マルウェアが蔓延
奇妙な症状: Googleで検索した時に、検索結果の1つに「マルウェアが含まれている可能性がある」という警告が表示されたことはありますか?1月31日の早朝にGoogle検索をしたことがあるなら、そんな経験があるかもしれません。その日の朝55分間、Googleの検索結果はすべてのサイトを「あなたのPCにとって危険」と表示しました。つまり、インターネット上のすべてのサイト、つまりGoogle自身のサイトやサービスもすべて危険と判断されたのです。
バグ: Googleのマリッサ・メイヤー氏がブログ記事で説明したように、マルウェア検出機能は既知の違反サイトリストを参照して危険なサイトを特定します。1月31日の朝、リストの更新時に誤ってスラッシュ(「/」)が含まれていました。すべてのURLにはスラッシュが含まれており、マルウェア対策機能はスラッシュをすべてのURLが疑わしいと解釈し、結果に表示されたすべてのサイトに警告を表示してしまいました。多くのソフトウェアエラーはタイプミスに起因しますが、これほど単純なタイプミスがこれほど広範囲かつ奇妙な結果をもたらすのは稀です。
元 PC World 編集長のハリー・マクラッケンは現在、Technologizer でブログを運営しています。