Comment by BobAliceInATree

10 months ago

On the most recent episode of ATP podcast, an anonymous person wrote in to say that when they worked at Apple until ~2013, there was effectively no QA team on macOS.

Granted that was over a decade ago, and "no QA team" doesn't mean no testing, but given the numerous bugs in macOS today, and that they almost never get fixed, I'm not surprised.

(FWIW, I do not experience this bug you mentioned)

If you look at the macOS feature history, it's pretty clear that the bulk of the team got shifted to iPhone in 2007 and never really recovered. The widely acknowledged Snow Leopard high water mark happened shortly after.

To be fair, Apple can still pull off the occasional amazing feat of vertical integration -- HDR, APFS, keeping audio latency under control despite the relentless assault of apathy from all directions -- but they never had the same level of consistent drive forward, at least not until a year or two ago when the big push for AI integration started. Apple gets ragged on here, but I think their integration is actually some of the best. They were putting neural cores in chips back when that sort of thing got mocked, not lauded, and every step has been thoughtfully tied in rather than airdropped from a ChatGPT science fair project. But they never got good at building or deploying leading-edge models themselves; I hope they turn it around because this is important.

  • That may be unlikely. Mark Gurman reported recently for Bloomberg News that “people within Apple’s AI division now believe that a true modernized, conversational version of Siri won’t reach consumers until iOS 20 at best in 2027.”

    • That sounds prudent. There's no reason for them to continue this embarrassment of cramming the product full of worse-than-useless "AI" features. Wait until you can separate the good from the bad from the ugly and choose to just do it good.

  • Snow leopard is fondly remembered but was buggy has hell when initially released. It got good, with time…

    • I wish for snow leopard strategy to be applied to modern scaled operating systems. Let's all agree to spend a year fixing and optimizing rather than making existing functionality worse or launching half baked ideas.

    • Perhaps I was just lucky, but 10.6.0 was equally stable as 10.5.8 for me. It did improve with time, and there’s little opposition to 10.6.8 being the best OS X release there was (except maybe 10.9.5), but for me at least it was a great OS even at launch.

I was in a QA role on MacOS in 2010-2013. There isn’t a QA team, rather each group of developers and EM had a QA embedded with them.

  • I think they mean, having a whole bunch of people doing end-to-end user-scenario tests all-day - like videogame playtesters - whereas what you’re describing sounds more like SDET work.

  • You're correct ... but then various teams took various measures to try to get rid of QA. So it's spotty.

I worked at Apple on Mac OS X until 2008. For QA, Bertrand believed in a lightweight touch, with dedicated QA staffing only at the top of the stack (plus a few key places like the filesystem), with the idea that any bugs will bubble up and be found through real-world usage. Most QA was informal, through heavy dogfooding.

You felt a real sense of ownership to the thing that you worked on. You worked hard and fixed bugs because it felt like it mattered, because you thought about how e.g. your mom would end up using the product, and also Steve Jobs would see it, so it had to be great. Also, teams were small. Something would involve only 1-2 people, and then we would look over at Redmond and they'd have dozens of people working on the same thing. The need-to-know secrecy was not just for PR value; it helped keep circles of communication tight, cutting out a lot of noise, so you could just focus. The organization was stable (and relatively flat, around 5 levels from junior engineer to SJ). I think in my 9 years or so there, there were no major reorgs. Avie phased himself out and retired, and Bertrand moved up. The only major disruption was when the iPhone project happened.

Release cycles were annual. Throughout most of the release cycle, it was pretty free up to each team and engineer to decide what to work on and how to prioritize it. Near the end of a release, it would get more and more strict on what you were allowed to change, up to the point where Bertrand sometimes would even ask to see code diffs.

I don't really know what is going on over there now. They have moved to a more agile approach, with more frequent integration checkpoints. In theory this should be better, but I suspect there's less sense of ownership and more of a feeling of a software factory. But it's probably mostly to do with the fact that the systems are way more complex, both the tech and the org, with way more moving parts. Even the programming language itself (Swift) is a moving target. I know (from talking to friends) there's a lot more politics and career-building going on, the kind of corporate douchebaggery that would not have been tolerated under Steve Jobs. People are thinking about RSUs and their promotions, rather than the products.

Ultimately, I think it boils down to this observation by jwz at Netscape, that there's "two kinds of people: those who want to go work for a company to make it successful, and those who want to go work for a successful company." Post-iPhone, Apple has filled up with the latter. A majority of the people at Apple now didn't work there under SJ, and the senior management who did experience that is now aging and retiring. At least from the outside, as a customer and end-user, it feels obvious that the founder-led product-obsessed culture is gone.