The challenges Apple has experienced with buggy iOS 13 is causing it to rethink the way it builds and tests operating systems, starting with iOS 14.
According to Bloomberg, software boss Craig Federighi recently announced the changes at a “kickoff” meeting. The new approach will make it easier for testers to be able to switch on and off new features. This is so they can better work out how the features independently impact software functionality.
The report notes that:
“The new development process will help early internal iOS version 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.”
The result of this is that it was next to impossible for Apple to know exactly how well its software was working. Features in progress will be disabled by default. Testers can then turn them on through a special menu. This approach will cover development on not just iOS, but iPadOS, watchOS, macOS and tvOS.
Problems with buggy iOS 13
Bloomberg‘s report also talks about the problems Apple had with iOS 13. It notes that, when engineers realized that iOS 13 had some big problems ahead of its release, they focused on making sure they would be fixed in iOS 13.1.
“By August, realizing that the initial iOS 13.0 set to ship with new iPhones a few weeks later wouldn’t hit quality standards, Apple engineers decided to mostly abandon that work and focus on improving iOS 13.1, the first update. Apple privately considered iOS 13.1 the ‘actual public release’ with a quality level matching iOS 12. The company expected only die-hard Apple fans to load iOS 13.0 onto their phones.”
While everyone loves snazzy new features, ultimately people want things that — in Apple’s parlance — “just work”. Hopefully this new approach to building and testing can deliver exactly that.
Source: Bloomberg (paywall)