Apple Inc. is overhauling how it tests software after a swarm of bugs marred the latest iPhone and iPad operating systems, according to people familiar with the shift.
Software chief Craig Federighi and lieutenants including Stacey Lysik announced the changes at a recent internal “kickoff” meeting with the company’s software developers. The new approach calls for Apple's development teams to ensure that test versions, known as “daily builds,” of future software updates disable unfinished or buggy features by default. Testers will then have the option to selectively enable those features, via a new internal process and settings menu dubbed Flags, allowing them to isolate the impact of each individual addition on the system.
When the company’s iOS 13 was released alongside the iPhone 11 in September, iPhone owners and app developers were confronted with a litany of software glitches. Apps crashed or launched slowly. Cellular signal was inconsistent. There were user interface errors in apps like Messages, system-wide search issues and problems loading emails. Some new features, such as sharing file folders over iCloud and streaming music to multiple sets of AirPods, were either delayed or are still missing. This amounted to one of the most troubled and unpolished operating system updates in Apple’s history.
“iOS 13 continues to destroy my morale,” Marco Arment, a well known developer, wrote on Twitter. “Same,” replied Jason Marr, co-creator of grocery list app AnyList. “Apple's really shown a lack of respect for both its developers and its customers with iOS 13.”
The issues show how complex iPhones have become and how easily users can be disappointed by a company known for the smooth integration of hardware and software. Annual software updates timed for release with the latest iPhones are a critical way for Apple to add new capabilities and keep users from defecting to archrival Android. Refreshed operating systems also give developers more tools for app creation, catalyzing more revenue for Apple from its App Store.
Apple spokeswoman Trudy Muller declined to comment.
The new development process will help early internal iOS versions to be more usable, or “livable,” in Apple parlance. Prior to iOS 14’s development, some teams would add features every day that weren’t fully tested, while other teams would contribute changes weekly. “Daily builds were like a recipe with lots of cooks adding ingredients,” a person with knowledge of the process said.
Test software got so crammed with changes at different stages of development that the devices often became difficult to use. Because of this, some “testers would go days without a livable build, so they wouldn’t really have a handle on what’s working and not working,” the person said. This defeated the main goal of the testing process as Apple engineers struggled to check how the operating system was reacting to many of the new features, leading to some of iOS 13’s problems.
Apple measures and ranks the quality of its software using a scale of 1 to 100 that’s based on what’s known internally as a “white glove” test. Buggy releases might get a score in the low 60s whereas more stable software would be above 80. iOS 13 scored lower on that scale than the more polished iOS 12 that preceded it. Apple teams also assign green, yellow and red color codes to features to indicate their quality during development. A priority scale of 0 through 5, with 0 being a critical issue and 5 being minor, is used to determine the gravity of individual bugs.