Former Apple engineer gives 6 reasons why iOS 13 and macOS Catalina have so many flaws

Someone already using the iOS / iPadOS 13 or the macOS Catalina 10.15 and have no complaints about Apple's latest software; On the other hand, there is also a group of users (mainly developers and software engineers) who know when something is not going as well as expected, even if it does not cause widespread fanfare.

This is the case of the former Apple David Shayer, who worked at Cupertino as a software engineer for over 18 years. This week, he shared a "vent" about Apple's new systems, pointing out six possible reasons why they are more "bugged" than usual.

IOS 13 and macOS 10.15 Catalina were Apple's releases full of unusual bugs. Betas were already released with errors at WWDC in June, which is not unexpected, but even after Apple removed some features before the final release in September, more problems forced the company to post patch updates. Why? Based on my 18 years of experience working as an Apple software engineer, I have some ideas.

Implementation of unfinished advanced resources

According to Shayer, Apple is "aggressive" in including significant features in its new software. This means that Ma developers must work relentlessly to keep up with the timely message of each release, but it also comes at a cost: inevitably, one resource or another will not be ready and postponed for future releases, such as sharing data. iCloud Drive folders.

In a well-executed project, features that are behind schedule are cut in advance so engineers can devote their time to polishing the features that will actually be included.

The engineer suggests that Apple should not incorporate so many new features into each version of its software just to avoid such problems, but he says that this is not Ma's "culture."

“Identifiable” errors

Both iOS and macOS have a built-in feature responsible for sending system bug reports to Apple. you will see that such reports include a lot of data, but the main one stack trace, also known as stack tracing, which tells you exactly where the error occurred from a system execution "map" at the time such a failure occurred.

In short, it is this data that helps developers know specifically where the error is, but there is no way for them to know a possible failure if certain problems are not recognized as such.

In this regard, Shayer points out that Ma's bug reports do not include data about photos that are never sent to iCloud, contact sync failures from Mac to iPhone (and vice versa), corrupted Time Capsule backups, and even is a specific type of problem that he faced, in which the iPhone 11 setup screen repeatedly required iCloud login.

This is partly because Ma tracks these bug bugs the old way: with people (QA engineers) testing their devices or following automated tests, as well as developer reports and complaints sent to Apple Support. For Shayer, this method makes it much more difficult to identify bugs and for engineers to fix them.

Minor errors are "filtered out"

Shayer also illustrated another feature of the process of creating new Apple software that may contribute to the number of bugs in a final system release; In it, Ma developers have different levels of freedom to fix certain issues as software development progresses.

More precisely, he claims that at the beginning developers are almost entirely free to fix any bugs, but this possibility is reduced as it gets more complex for a very simple technical reason: in programming you are very likely to tinker with it. something and hinder something else imagine it at the operating system level.

Therefore, only the most serious errors are fixed until the launch of a new iOS / macOS, precisely because Apple cannot risk disrupting everything that was done before, say, the user has decided to set the iPhone date to 1. January 1970 and it crashes completely.

Thus, bugs that are rare or not "terribly serious" as those that cause mere confusion rather than data loss are "pushed" to the background by the company's "screening" system.

Old Mistakes Perpetuate Forever

The above feature leads to another: if a problem lived long enough for more than one generation of iOS / macOS, the chances of it being fixed by Apple are slim. According to Shayer, Cupertino's giant “bad at fixing old bugs”, precisely because they are commercially unviable and some possible fixes can get in the way of the latest software.

More precisely, he states that if a quality control engineer determines that a bug exists only in older versions of the OS, it is marked as “no regressive”, ie the possibility that it will affect new systems low and thus Most likely no professional will be assigned to fix it.

Few automated tests

Here Shayer makes more of a statement than a critic, in fact. He said automated testing is on the rise these days, but Apple, as has been said, prefers to perform some analysis manually, something that could prove to be a double-edged sword for the company.

The engineer confesses that the area in which Ma performs the largest number of automated tests is related to the battery of its products. Thus, whenever a major change is made to their operating systems, the team runs with the test devices to verify that the change did not affect battery performance; Still, these tests only analyze Apple's code in an attempt to simulate “real-world” interactions that could result in significant user problems.

In addition to the battery, another industry that often uses automated testing is Safari development, where any new code added to the browser requires a performance test to be performed. As such, Shayer suggests that more automated testing could help increase the quality of Apple software.

Increased complexity

There is no denying that iOS 13 offers much more features than the previous version, and so on, after all, the foundation of having successive new versions, with news. At the same time, this also triggers the emergence of new problems that previously did not exist or were not so serious.

Thus, the engineer claims that a modern Apple operating system has tens of millions of lines of code. In addition, each Mac, iPhone, iPad, Apple Watch, AirPods, and HomePod chat with each other and with iCloud. All applications are multithreaded and communicate over the internet, which also has its problems.

All this makes it difficult to develop and test all features as well as discover new bugs. Add to that asynchronous events not dependent on Apple, allowing several failures to pass through the scrutiny of Ma engineers, helping them reach the end consumer.

Well, not easy either be Apple. In addition, all of the above factors can be understood as possible causes for 1) the failure of any operating system, and 2) the largest number of software updates released by Ma.

In this regard, Shayer says Apple will release more bug fixes (in the form of software updates) than we were used to, but that is also a positive sign, as it proves that the company is short of its flaws.

You can check the full report of the engineer here.

via Daring Fireball