元アップルエンジニアが語る6つの理由は以下のとおりだそうです。
- 機能リストを詰め込みすぎてスケジュールチキンにつながる
- クラッシュレポートからはクラッシュ以外のバグは分からない
- 重要度の低いバグはトリアージされる
- 回帰は修正されるが、古いバグは無視される
- 自動化テストはあまり使われていない
- エコシステムの複雑さが増した
スケジュールチキン(Schedule Chicken)については、Wikipediaの定義しか見つからないが、英文では、「Schedule chicken is a concept described in project management and software development circles.[1] The condition occurs when two or more parties working towards a common goal all claim to be holding to their original schedules for delivering their part of the work, even after they know those schedules are impossible to meet. Each party hopes the other will be the first to have their failure exposed and thus take all of the blame for the larger project being delayed. This pretense continually moves forward past one project checkpoint to the next, possibly continuing right up until the functionality is actually due.」つまり、二つ以上のチームが協同で同じゴールを実現しようとするときに、どのチームもほかのチームの失敗を望んでいることです。他人の失敗によりスケジュールが遅れたら、自分が責められないからです。なんという情けない考え方だといわれそうですが、立場が変われば、おそらく同じ考えになるでしょう。
「クラッシュレポート」は、「残念ながら、クラッシュレポートはクラッシュしないバグを捕捉できない。iCloudにアップロードされない写真、MacからiPhoneに同期されない連絡先カード、破損して数か月ごとに再起動する必要のあるTime Capsuleバックアップ、およびAppleサポートに電話するまで、iCloudアカウントにサインインするように繰り返し要求されるループから抜け出せなかったiPhone 11のセットアップ(これらは全てDavid氏が経験したこと)などは報告されない。」つまり、自分のパケットを犠牲にしてアップルに送っても、対して意味が無いことです。
「トリアージ」は大事故や災害現場で多数の患者が出たとき、治療の優先度を決定して選別することだそうです。もともとは、フランス語のtriageで、患者の重症度に基づいて、治療の優先度を決定して選別を行うことです(wikipedia)。
「エコシステム」については、マルチスレッドのことしか言っていないので、どこがどう「エコ」かは不明ですが。システムが複雑すぎであることは確かです。
総合すると、本当にユーザの立場に立って、頑丈で、使いやすいシステムを作ろうという姿勢は見えないです。
それでも、iPhoneは世界一(平均価格)高くて、よく売れているスマートフォンです。買う方も買う方ですね。
参考リンク
[1] iOS 13とmacOS Catalinaはなぜバグが多いのか。元アップルエンジニアが語る6つの理由