Why iOS 13 is buggy — and how to fix it for iOS 14

One of the biggest criticisms of Apple's platform management over the last few years is that, more often than not, they've released as many new bugs as they have features. Now, that's not entirely true. If you look back over the last decade and a half of forum posts, you'll quickly realize every year is the worst year ever. That's because old pain fades while new pain… it sears. But, 2019 has been bad. iOS 13, in particular, came in capital H O T hot, from a sketchy prime seed through a rollercoaster beta and into release.

So much so, iOS 13.1 went into beta before iOS 13.0 came out, and since then we've gone through iOS 13.1.1, iOS 13.1.2, and iOS 13.1.3 at a breakneck pace. And, frankly, more are needed.

https://twitter.com/reneritchie/status/1185635913726119937

Apple is typically aggressive when it comes to the number of new features they add and not aggressive enough about landing them all. iOS 12 was different, though. Apple deliberately pushed back some features that had been planned for iOS 12 and, instead, re-tasked some of their best and brightest engineers — engineers who had helped create some of the modern foundations of iOS — to go back and optimize and improve those foundations. The result was… terrific. Not only did performance improve, especially on older devices, but iOS 12 itself was rock solid from beta through release.

I super high key hoped Apple would make that the new normal and this year would be very much like the last. Instead, Apple went back to the old normal and maybe even tried to make up for lost time. The result was… the opposite of terrific.

Now, iOS 14 is already ramping up. Marketing is pushing down new features they feel iOS needs to be competitive and compelling next year and, engineering is pushing up features they think would be really cool and just as compelling to make.

That's why, most years, by now, I'd be giving you my own wish list full of must-have features, new and carried over, that I really want to see in iOS 14.

This year, though, I'm only going to push out one big wish, one biggest of ticket items alone. At least upfront: Change the way iOS is being developed.

Why iOS 13 is buggy

Earlier this week, former Apple engineer David Shayer, writing for TidBITS, enumerated why iOS 13 and macOS Catalina are, as he put it, so buggy.

First on the list is overloaded feature sets leading to schedule chicken.

Basically, Apple takes on too many new features each year. Too many to finish, much less polish, by launch day. Then, because no manager wants to admit their team's deliverables aren't on schedule, not enough features are deferred in a timely manner. And that causes a lot of last-minute misses.

We have had a few years, like iOS 12 and, of course, OS X Snow Leopard, where the reduction of new features in favor of better performance was headlined as a new feature. But, that they were headlined shows how few and decades between they've been.

It's one of the rare cases where Apple's 1000 nos just aren't enough. They need like 2000. Enough to provide push back against overloaded feature sets and cover for managers who need more time.

Second is that crash reports don't identify non-crashing bugs.

In other words, you can have a low or no number of bugs that cause crashes, but still a high number of bugs that cause frustration. If you're not somehow tracking those as well, things can look better than ever on your dashboard even as you're pissing off your user base on a daily basis.

And humans often respond more viscerally, more viciously even, to annoyance than anything else.

This actually came up a few of years ago on John Gruber's The Talk Show Live at WWDC 2015 with Phil Schiller.

With every release there's bugs, and there's things we hit on, and there's things that the team's passionate about getting out there and fixing.But we're also very careful about tracking crash logs, and AppleCare calls, and Genius Bar visit, and we even have a tool that is able to follow a lot of user forums to ascertain what the complaints are, and try to really gather a good metric, set of metrics on all the issues.And in this case, I do think the storyline isn't really accurate with the reality. Not to say there aren't bugs, there aren't things driving some people crazy—there are. Of course there are. But it isn't a change.

Third is that less important bugs are triaged.

Apple has a classification system for bugs. P1 is major. P2 and P3, increasingly not so much. When engineers are first building a new feature, they can just fix bugs as they come up. When they go into the early stages of beta, there's still time to fix most things major. When they're about to be released, there's only time left for the showstoppers.

That's less a problem than a reality of any large-scale development process, even those at the biggest and richest tech companies in the world. Resources are simply always more limited than the always growing demands placed upon them.

And, since the next year brings the next set of features, the only time engineers can go back and fix older, lower priority bugs are when they're expressly given time in the schedule to do just that.

Like with iOS 12 and anything that affected performance.

Fourth builds on that — regressions get fixed but old bugs get ignored.

What this means is, new bugs that break things get fixed. Old bugs that don't break things get left to haunt the code until they do.

Like, for example, ancient audio and casting bugs coming back to terrorize new audio casting products.

It's not universal across teams, and it's certainly practical in some cases, but bugs like bills have a way of always coming due.

Fifth is automated testing gets used sparingly

WebKit and Safari are famous for zero regression. Any code checked in gets tested for performance and, if it slows things down in any way, it gets checked back out.

Here's Don Melton, former Director of Internet Technologies at Apple, explaining it on the Debug podcast:

Guy: One of the things you keep hearing about the Safari project is that you have performance-based tests. If a commit makes something slower, then it gets yanked.Don: Yeah.Guy: Was that your doing?Don: Yes.Guy: I can imagine, when a deadline is looming, you may be tempted to let that slide a bit.Don: I never did. There were times when I was the most hated person on my team for that. This is actually the point of my talk next month, it's that that is the key. You can never go backwards. That's the Safari secret.

I'm not sure where Apple is or isn't doing enough automated or unit testing, but Josh Shaffer, who spearheads a big part of the future of Apple development, SwiftUI, recently spoke about its importance on John Sundell's Swift podcast.

Testing is just such an important component of building a great app or framework or whatever you're writing and great unit testing and performance testing has been a core element of the development philosophy of SwiftUI from the very beginning.Every commit that we make to the project includes unit tests covering you know whatever new or fixed functionality we have with that change and we run all of the test during code review for every change as it's being made.

That's a good sign. No amount of internal QA can ever equal millions of customers hitting the software in millions of different ways, but testing does get rid of the low hanging targets before they hit them.

Sixth and last is ballooning complexity.

Back in the day, Apple only made Mac software. Then they added iPod. Then iPhone and Apple TV. iPad and Apple Watch. Now we even have AudioOS on the HomePod and BridgeOS on the TouchBar.

What's more, even now, some poor bastards at Apple not only have to still compile iTunes for Windows, but TV app for Samsung's Tizen, and, eventually, all the different Smart products it'll run on.

That's exponentially more to build for, to test for, and to solve for day in, day out, year after year.

And, as a good friend of mine likes to point out — complexity isn't the same as technical debt. Technical debt you can pay down. Complexity tends to accrue.

So, how can this all be fixed? Can all of it even be fixed?

The (Potential) iOS 14 Solution

I fully realize how ridiculous any recommendation my dumb blogger, podcaster, and YouTuber ass can make. But, I'm going to make two anyway. And, hey, if I'm going to run at a wall, I'm damn well going to leave a cartoon shaped hole through it when I do.

First, the iOS 12 approach should go from being the exception to being the rule.

Software engineering organizations don't scale linearly. Especially not when the scale is massive. The overhead always scales with them. So, even if you're adding engineers, as you increase platforms you have to decrease new and updated features per platform to account for that overhead. But, you also have to also increase maintenance and optimization for old features as well, or the new ones risk toppling the whole thing.

That's what made iOS 12 so great. It still had new features, just a more constrained — dare I say more traditionally Apple-like — number of them. But, it also allowed for the time needed to improve performance and reliability. Paying down technical debt, sure, but also deliberately reducing complexity, redundancy, and moving upper level hacks down into better planned, system-level components.

Jonathan Deutsch, former Engineering Manager, on the Debug Podcast:

I think [OS X Snow Leopard] 10.5 had a legitimate number of issues, and I think it was a good call to do 10.6 in that manner, but very specifically, I said 10.6.8, 10.6 had massive issues when it shipped, and when you think about the fact that 10.6.8 was a great update, you had to get through 10.6.1, 2, 3, 4, all the way to 8, and that was a long period of time. Apple wasn't on the yearly release schedule.I think 10.6.8 probably went out with two years of refinement over 10.6, which was, I think, another two years of refinement over the 10.5 update. The 10.6.8 had been begging to get to that point for almost four years,

Second, Apple should move from a yearly update to a yearly roadmap.

Let me explain: The WWDC keynote and September events are just too big for Apple to give up. And I don't think they should. They're great for developers and even better for customers.I just think Apple should change that one slide at the end from "coming this fall" to "starting this fall".

Instead of Craig Federighi listing off the 8 to 12 tentpoles that will all hit customers all at the same time, he lays out the same tentpoles that will all hit customers over the course of the next year, starting in September and finishing in June, right before the next WWDC.

It already kinda works this way anyway, it's just the result of running downhill and desperately trying not to trip and fall, instead of picking a slope and a more measured pace to get to the same place.

We already get the big .1 emoji update in the late fall. You know, the one that really drives updates. We even already get previews of features coming later, like Portrait Mode back in the day and Deep Fusion this year.

And we already get staged released, but for features that just aren't ready in time, like iMessage Sync or iCloud Folder Sharing.

So, just plan all the features out that way to begin with. Take advantage of the beta to make sure what's finished for September is rock-solid in September, and the rest get baked until October, March, even June.

Sure, some features will still have to be finished in time for the new products that depend on them. But for the others, set expectations that they might take some time… and then take that time.

But, those two things — Make every year a half a Snow Leopard year, and instead of setting expectations for a release date, set them for a road map, and I legit think Apple will see a lot less frustration and a lot more satisfaction from everyone, engineers and customers alike.

○ Video: YouTube
○ Podcast: Apple | Overcast | Pocket Casts | RSS
○ Column: iMore | RSS
○ Social: Twitter | Instagram

Rene Ritchie
Contributor

Rene Ritchie is one of the most respected Apple analysts in the business, reaching a combined audience of over 40 million readers a month. His YouTube channel, Vector, has over 90 thousand subscribers and 14 million views and his podcasts, including Debug, have been downloaded over 20 million times. He also regularly co-hosts MacBreak Weekly for the TWiT network and co-hosted CES Live! and Talk Mobile. Based in Montreal, Rene is a former director of product marketing, web developer, and graphic designer. He's authored several books and appeared on numerous television and radio segments to discuss Apple and the technology industry. When not working, he likes to cook, grapple, and spend time with his friends and family.

16 Comments
  • The Mail app has been consistently buggy from the first iOS13 beta to the current iOS13.2 beta 4. For Exchange accounts in particular, notifications don't work properly, duplicate sent messages appear, deleted messages don't sync and filing messages from the inbox is hopelessly hit and miss. Given that email is one of the absolutely core functions of a smartphone it's incredible how little progress has been made on correcting the bugs in the app; so much so that almost everyone I know is now using a third party email app in place of Apple's own. These third party apps all work perfectly, by the way.
  • Agree. tried using Apple's mail app but it is hot garbage and they are doing nothing to fix it. It is a shame when a 3rd party app works better than your own app..
  • While I agree that it is sad that Apple regressed so far with their mail app, in the case of Exchange accounts (where they used to be the best in Mobile), Apple's email client is the third party app and Outlook is the app that should be expected to work best.
    Using a Gmail account has generated no issues with the Apple mail app, where it is also a third party app.
  • It isn't even the account issues that plague the apple mail app, it is the lack of notifications (sometimes they show up sometimes they don't) and issues with badges on the app. It has been happening since beta 1, so apple has let it go and doesn't seem to care about fixing it.
  • The Mail app seems to have always had some level of issues, even on earlier iOS versions, but the problems are made worse with iOS 13. As I use Gmail, I just end up using the Gmail app since it's their own service it's pretty reliable even though I don't like the app itself
  • I use all microsoft services. The only services from apple I use right now is music and news+. I tried Issu, but that was not nearly as good. I recommend outlook. It's great on iOS. Does everything I want it to.
  • Microsoft services that I've used recently have been pretty good, my new workplace uses many of them. I might try out Outlook on iOS, good shout
  • I do like it alot. and since I do not use apple computers, it makes alot of sense. I pay for office 365, and use across all my devices. Plus, once a month I get a gas card from my microsoft points! For the same service from apple, it's approx 40 dollars a year more and no points system. Once you get used to the controls in outlook, it's hard to go back to the basic mail app. Oh, and don't get me started on Gmail. That's another talk all together. it's brutal!
  • Uninstalled Gmail and I'm now using Outlook, it works well, I really like the way it converts emails to dark mode too (I noticed the desktop version does this). Turned off the focused inbox since I like to keep my email clean anyway and I find that sometimes these specialized inboxes sometimes miss things I want to see
  • I feel like releasing it in parts all the way to June is just going to make it worse. Then instead of having more teams working on the new OS, they will have less focused on that and more focused on the "old" OS.
  • I totally agree on the yearly roadmap. This push to fit everything in all at once is leading to a pressure that is leading them to cut corners or not release the feature at all. I would prefer they not release features that aren't done or done right (ala the smart battery charging that was supposed to be released in 13) , but they continue to release sub par updates. Battery life for me is most notably changed from 12 to 13 along with other bugs pointed out in the comments and other areas of social media.
  • "So much so, iOS 13.1 went into beta before iOS 13.0 came out," Yes, it did, and that should have told you all you needed to know about how horrible iOS 13 was going to be. "and since then we've gone through iOS 13.1.1, iOS 13.1.2, and iOS 13.1.3". No, WE have not. YOU have. No one is forcing you to install this buggy hsit. I am still on 12.4.1 here with no problems. No iPadOS here yet either. I may just skip both until 14.2.something comes along. "So, just plan all the features out that way to begin with. Take advantage of the beta to make sure what's finished for September is rock-solid in September, and the rest get baked until October, March, even June." Um, you DO realize that YOU can control this now, right? Stop trying to be the first to install new iOS versions. Wait until AT LEAST x.2.1. What is the rush? Again, still on 12.4.1 here with no problems. I laugh at everyone rushing to install the latest, then watch them complain about all of the problems. You never learn, do you? Congratulations. You are unpaid beta testers. How does it feel to be used?
  • 14.2 will be just as buggy. 13 is BRUTAL. on everything too. Apps crash on my ipad and iphone all the time, my apple watch does not notify i would say 70 percent of the time, while my garmin watch nails every one. Apple has gone down hill FAST. I agree. They should be working on 14 NOW. get all the bugs out NOW. Any bugs in the next OS should be new hardware only problems.
  • I've been very lucky with iOS 13, I've only had two issues, one is that a radio app on CarPlay doesn't work properly anymore, at least not through the CarPlay interface, I'd try through the phone but obviously that's difficult to operate while driving. Second is that apps seem not to stay open as long in the background, possibly a memory leak or the OS just using too much memory for something. This is on a XS Max, possibly the problems are worse on older devices
  • The new updates fixed both my watch and phone for the most part. I have noticed my phone is actually too fast at times now. ha ha. All apple has to do is hire more people in the iOS development department. More people to flush out problems, the smoother the transition will be. Not like they can't afford it.
  • "No, WE have not. YOU have." This is just the way articles are written, they say "we" to make us feel part of the iMore community, of course it doesn't mean everyone has, although many people are very excited about new features so they update early, but that comes at a cost