Facilitating the Spread of Knowledge and Innovation in Professional Software Development

Write for InfoQ


Choose your language

InfoQ Homepage News What Made the iOS 13 Launch So Buggy and How to Fix the Development Process

What Made the iOS 13 Launch So Buggy and How to Fix the Development Process

Leia em Português

This item in japanese


Apple's latest iOS release, iOS 13, was affected by a number of bugs that caused disappointed reactions by users. In a story ran by Bloomberg, sources familiar with Apple explained what went wrong in the iOS 13 release process and how Apple is aiming to fix this for the future.

In an internal meeting with software developers, writes Bloomberg, Apple top executives Craig Federighi and Stacey Lysik identified iOS daily builds' instability as the main culprit for iOS 13 bugs. In short, Apple developers were pushing too many unfinished or buggy features to the daily builds. Since new features were active by default, independently of their maturity level, testers had a hard time to actually use their devices, which caused Apple's buggy releases.

Releasing a new major version of an operating system, be it for the desktop or mobile devices, is a major endeavour that is often plagued by already-known and unforeseen problems that early upgraders have to endure. Those include both ordinary users as well as developers trying to adapt their apps during the beta phase and beyond.

Apple's operating systems are no exceptions to this rule and buggy releases have been raising a number of complaints and critical voices for the last few years. Most famously, macOS and iOS developer Marco Arment, known for his podcast app Overcast and previously for the hugely successful Instapaper app and blogging platform Tumblr, said iOS 13 was destroying his morale as a developer. Arment has been one of the most vehement critics of Apple's software quality for a number of years now, being also the author of a strong critique of macOS release quality already in 2015.

We don’t need major OS releases every year. We don’t need each OS release to have a huge list of new features. We need our computers, phones, and tablets to work well first so we can enjoy new features released at a healthy, gradual, sustainable pace.

With iOS 13, though, Apple set a first in its history and announced the release of the first patch to the new OS version before iOS 13 was even shipped. This was read by several people as a clear invitation to not upgrade iPhone and iPads to the new iOS 13 and instead keep waiting for iOS 13.1. It goes without saying that iOS 13.1 itself was far from being perfect.

Besides Arment's comments, it is worth mentioning TechCrunch editor Matthew Panzarino's opinion, who compared iOS 13 to iOS 3:

iOS 13 feels like I’m back on iOS 3. Keeps dropping apps out of ram in the background at nearly the pace of 1:1 apps launched-to-quit. Makes drilling down to content or links and then losing them is rage inducing. What a crap ass behavior.

As a way around this, Federighi suggested leaving all new features disabled by default, so that testers can ensure no regressions make it into the latest build, and thus attempting to avoid the overall user experience being impaired by new bugs. New features shall be enabled on-demand by testers using a new internal Flags menu, making it possible to test each new feature in isolation.

We will see whether this new approach will bring any benefits to the overall quality and stability of iOS 14 next year, but this is surely not the only recipe available for a successful new OS release. As veteran Apple developer David Shayer wrote, there are more ways to improve the release process, including not including too many new features, the correct triaging of bugs to fix, not ignoring old bugs, and expanding automated testing. These examples are worthy suggestions for any organization releasing software products.

Rate this Article