Published in News

Why Apple software is so buggy

by on24 October 2019


Former software engineer explains what is going wrong

David Shayer, who worked as a software engineer at Apple for 18 years across iPod, the Apple Watch, and Apple's bug-tracking system Radar, among other projects, has been explaining to Apple fanboys why software standards have shot down the loo.

Shayer said that Apple has been aggressive about including significant features in upcoming products. Tight schedules and ambitious feature sets mean software engineers and quality assurance (QA) engineers routinely work nights and weekends as deadlines approach.

He said some features are postponed for a future release, as we saw with iCloud Drive Folder Sharing. In a well-run project, features that are lagging are cut early, so engineers can devote their time to polishing the features that will ship. But sometimes managers play "schedule chicken" since no one wants to admit in the departmental meeting that their part of the project is behind.

Instead, they hope someone else working on another aspect of that feature is running even later, so they reap the benefit of the feature being delayed without taking the hit of being the one who delayed it. But if no one blinks, engineers continue to work on a feature that can't possibly be completed in time and that eventually gets pushed off to a future release, Shayer said.

Apple has an issue that crash reports don't identify non-crashing bugs probably because that would mean admitting that something was not perfect.

"If you have reporting turned on (which I recommend), Apple's built-in crash reporter automatically reports application crashes, and even kernel crashes, back to the company. A crash report includes a lot of data. Especially useful is the stack trace, which shows exactly where the code crashed, and more importantly, how it got to that point. A stack trace often enables an engineer to track down the crash and fix it. Crash reports are uniquely identified by the stack trace. The same stack trace on multiple crash reports means all those users are seeing the same crash. The crash reporter backend sorts crash reports by matching the stack traces, and those that occur most often get the highest priority."

That said, Shayer insists that Apple takes crash reports seriously and tries hard to fix them and Apple software crashes a lot less than it used to.

"Unfortunately, the crash reporter can't catch non-crashing bugs. It's blind to the photos that never upload to iCloud, the contact card that just won't sync from my Mac to my iPhone, the Time Capsule backups that get corrupted and have to be restarted every few months, and the setup app on my new iPhone 11 that got caught in a loop repeatedly asking me to sign in to my iCloud account, until I had to call Apple support", he said.

Last modified on 24 October 2019
Rate this item
(2 votes)

Read more about: