(Digging out old alt account for reasons)

I'm a former employee from the SWE org of ~13 years, left around a year ago.

This is a huge problem that the company needs to address ASAP. If you're in the Apple SWE org and reading this, please go up the chain as far as you're able to make things like this understood: Apple needs a bugfix release. They need all hands on deck going through radars and fixing things. No new features until these things get settled.

Care about error logs. Look at the number of Error logs happening per second on a customer build. Every one of those was considered by someone to be important enough to notice that it likely needs fixing. There are showstopping bugs buried in there.

Figure out your concurrency bugs. The whole company seems to be using the swift Concurrency framework wrong (at least a year ago, I doubt things have changed since then.) Stop abusing semaphores and DispatchGroups to work around async/sync barriers. It makes the compiler shut up but causes deadlocks later. Every "Just a sec" on Siri on HomePod is very likely caused by this. Stop putting off the important refactors needed to make this work.

Start caring about compiler warnings. Get the swift team to allow warnings to be disabled on a line-by-line basis so you can work from a zero-warning baseline and attack it from there.

Fix the build system. It's horrific that coordinated changes to multiple frameworks are so god damned impossible to do, and result in broken builds so often. You probably don't need to go full monorepo, but if you're going to continue with thousands of individual projects, make it so coordinated submissions is possible.

Fix Xcode. Or at least just jettison it. Pay a boatload of money to JetBrains or something and get an IDE that works internally, bless it as the way to go, and announce publically that Xcode is deprecated. You don't have the resources to fix it any more, it's time to take it out to pasture.

Fix the development milestones. The current system is designed for tentpole features to reach a certain maturity level before a certain date before a punt decision: But it just encourages punting (slipping to the B or C or E release) to a milestone with less scrutiny. Allow for bolder changes later in the process if they're in the name of improving stability. Allow for groups which are not part of a tentpole feature, to fix things at any time without having to deal with bug deadlines. Zero bugs is a joke, it's just denial, encoded into process.

The milestone system also lacks the mere vocabulary necessary to describe "time dedicated to fixing bugs in shipping code". Like it doesn't even exist as a concept. "Escape" makes it seem like it's a rarity, it's not. Nobody seems to follow the pact any more. Probably because the pact pretends that escapes are rare. They're everywhere. The development process needs dedicated time spent not doing feature work so that old bugs can be addressed.

There are a lot more things I could go on about, but people already know this. The problem is that senior leadership doesn't care enough. They don't foster a culture of excellence where they actually sweat these small details. They only care about features, and it's a disease. Get somebody up there who gives a shit.