iOS 13・macOS Catalinaがバグだらけな6つの理由をApple元エンジニアが指摘

先日、AppleからiPhone向けの新OS、iOS 13がリリースされ、多くの端末へのアップデート提供が開始されました。同時にMac向けのmacOS Catalinaも配信が開始し、同じく多くの端末にアップデートが適用され始めています。

しかし、アップデート直後からバグの報告が多発。日本でもiPhone 11との組み合わせでドコモの電波をキャッチできないなど、致命的な欠陥がいくつも見つかっています。

Appleに18年間勤めた元AppleエンジニアのDavid Shayer氏が、「iOS 13とmacOS Catalinaがこんなにもバグだらけな6つの理由」をApple系ニュースに精通したニュースサイト、TidBITSに寄稿しました。

機能が多すぎてスケジュールチキンに

スケジュールチキンとは、ソフトウェア開発のマネジメントで主に用いられる用語。複数人のチームでスケジュール通りに開発が進んでいない場合、それぞれのメンバーは自分以外の誰かが最初に上司へ遅れを伝え、その責任を逃れようと試みます。日本語でもチキンプレイなどの表現がありますが、アメリカのスラングで"Chicken"は「臆病者」という意味にもなります。

なにかの機能に携わる部署のうち、どこかが一つでも開発の滞りを隠して全体の進行を続けた場合、最終的にはOSのリリースに間に合わなくなってしまいます。

完璧主義のAppleとしては予定通りに全体が完成しない場合はリリースを送らせたいところですが、定期アップデートが必要なOSソフトウェアに関しては大幅な遅れは認められません。そのため、不完全なままか、その部分を省いてリリースすることになります。

クラッシュレポートが報告するのは「クラッシュした場合」だけ

Appleのものを含め多くのOSにはクラッシュレポートの機能があります。OSがクラッシュしてしまった場合にその過程や状況などを自動的にOSのメーカーへ送信する機能で、収集されたデータは将来のOSの改善に役立てられます。

しかし、「クラッシュレポート」はあくまでクラッシュレポートなので、OSがクラッシュするほどではない細かいバグは見つけることができません。

もちろんAppleはこれらのバグを無視しているわけでは有りませんが、その検証方法は「旧式」だとのこと。実際に人間がOSを操作して調べるヒューマンテスター、自動のテスト、サードパーティの開発者からのレポート、そして中でもApple Supportからのレポートがメインだといいます。

見つかったバグを重要度に応じてトリアージしている

トリアージとは「選別」という意味で、主に災害時の医療現場で大量の患者を重症度に基づいて優先順位をつけるときに使われます。

Appleの開発ではアルファ版の前には当時確認できるほとんどのバグが修正されますが、ベータ版に入ると重要な機能が使えなくなるような大きなバグのみが優先され、リリース前にもなるとデータを失ったりクラッシュするようなさらに重要なバグが重点的に修正されるようになります。これは悪いことではなく、バグを直そうとコードを書き換えれば他の場所でバグが発生することは十分ありえるため、重要なものを優先するというのは理にかなっています。

しかし、David氏は「残念だがまれに、単に少し混乱するようなレベルの軽微なバグはトリアージされさらに後のバージョンまで後回しにされることがある」としています。

新しく出来たバグは修正されるが、昔からあるものは無視されている

エンジニアが開発をしているときに、誤って新たなバグを生み出してしまった場合は「リグレッション」と呼ばれ、早急に修正するよう手配されます。

しかし、デバッグをして見つけたバグを調べていると「実はそのバグが昔のバージョンから長く存在していた」ということが発覚した場合にはなかなか修正されません。

David氏はApple時代の思い出として、他のチームが「Not a Regression」と書かれたTシャツを着ていたというある種の笑い話を紹介しています。

自動テストがあまり使われていない

Appleでは、他のソフトウェアメーカーと比べて自動のテストをあまり使っていません。

バッテリーやSafariのテストなど一部の領域では自動で検査を行っていますが、Appleは未だに多くのテストを手動で行っています。

Dabid氏は「テストを自動化すればAppleのソフトウェアの品質改善に役立つだろう」と考えています。

Appleエコシステムの複雑さが増した

昔、AppleがMacのみを販売していた頃にはCPUのコアは一つだけで、多くの場合はシングルスレッドで、コードも10万行もあれば長いと考えられていました

それに対して最新のApple製OSのコードは数千万行にわたり、Mac、iPhone、iPad、Apple Watch、AirPods、HomePodはみな相互に細かく通信し連携しています。すべてのアプリはマルチスレッドで動作し、インターネットを使って通信しています。

一つのデバイスで同時に動作する複数のアプリ、プッシュ通知、ネットワーク遅延などのあらゆる可能性をテストするのは事実上不可能です。

そのため、開発は過去と比べて非常に難しくなっています。

まとめ - Appleは必ずちゃんと修正してくれる

今回、AppleはiOS 13のリリース直後にiOS 13.1をリリースしました。その後も高い頻度での更新が続いています。David氏は「Appleはこのソフトウェアの質が深刻であると考えていて、多くのリソースを費やして今回のバグを修正するだろう」と指摘しています。

今回のアップデートの問題点はAppleブランドそのものに対しても強いダメージを与えており、Appleは高級機としての威信をかけた早急な対応が望まれます。

Source:TidBITS

フォローする

Writer

sekken
Pixel 4a 5G or iPhone 12、買うタイミングを完全に逃す Twitterフォローしてね:@sekkenthewriter

関連記事

関連記事

 コメント

※暴言・個人攻撃等は予告無しに削除します

  1. 匿名 2019.10.29 17:47 ID:806b5d13c 返信

    てんこ盛りに機能をつけるから、バグが多発するんだよ。
    利用度の少ない機能は削除して良いんじゃ?
    あるレベルまでは便利に感じるが、限度を超すと、便利になりどころか複雑になりすぎ利用者はわけ分からなくなる。
    制作しているプログラマーはもっと訳が分からなくなる。
    利用率に順位をつけて、40%を下回った機能が削除した方が良い。
    iOS 14 では、追加ではなく簡略化してほしい。

  2. 匿名 2019.10.29 23:49 ID:03646dbf3 返信

    Appleは必ずちゃんと修正してくれる
    ↑こんなこと翻訳元に書いてた?

  3. 匿名 2019.10.30 10:58 ID:46e65797d 返信

    iphone11(ios13?)が4G回線掴まなかったり
    App storeでマルウェア発見されたり
    一部ユーザーのデータを中国テンセントに送ってたりでここ1ヶ月くらいでも散々だったもんな
    安い買い物じゃないから頑張ってほしいね

  4. 匿名 2019.12.22 08:38 ID:35fddca99 返信

    OSの長期サポートをしないやり方通してきてこれはダメすぎる
    月刊脆弱性のIntelを使い続けてることと言い自らブランドイメージ壊してるよ