To a certain extent, Apple is in something of a “damned if they do, damned if they don’t” situation when it comes to new software releases. If Apple rolls out an update that focuses on improving overall performance and system reliability — as was the case with iOS 12 — the company is criticized for not introducing innovative new features. On the flip side, if Apple rolls out a software update teeming with new features, there are inevitably a slew of bugs Apple needs to work through. We saw this play out recently when Apple released a beta of iOS 13.1 before iOS 13 had even shipped.
The situation is just as bad on the Mac side of the equation. Even though the recently released macOS Catalina update isn’t chock full of new features, many users have experienced any number of frustrating usability issues since updating their system. Compounding matters is the fact that many users are running into glitches during the installation process itself. While it stands to reason that Apple will inevitably get around to shoring things up, one can’t help but wonder why Apple these days seems to have a hard time rolling out new iOS and macOS updates that work seamlessly right from the start.
Tackling this very issue, you’ll definitely want to check out David Shayer’s new piece for TidBITS where he takes a deep dive into some of the behind-the-scenes dynamics involving Apple’s bug-fixing efforts. And far from being a speculative piece, Shayer previously spent 18 years at Apple working as a software engineer across a multitude of projects. In other words, Shayer knows exactly what he’s talking about and provides us with a clear and objective viewpoint regarding some of the struggles Apple faces on the software front.
One of the more fascinating explanations articulated by Shayer involves an internal process at Apple whereby older bugs are given far less priority than newer bugs.
If an engineer accidentally breaks a working feature, that’s called a regression. They’re expected to fix it.
But if you file a bug report, and the QA engineer determines that bug also exists in previous releases of the software, it’s marked “not a regression.” By definition, it’s not a new bug, it’s an old bug. Chances are, no one will ever be assigned to fix it.
Not all groups at Apple work this way, but many do. It drove me crazy. One group I knew at Apple even made “Not a Regression” T-shirts. If a bug isn’t a regression, they don’t have to fix it. That’s why the iCloud photo upload bug and the contact syncing bug I mentioned above may never be fixed.
Another explanation put forth by Shayer, and one that is often overlooked, is that Apple today has more customers than ever before. Additionally, Apple’s software is incredibly more complex than ever. In other words, we’re long removed from a time when Apple would roll out an OS X update to a relatively niche group of users. Today, Apple rolls out advanced software that literally lands on millions of devices rather quickly.
“A modern Apple operating system has tens of millions of lines of code, Shayer notes. “Your Mac, iPhone, iPad, Apple Watch, AirPods, and HomePod all talk to each other and talk to iCloud. All apps are multi-threaded and communicate with one another over the (imperfect) Internet.”
Taken together, Shayer notes that testing such complex software has necessarily become a more challenging endeavor. It’s not often that we get a peek behind the curtains at Apple, so you’ll definitely want to head on over to TidBITS and check out Shayer’s entire post. It’s beyond informative and incredibly interesting.